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です。
当初は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