
ディレクトリにドライバ値を設定してUSBデバイスをバインド/バインド解除するbashスクリプトがあります/sys
。コマンドは次のとおりです。
'X-Y.Z'
デバイスのアドレスです。
バインディングデバイス:
sh -c "echo 'X-Y.Z' > /sys/bus/usb/drivers/usb/bind"
デバイスバインディングを解除します。
sh -c "echo 'X-Y.Z' > /sys/bus/usb/drivers/usb/unbind"
完了したら、デバイスがバインドされていることを確認するスクリプトが必要です。
/sys/bus/usb/drivers/usb/bind
私は読んでファイルを保存する方法を見つけることができませんでした/sys/bus/usb/drivers/usb/unbind
。このファイルを読み取るためのコマンドはありますか?
私のbashスクリプトで、デバイスがデバイスフォーマットアドレスにのみバインドされていることを知るための別の方法はありますかX-Y.Z
?
答え1
デバイスをバインドすると、バインドしたディレクトリにそのデバイスが一覧表示されます。ただし、リンクが存在することを確認することもできます/sys/bus/usb/devices/X-Y.Z/driver
。この場合、リンクは使用しているドライバを指します。
たとえば、3-2.4:1.0
現在のftdi_sioドライバにバインドされているftdiシリアルUSBデバイスの場合は、driversディレクトリに表示され、devicesディレクトリへのリンクがあります。
$ ls /sys/bus/usb/drivers/ftdi_sio/
3-2.4:1.0 bind uevent unbind
$ ls -l /sys/bus/usb/devices/3-2.4:1.0/
...
lrwxrwxrwx 1 root root 0 Aug 16 18:33 driver -> ../../../../../../../../bus/usb/drivers/ftdi_sio
バインドを解除した後、ディレクトリは存在しなくなり、ドライバリンクも存在しません。
$ sudo sh -c 'echo 3-2.4:1.0 >/sys/bus/usb/drivers/ftdi_sio/unbind '
$ ls /sys/bus/usb/drivers/ftdi_sio/
bind uevent unbind
$ ls -l /sys/bus/usb/devices/3-2.4:1.0/driver
/bin/ls: cannot access /sys/bus/usb/devices/3-2.4:1.0/driver: No such file or directory