/dev/tty* and /dev/ttyUSB* 등에 대한 퍼미션 설정

Ubuntu에서 시리얼 통신이나 기타 USB 디바이스를 이용할 경우, 기본 권한 및 퍼미션이 슈퍼 유저만 사용 가능하도록 설정되어있다. 따라서 매번 sudo 명령을 이용해 사용자 프로그램을 실행하거나, sudo chmod 명령으로 일반 사용자도 읽고 쓸수 있도록 설정해줘야 한다.

먼저 /dev/tty* 에 대한 권한 및 퍼미션 해결 방법. 사용자 계정을 dialout, tty 그룹에 추가해 준다.

$ sudo usermod -a -G dialout $USER
$ sudo usermod -a -G tty $USER

다음으로 USB 디비이스에 대한 해결 방법.

udev 룰을 추가해준다.

/etc/udev/rules.d 디렉토리에 안에 임의의 룰 파일을 생성해준다. 보통 앞의 숫자는 우선 순위이고, 확장자는 .rules 를 사용한다.

예) /etc/udev/rules.d/50-ttyusb.rules

KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403"

또, USB 디바이스가 연결될 때, 특정 작업을 수행하려면, RUN 옵션을 추가한다.

KERNEL=="ttyUSB[0-9]*", MODE="0666", ATTRS{idVendor}=="0403" ATTRS{idProduct}=="6001" RUN+="/bin/setserial -v /dev/%k low_latency"

idVendor나 idProduct는 기기에 따라 다르므로, 이를 확인하려면 https://ahnbk.com/?p=296 포스트를 참고.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.