at_kazutaka.bito
2020年1月6日 10時17分
Linuxでは、認識したUSBデバイスに応じて、自動的にデバイスファイル名が付きます。
udevを使うと、USBデバイス(※1)を認識した際にデバイスファイル名に別名を付けることができます。
ここでは、例として、USBシリアルを認識した際に、独自のデバイスファイル名を付ける(※2)ようにします。
※1)VenderID、ProductIDは予め確認しておく必要があります。
※2)自動的についたデバイスファイルに対して、シンボリックリンクを貼る方法になります。
1.USBデバイスのVenderID、ProductIDを確認
ArmadilloにUSBデバイスを接続して、lsusbコマンドでVenderID、ProductIDを確認します。
下記例は、USBシリアルを接続した状態で確認した結果です。
root@armadillo:~# lsusb
Bus 002 Device 004: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 002 Device 005: ID 2c7c:0125
Bus 002 Device 002: ID 0424:3503 Standard Microsystems Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
上記のログのうち、下記の行がUSBシリアルを意味しています。
Bus 001 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
"0403:6001"の部分がVendorID:ProductIDを示しています。
2.udevルールの作成
上記1で確認したVendorID、ProductIDのUSBデバイスを認識した際に実行するルールを作成します。
ここでは、上記例で確認した
VendorID:0403
ProductID:6001
のUSBシリアルを認識した際に、"usbserial"というデバイスファイル名を付けるルールにします。
/etc/udev/rules.dディレクトリの下に、下記内容で99-serial.rulesというファイル名で作成します。
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="usbserial", MODE="0666"
3.udevルールを反映
再起動もしくは、下記コマンドでudevルールを反映させます。
root@armadillo:~# udevadm control --reload
4.USBデバイス接続時のデバイスファイル名の確認
上記例の場合は、VendorID:0403、ProductID:6001のUSBシリアルを接続すると、
下記のようにusbserialという名前のデバイスファイルが生成されます。
/dev/usbserial