Como posso vincular algum dispositivo (fornecido pelo ID do dispositivo) a um firmware específico no Linux?

Como posso vincular algum dispositivo (fornecido pelo ID do dispositivo) a um firmware específico no Linux?

Imagine que tenho um novo dispositivo que não funciona no Linux. Eu obtenho o ID do dispositivo com lsusb:

Bus 001 Device 003: ID1164:7efdYUAN High-Tech Development Co., Ltd

Imagine que eu sei que este dispositivo funcionará com este firmware/lib/firmware/dvb-usb-dib0700-1.20.fw

Então eu gostaria de criar uma regra ou algo que pudesse informar ao sistema operacional que o dispositivo 1164:7efddeve ser carregado com o firmwaredvb-usb-dib0700-1.20.fw

Só quero vincular o ID do dispositivo ao firmware, para que meu dispositivo funcione. Existe alguma maneira de fazer isso?

Obrigado

Responder1

Eu tenho este arquivo:

/lib/udev/rules.d/50-firmware.rules

com este conteúdo:

# 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}"

Veja exemplos dos diretórios regras.d em /lib/udev/rules.d ou /etc/udev/rules.d e coloque suas regras personalizadas do udev em

 /etc/udev/rules.d/

Pelo menos estes são os locais dos arquivos em um servidor Ubuntu.

Meu palpite rápido é que a linha deveria ser algo assim, mas sou estrábico demais para examinar qualquer documento com mais detalhes.

ATTRS{idVendor}=="1164", ATTRS{idProduct}=="7efd", SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware --firmware=/lib/firmware/dvb-usb-dib0700-1.20.fw --devpath=$env{DEVPATH}"

consulte man udevpara obter mais informações.

informação relacionada