USBシリアルデバイスの権限設定

ubuntu3Dプリンタを使用する際、USBシリアルデバイスを使うのですが、
毎回デバイスのread/write権を設定するのが面倒になってきたので。

まずはシリアルデバイスの情報を確認します。
この時点でotherに対して権限はありません。

$ ls -la /dev/ttyACM0 
crw-rw---- 1 root dialout 166, 0  5月  5 17:28 /dev/ttyACM0


USBデバイスIDを確認します。

$ lsusb
Bus 004 Device 002: ID 8087:8000 Intel Corp. 
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 2341:0042 Arduino SA Mega 2560 R3 (CDC ACM)
Bus 001 Device 003: ID 062a:410c Creative Labs 
Bus 001 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

udevのカスタマイズルールファイルを作成します。*1

$ls /etc/udev/rules.d/50-udev.rules
ls: /etc/udev/rules.d/50-udev.rules にアクセスできません: そのようなファイルやディレクトリはありません
$ sudo vi /etc/udev/rules.d/50-udev.rules
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0042", GROUP="dialout", MODE="0666"

USBデバイスを再接続し、ちゃんと権限設定されるか確認します。

$ ls -la /dev/ttyACM0 
crw-rw-rw- 1 root dialout 166, 0  5月  5 18:13 /dev/ttyACM0

おお、いい感じになっているやん。
これでまた一つlazyになったわ。