¿Cómo puedo vincular algún dispositivo (dado por su ID de dispositivo) con un firmware específico en Linux?

¿Cómo puedo vincular algún dispositivo (dado por su ID de dispositivo) con un firmware específico en Linux?

Imagine que tengo un dispositivo nuevo que no funciona en Linux. Obtengo su ID de dispositivo con lsusb:

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

Imagine que sé que este dispositivo funcionará con este firmware./lib/firmware/dvb-usb-dib0700-1.20.fw

Entonces me gustaría crear una regla o algo que pueda decirle al sistema operativo que el dispositivo 1164:7efddebe cargarse con el firmware.dvb-usb-dib0700-1.20.fw

Solo quiero vincular la ID del dispositivo con el firmware para que mi dispositivo funcione. ¿Hay alguna forma de hacer eso?

Gracias

Respuesta1

Tengo este archivo:

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

con este contenido:

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

Vea ejemplos de los directorios reglas.d en /lib/udev/rules.d o /etc/udev/rules.d y coloque sus reglas udev personalizadas en

 /etc/udev/rules.d/

Al menos estas son las ubicaciones de los archivos en un servidor Ubuntu.

Mi suposición rápida es que la línea debería ser algo como esto, pero estoy demasiado bizco para mirar cualquier documento con más detalle.

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

ver man udevpara más información.

información relacionada