如何將某些裝置(由其裝置 ID 給出)與 Linux 中的特定韌體連結?

如何將某些裝置(由其裝置 ID 給出)與 Linux 中的特定韌體連結?

想像一下我有一個新設備,它不能在 Linux 上運作。我透過以下方式取得其裝置 ID lsusb

Bus 001 Device 003: ID1164:7efdYUAN 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以獲取更多資訊。

相關內容