Solve “permission denied” when using libusb on Ubuntu

libusb를 이용한 디바이스를 Ubuntu에 연결하고, 관련 프로그램을 실행시 “Permission denied” 혹은 알수없는 오류를 발생하는 경우가 있다. 보통 sudo 명령을 이용하여 실행하면 잘 해결되는 경우인데, 매번 sudo를 붙여서 실행하는 것이 번거롭다. 이때는 udev 룰을 추가하면 해결된다. (제조사에서 제공하는 경우도 있다.)

사용자가 udev 룰을 추가하려면 해당 디바이스의 Vender ID, Product ID를 알아내야 한다. 이는 디바이스를 연결하고, 터미널에서 다음과 같이 입력한 다음 확인이 가능하다.

$ dmesg

이때 나오는 메시지 중 idVendor, idProduct에 나오는 값을 기억한다.

/etc/udev/rules.d 에 다음과 같이 파일을 작성한다.

$ cd /etc/udev/rules.d
$ vi 99-<user_device>.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="<Vendor ID>", ATTRS{idProduct}=="<Product ID>", MODE="0666"

저장한 다음, 디바이스를 뽑았다가 다시 꼽으면 해결된다.

Advertisements