ttyUSBデバイス名固定化
2017.11.26
AMBEserver及びBlueDVの稼働しているRasPi3を再起動したところttyUSB0とttyUSB1の接続機器が逆転して自動起動AMBEserverが動作しなくなっていました。
当初はttyUSB0がThumbDV、ttyUSB1がDVMEGAでしたが物理的な接続位置は変えていないのに再起動でttyUSB0がDVMEGA、ttyUSB1がThumbDVに逆転していました。

RaspberryPIのUSBシリアルポートは早く認識したものがttyUSB0、次に認識したものがttyUSB1となるようで再起動で変わる事が多々発生するとの事です。
起動前にttyUSB0として使いたい機器のみ接続して起動、次にttyUSB1として使用したい機器を接続するといった操作が必要となります。

.....と言う事でUSBシリアルポート名の固定化を行いました。


lsusb コマンドでUSBシリアルのidVendorとidProductを調べます。

Bus 001 Device 005: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

上記の例ですとシリアルポートは2つ接続されており
idVendor 0403 idProduct 6015 FTDI Bridge(I2C/SPI/UART/FIFO) <--ThumbDV
idVendor 0403 idProduct 6001 FTDI FT232 USB-Serial (UART) IC <--DVMEGA
となっています。
 
sudo nano /etc/udev/rules.d/99-local.rules   <-----新規のファイルです。

下記2行を記入(表示の関係で4行に見えるかも知れませんが2行です)

KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", SYMLINK+="ttyUSB_ambe"

KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB_mega"

保存して終了

ttyUSB_ambe / ttyUSB_mega の所はシステムで予約していない名称であれば任意です。

sudo reboot  で再起動

次にAMBEserver起動スクリプトを編集を行います。

sudo nano /etc/init.d/AMBEserver

/usr/bin/AMBEserver -d ...省略..... -s 460800 -i /dev/ttyUSB0 の
ttyUSB0 を ttyUSB_ambe に変更します。

保存して終了

再起動してAMBEserverの起動を確認
ps -C AMBEserver

PID TTY TIME CMD
1234 ? 00:00:02 AMBEserver <---1234は例 

BlueDV for Linux の設定
setup画面のSerial Port Radio項目で /dev/ttyUSB_mega を選択後Saveします。
SERIALボタンをONしてDVMEGAのfirmwareが表示されればOKです。

尚ttyUSB0等、元の標準デバイス名に戻したい場合は
sudo rm /etc/udev/rules.d/99-local.rules
で99-local.rulesファイルを消した後に各アプリの設定を戻し再起動すればokです。






2017.11.26 21:26 | 固定リンク | D-STAR/C4FM etc

- CafeNote -