우분투 환경에서 USB 카메라 2개를 연결하고 사용할 때 카메라 연결이 끊기거나 재연결하면 장치의 번호가 바뀜.
예를 들어 /dev/video0 이였다가 재 연결 후 /dev/video1로 바뀌는 경우, 원하는 장치의 연결이 어려워짐.
video 인덱스와 관계 없이 고유한 USB 장치를 연결하기 위해 정리함.
# 환경
- Ubuntu 22.04
# USB 장치 확인
- /dev/video0 장치의 모든 정보 확인
$ udevadm info --name=/dev/video0
# USB 장치 고정 방법
1. 시리얼 넘버로 장치 고정 방법
- 장치 정보와 시리얼 넘버 확인
USB 카메라 1.
$ udevadm info --name=/dev/video0 --attribute-walk | grep -E "serial|idVendor|idProduct"
USB 카메라 2.
$ udevadm info --name=/dev/video1 --attribute-walk | grep -E "serial|idVendor|idProduct"
- udev 규칙 파일 생성
/etc/udev/rules.d/99--usb-cam.rules 해당 경로에 rules 파일을 생성
99-usb-cam.rules 파일 내용 예시
SUBSYSTEM=="video4l", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ATTRS{serial}=="9101112", MODE:="0666", SYMLINK+="cam0"
SUBSYSTEM=="video4l", ATTRS{idVendor}=="4321", ATTRS{idProduct}=="8765", ATTRS{serial}=="1211109", MODE:="0666", SYMLINK+="cam1"
*참고용 일반 카메라 연결 rules 도 메모
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ATTR{index}=="0", MODE:="0777", SYMLINK+="cam3"
- 저장 후 udev 규칙 적용
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
2. USB 포트 경로로 장치 고정 방법
- 카메라 경로 확인
USB 카메라 1.
$ udevadm info --name=/dev/video0 --attribute-walk | grep "KERNELS"
USB 카메라 2.
$ udevadm info --name=/dev/video1 --attribute-walk | grep "KERNELS"
- udev 규칙 파일 생성
/etc/udev/rules.d/99--usb-cam.rules 해당 경로에 rules 파일을 생성
99-usb-cam.rules 파일 내용 예시
SUBSYSTEM=="video4l", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", KERNELS=="1-2.3", SYMLINK+="cam0"
SUBSYSTEM=="video4l", ATTRS{idVendor}=="4321", ATTRS{idProduct}=="8765", KERNELS=="1-2.4", SYMLINK+="cam1"
- 저장 후 udev 규칙 적용
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
참고로 /dev/ttyx 장치는 rules 파일에서 SUBSYSTEM=="tty"로 설정함.
'프로그래밍 > 작은 메모' 카테고리의 다른 글
| XOR 데이터 무결성 확인(XOR 체크썸) (0) | 2025.10.17 |
|---|---|
| Ubuntu 터미널 명령어 반복 (0) | 2025.10.17 |
| Ubuntu 22.04 ROS2 humble 설치 (1) | 2025.10.09 |
| 우분투 방화벽 설정/해제/확인 (0) | 2025.10.02 |
| ROS2 Topic record 토픽 녹화 명령어 (0) | 2025.10.02 |