BashはUSBデバイスが/ sysにバインドされていることを確認します。

BashはUSBデバイスが/ sysにバインドされていることを確認します。

ディレクトリにドライバ値を設定して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

おすすめ記事