![如何將某些裝置(由其裝置 ID 給出)與 Linux 中的特定韌體連結?](https://rvso.com/image/1302254/%E5%A6%82%E4%BD%95%E5%B0%87%E6%9F%90%E4%BA%9B%E8%A3%9D%E7%BD%AE%EF%BC%88%E7%94%B1%E5%85%B6%E8%A3%9D%E7%BD%AE%20ID%20%E7%B5%A6%E5%87%BA%EF%BC%89%E8%88%87%20Linux%20%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E9%9F%8C%E9%AB%94%E9%80%A3%E7%B5%90%EF%BC%9F.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
以獲取更多資訊。