
オプションドライバがUSB IDと正確に一致し、デバイスドライバをロードします。例えば
# lsusb
Bus 001 Device 002: ID 19d2:0031 ONDA Communication S.p.A. ZTE MF636
Bus 001 Device 003: ID 12d1:14ac Huawei Technologies Co., Ltd.
また、ハードウェアを管理するためのttyUSBXデバイスを作成します。
crw-rw---- 1 root uucp 188, 0 Jul 4 13:48 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Jul 4 13:49 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Jul 4 13:35 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Jul 4 13:37 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Jul 4 13:37 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Jul 4 13:37 /dev/ttyUSB5
crw-rw---- 1 root uucp 188, 6 Jul 4 13:37 /dev/ttyUSB6
crw-rw---- 1 root uucp 188, 7 Jul 4 13:37 /dev/ttyUSB7
しかし、複数のUSBシリアルデバイスがあり、どのttyUSBがどのUSBIDに対応するかを知りたいです。前任者。 /dev/ttyUSB1 -> 19d2:0031
この情報をどこで入手できるかご存知ですか?
答え1
デバイスが/dev/serial/by-id/に登録されていることを確認できます。
ls -l /dev/serial/by-id
これらの名前は一貫している必要があり、正しいttyUSBxを指す必要があります(symlink)。
答え2
sysfs ファイルシステムを見てください。私のUSBシリアルポートの例:
$ lsusb
Bus 003 Device 016: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
$ ls -l /sys/bus/usb-serial/devices
lrwxrwxrwx 1 root root 0 Jul 4 17:37 ttyUSB0 -> ../../../devices/pci0000:00/0000:00:1c.0/0000:02:00.0/usb3/3-1/3-1:1.0/ttyUSB0
$ $ grep PRODUCT= /sys/bus/usb-serial/devices/ttyUSB0/../uevent
PRODUCT=67b/2303/300
ご覧のとおり、私のコンピュータttyUSB0
にマッピングされています。067b:2303
探索する価値がある他の場所は次のとおりです/sys/class/tty/
。シンボリックリンクに注意してください。
答え3
私は一度エマルジョン。
/etc/udev/rules.d/50-usb.rules に書き込みます。
SUBSYSTEM=="tty", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", SYMLINK+="ONDA"
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14ac", SYMLINK+="HUAWEI"
最後まで。再起動。
これで/dev/ONDA
ONDAデバイスにアクセスできます。
root以外のユーザーがそれを使用できるようにするには、以下を追加します。
, MODE="0666"
各行の終わりまで。
答え4
次のコマンドは、19d2:0016に関連付けられているttyUSBデバイス名のリストを提供します(これはZTE MF831 LTEスティックの「モデムモード」IDであり、ユーザーによって異なる場合があります)。
for i in $(find -L /sys/bus/usb/devices/ -maxdepth 2 -name "ttyUSB*"); do
egrep -i "v19d2p0016(.*)in02" $i/../modalias >/dev/null && echo "/dev/${i##*/}"
done
これは、シンボリックリンクを含むファイル名がttyUSB *の/sys/bus/usb/devicesのファイルのリストを繰り返します。結果からmodaliasというファイルを検索し、ベンダーID "v" "19d2"と製品ID "p" 0016を含む文字列を見つけます。出力が一致すると、USB名の前に「/dev/」が付いた文字列が再表示されます。私が知っている限り、最初または通常最後(最も大きい数字)はZTEデバイスのモデムポートです。結果を/tmp/のファイルに反映し、それに応じてhead -n1またはtail -n1行を使用できます。ハブがある場合は、最大深さを増やす必要があります。
これは最もエレガントな方法ではありませんが、ほとんどすべてのLinuxバリアントで動作します。