5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Linuxのデバイスファイルを固定する

Posted at

USBシリアルコンバータをたくさん挿してマイコンのデバッグをすることありますよね。

挿す順番でデバイスファイルの名前が変わってしまい面倒ですが、udevのコンフィグファイルを書くことでシンボリックリンクを作成することが出来ます。これによってデバイスファイルを固定した形で作業することが出来ます。

デバイスのID取得

デバイスを挿抜したときのログをdmesgで確認します。

1本目

[  322.612636] usb 1-2: new full-speed USB device number 12 using xhci_hcd
[  322.768178] usb 1-2: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 4.00
[  322.768197] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  322.768209] usb 1-2: Product: USB HS SERIAL CONVERTER
[  322.768219] usb 1-2: Manufacturer: FTDI
[  322.768228] usb 1-2: SerialNumber: FT1W8XXX
[  322.782407] ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
[  322.782530] usb 1-2: Detected FT232BM
[  322.782971] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0

2本目

[  406.788163] usb 1-1.3: new full-speed USB device number 14 using xhci_hcd
[  406.900555] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[  406.900571] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  406.900583] usb 1-1.3: Product: TTL232R-3V3
[  406.900594] usb 1-1.3: Manufacturer: FTDI
[  406.900603] usb 1-1.3: SerialNumber: FTA3BXXX
[  406.915978] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[  406.916379] usb 1-1.3: Detected FT232RL
[  406.918202] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB1

どちらもFTDIのUSBシリアルコンバータですね。
以下の行を確認してデバイスのIDを取得します。

[  406.900555] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[  406.900603] usb 1-1.3: SerialNumber: FTA3BXXX

ベンダID、製品ID、シリアル番号をメモしましょう。

  • idVendor: 0403
  • idProduct: 6001
  • SerialNumber: FTA3BXXX

udev ruleの記述

udevのルールを記述して適当な名前を割り当てます。

/etc/udev/rules.d10-local.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FT1W8XXX", SYMLINK+="printer"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTA3BXXX", SYMLINK+="stm_console"

書き込んだあとにはudevに知らせる必要があります。

$ sudo udevadm trigger

ケーブルを挿し直すとシンボリックリンクが作成されていることが分かります。

$ ls -l /dev/label_printer
lrwxrwxrwx 1 root root 7 Mar 28 17:04 /dev/printer -> ttyUSB0
$ ls -l /dev/stm_console
lrwxrwxrwx 1 root root 7 Mar 28 17:04 /dev/stm_console -> ttyUSB1

環境

Linux hostname 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?