반응형
리눅스에서 포트에 USB로 장치를 연결하면 ttyUSB0 과 같이 이름이 할당된다.
한 개의 장치만 연결한다면 크게 문제가 되지 않지만, 여러 개의 장치를 연결할 경우 연결된 순서대로
ttyUSB0 , ttyUSB1 , ttyUSB2 ...와 같이 이름이 부여된다.
하지만 위와 같이 순서대로 입력 될 경우, 각 장치가 어떤 장치인지 알기 어려우며, 여러번 테스트 과정중 장치가 꼬인다면 명령어를 반대로 보낼 수 있다.
따라서 장치에 이름을 부여해서 장치를 고정하는 방법을 알아보고자 한다.
1. 고유 시리얼 이름 알아보기
해당 명령어에서 ${device}에 인식하고자 하는 이름을 써주면 된다. ex) ttyUSB0, ttyUSB1 등
udevadm info --attribute-walk --name=/dev/${device} | grep '{serial}' | head -n1
내가 원하는 serial의 고유 번호를 알 수 있다.
2. UDEV rules 설정
장치를 인식할 rule을 설정해 줘야 한다.
rules.d 폴더에서 99가 붙은 rules파일을 하나 만들어 준다. 이쪽 폴더는 반드시 root 권한이 있어야 되기 때문에 sudo를 붙여서 작성해준다.
cd /etc/udev/rules.d
sudo gedit 99-usb-serial.rules
{serial}에는 위에서 찾은 serial 번호를, {serial_name}에는 내가 지정하고 싶은 이름을 지정해 준다.
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="{serial}", SYMLINK+="{serial_name}"
저장 이후, 리로드 해준다.
sudo reboot or sudo udevadm control --reload