ubuntuでは,USBをつなげるとデバイスファイル名がその都度決まる.
そのため,挿した順番などで,デバイス名が変わってしまう.
Arduinoでシリアル通信をするとき,毎回変わることは避けたいので,
固定する方法を紹介する.
固定方法
1. 接続したいデバイスを接続
ここでは,ArduinoをUSBで挿す.
このとき,割り振られたデバイス名を調べておく
ls /dev/tty*
Arduinoは,ttyACM0とかに割り振られる.
2. デバイスの3つの情報を調べる.
3つの情報を調べる.
- ID_VENDOR_ID
- ID_MODEL_ID
- ID_SERIAL_SHORT
割り振られたデバイス名さえ知っていれば,以下のコマンドで調べられる.
udevadm info -q property -n {割り振られたデバイス名} | grep -E "ID_SERIAL_SHORT=|ID_VENDOR_ID=|ID_MODEL_ID="
3. デバイスをudevルールに登録する
ルールファイルを新規・追加作成する
ここではファイル名を/etc/udev/rules.d/100-usb-serial-devices.rulesとする
*-usb-serial-devices.rules(*が大きいほどルールの優先度が高くなる)
sudo gedit /etc/udev/rules.d/100-usb-serial-devices.rules
以下のように追加する
/etc/udev/rules.d/100-usb-serial-devices.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="調べたID_VENDOR_ID", ATTRS{idProduct}=="調べたID_MODEL_ID", ATTRS{serial}=="調べたID_SERIAL_SHORT",SYMLINK+="表示させたい名前", MODE="0666"
認識後は,[/dev/表示させたい名前]でデバイスが認識されるようになるし,
権限も666で自動付与される.
4. 最後にリロードする
sudo service udev reload
sudo reboot
おわり.