情報詳細IPCのUSBコネクタには、IMUを取り付けるケースが多いかと思います。この時にLANポートを増やすため、USB-LAN変換アダプタを取り付けるとIMUが認識されなくなる場合があります。これは、Linuxの仕様において、デバイスごとにデバイスファイル名(/dev/ttyUSB番号)が作成されますが、接続する順番によって番号部分が決まるためです。Navitrolでは、IMUのデバイスファイル名をparams.txtに指定するため、この仕様は不都合です。これを避けるため、デバイスの種類やシリアル番号ごとに固定したデバイスファイル名を作成します。デバイス固有の値を求める ファイル名を固定するため、まずはデバイスを特定するためにUSBデバイスのvendor ID, product ID, serial numberの値を求めます。IMUのみを接続した状態で、puttyなどのSSHツールでIPCにログインし、以下のコマンドを入力します。udevadm info -q property -n /dev/ttyUSB0 | grep -E "ID_SERIAL_SHORT=|ID_VENDOR_ID=|ID_MODEL_ID=" ID_MODEL_ID product ID ID_SERIAL_SHORT serial number ID_VENDOR_ID vendor ID udevルールファイルの作成次に、/etc/udev/rules.d/配下にudevルールファイルを作成して以下のような内容を書き込みます。例として、ここではファイル名を/etc/udev/rules.d/90-usb-serial-devices.rulesとしています。対象デバイスやルールを複数記述したい場合は、ルール毎にそれぞれ1行に指定して書き込みます。なお、#で始まる行はコメントとして扱われます。/etc/udev/rules.d/90-usb-serial-devices.rules# FT232RSUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="XXXXXXXX", SYMLINK+="ttyUSB-FT232R", GROUP="dialout"# CP2102N SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="XXXXXXXX", SYMLINK+="ttyUSB-CP2102N", GROUP="dialout" ルールファイルを作成したら、udevをリロードして書き込んだ内容を反映させます。udevadmコマンドを使ってudevルールをリロードする場合 $sudo udevadm control --reload-rulesserviceコマンドを使ってリロードする場合 $sudo service udev reload 以降、USBデバイスを接続すると、上記ルールファイルで指定されている内容に従って以下のように表示されます。$ ls -l /dev/ttyUSB* lrwxrwxrwx 1 root root 7 11月 26 00:55 /dev/ttyUSB-FT232R -> ttyUSB1 これをparams.txtに設定することで確実にデバイスを認識させることができます。【参考文献】USBデバイスのファイル名を固定化する方法 https://smdn.jp/electronics/udev_create_persistent_usb_device_symlink/添付ファイルタイトルUSB-LAN変換アダプタを安定して使う方法を教えてくださいURL 名Stable-use-of-USB-to-LAN-conversion-adapter公開状況公開済み検証状況未検証