프로그래밍/작은 메모

Ubuntu USB 장치 연결 고정 (ex. 카메라 2대)

satnurn 2025. 10. 13. 13:34
반응형

우분투 환경에서 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"로 설정함.

 

 

 

반응형