![Linux でデバイス ID で指定されたデバイスを特定のファームウェアにリンクするにはどうすればよいですか?](https://rvso.com/image/1302254/Linux%20%E3%81%A7%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%20ID%20%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Linux で動作しない新しいデバイスがあるとします。そのデバイス ID は次のように取得しますlsusb
。
Bus 001 Device 003: ID
1164:7efd
YUAN High-Tech Development Co., Ltd
このデバイスがこのファームウェアで動作することを私が知っていると仮定します/lib/firmware/dvb-usb-dib0700-1.20.fw
1164:7efd
次に、デバイスにファームウェアをロードする必要があることをオペレーティングシステムに伝えるルールなどを作成したいと思います。dvb-usb-dib0700-1.20.fw
デバイス ID をファームウェアにリンクして、デバイスを動作させたいのですが、それを実現する方法はありますか?
ありがとう
答え1
このファイルがあります:
/lib/udev/rules.d/50-firmware.rules
このコンテンツ:
# do not edit this file, it will be overwritten on update
# firmware-class requests, copies files into the kernel
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware --firmware=$env{FIRMWARE} --devpath=$env{DEVPATH}"
/lib/udev/rules.dまたは/etc/udev/rules.dのrules.dディレクトリの例を参照し、カスタムudevルールを
/etc/udev/rules.d/
少なくとも、これらは Ubuntu サーバー上のファイルの場所です。
すぐに推測すると、この行は次のようになるはずですが、斜視のため、文書を詳しく見ることができません。
ATTRS{idVendor}=="1164", ATTRS{idProduct}=="7efd", SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware --firmware=/lib/firmware/dvb-usb-dib0700-1.20.fw --devpath=$env{DEVPATH}"
man udev
詳細については、を参照してください。