如何在 Linux 中将某些设备(由其设备 ID 给出)与特定固件链接起来?

如何在 Linux 中将某些设备(由其设备 ID 给出)与特定固件链接起来?

假设我有一台新设备,但它不能在 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以了解更多信息。

相关内容