[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1032377: firmware loading tests with bookworm-DI-alpha2



On 05/03/2023 at 13:49, Cyril Brulebois wrote:

Mar  5 08:55:33 kernel: [  184.568261] usb 2-4: Loading firmware file isl3886usb
Mar  5 08:55:33 kernel: [  184.568284] usb 2-4: firmware: failed to load isl3886usb (-2)
Mar  5 08:55:33 kernel: [  184.568294] usb 2-4: firmware: failed to load isl3886usb (-2)
Mar  5 08:55:33 kernel: [  184.568295] usb 2-4: Direct firmware load for isl3886usb failed with error -2
Mar  5 08:55:33 kernel: [  184.568298] p54usb 2-4:1.0: failed to initialize device (-2)
Mar  5 08:55:33 kernel: [  184.568352] usbcore: registered new interface driver p54usb

Mar  5 08:55:34 check-missing-firmware: looking at dmesg for the first time
Mar  5 08:55:34 check-missing-firmware: saving timestamp for a later use: [  184.647143]
Mar  5 08:55:34 check-missing-firmware: failed to perform usb 2-4 lookup (no driver found)
Mar  5 08:55:34 check-missing-firmware: => sticking with the usb module
Mar  5 08:55:34 check-missing-firmware: using module usb instead of usb 2-4
Mar  5 08:55:34 check-missing-firmware: looking for firmware file isl3886usb requested by usb
Mar  5 08:55:34 check-missing-firmware: failed to perform usb 2-4 lookup (no driver found)
Mar  5 08:55:35 check-missing-firmware: => sticking with the usb module

Please share the contents of that device's directory, so that the lookup
can be adjusted. I could only test with one single device, so I haven't
tried to be clever and think about all possible cases. Feel free to
spawn a specific hw-detect bug report for that.

See attached files with and without firmware. The following links and directories exist only with firmware:

lrwxrwxrwx 1 root root 0 Mar 5 13:29 driver -> ../../../../../../bus/usb/drivers/p54usb
drwxr-xr-x    3 root     root             0 Mar  5 13:29 ieee80211
drwxr-xr-x    6 root     root             0 Mar  5 13:29 leds
drwxr-xr-x    3 root     root             0 Mar  5 13:29 net

I am afraid that when the firmware is missing the driver is not attached to the device so there is no direct way to retrieve it through /sys.

An indirect way may be to list loaded USB driver modules in /sys/bus/usb/drivers or /proc/modules and search in their firmware fields with modinfo ? Heavy and not 100% reliable though...
# with firmware

# ls -l /sys/bus/usb/devices/2-4/
drwxr-xr-x   18 root     root             0 Mar  5 08:54 2-4:1.0
-rw-r--r--    1 root     root          4096 Mar  5 08:55 authorized
-rw-r--r--    1 root     root          4096 Mar  5 08:55 avoid_reset_quirk
-rw-r--r--    1 root     root          4096 Mar  5 08:55 bConfigurationValue
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceClass
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceProtocol
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceSubClass
-r--r--r--    1 root     root          4096 Mar  5 08:55 bMaxPacketSize0
-r--r--r--    1 root     root          4096 Mar  5 08:55 bMaxPower
-r--r--r--    1 root     root          4096 Mar  5 08:55 bNumConfigurations
-r--r--r--    1 root     root          4096 Mar  5 08:55 bNumInterfaces
-r--r--r--    1 root     root          4096 Mar  5 08:54 bcdDevice
-r--r--r--    1 root     root          4096 Mar  5 08:55 bmAttributes
-r--r--r--    1 root     root          4096 Mar  5 08:55 busnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 configuration
-r--r--r--    1 root     root         65553 Mar  5 08:54 descriptors
-r--r--r--    1 root     root          4096 Mar  5 08:55 dev
-r--r--r--    1 root     root          4096 Mar  5 08:55 devnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 devpath
-r--r--r--    1 root     root          4096 Mar  5 08:55 devspec
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 driver -> ../../../../../bus/usb/drivers/usb
drwxr-xr-x    3 root     root             0 Mar  5 08:55 ep_00
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 firmware_node -> ../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2b/device:2c/device:30
-r--r--r--    1 root     root          4096 Mar  5 08:54 idProduct
-r--r--r--    1 root     root          4096 Mar  5 08:54 idVendor
-r--r--r--    1 root     root          4096 Mar  5 08:55 ltm_capable
-r--r--r--    1 root     root          4096 Mar  5 08:55 maxchild
drwxr-xr-x    2 root     root             0 Mar  5 08:55 physical_location
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 port -> ../2-0:1.0/usb2-port4
drwxr-xr-x    2 root     root             0 Mar  5 08:55 power
-r--r--r--    1 root     root          4096 Mar  5 08:55 quirks
-r--r--r--    1 root     root          4096 Mar  5 08:55 removable
--w-------    1 root     root          4096 Mar  5 08:55 remove
-r--r--r--    1 root     root          4096 Mar  5 08:55 rx_lanes
-r--r--r--    1 root     root          4096 Mar  5 08:55 speed
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 subsystem -> ../../../../../bus/usb
-r--r--r--    1 root     root          4096 Mar  5 08:55 tx_lanes
-rw-r--r--    1 root     root          4096 Mar  5 08:54 uevent
-r--r--r--    1 root     root          4096 Mar  5 08:55 urbnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 version

# ls -l /sys/bus/usb/devices/2-4/2-4:1.0
-rw-r--r--    1 root     root          4096 Mar  5 13:04 authorized
-r--r--r--    1 root     root          4096 Mar  5 13:04 bAlternateSetting
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceClass
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceNumber
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceProtocol
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceSubClass
-r--r--r--    1 root     root          4096 Mar  5 13:04 bNumEndpoints
lrwxrwxrwx    1 root     root             0 Mar  5 13:29 driver -> ../../../../../../bus/usb/drivers/p54usb
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_01
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_02
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_0d
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_0e
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_81
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_82
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_83
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_84
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8d
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8e
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8f
lrwxrwxrwx    1 root     root             0 Mar  5 13:04 firmware_node -> ../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2b/device:2c/device:30
drwxr-xr-x    3 root     root             0 Mar  5 13:29 ieee80211
drwxr-xr-x    6 root     root             0 Mar  5 13:29 leds
-r--r--r--    1 root     root          4096 Mar  5 13:04 modalias
drwxr-xr-x    3 root     root             0 Mar  5 13:29 net
drwxr-xr-x    2 root     root             0 Mar  5 13:04 physical_location
drwxr-xr-x    2 root     root             0 Mar  5 13:04 power
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 subsystem -> ../../../../../../bus/usb
-r--r--r--    1 root     root          4096 Mar  5 13:04 supports_autosuspend
-rw-r--r--    1 root     root          4096 Mar  5 08:54 uevent
# without firmware

# ls -l /sys/bus/usb/devices/2-4/
drwxr-xr-x   15 root     root             0 Mar  5 08:54 2-4:1.0
-rw-r--r--    1 root     root          4096 Mar  5 08:55 authorized
-rw-r--r--    1 root     root          4096 Mar  5 08:55 avoid_reset_quirk
-rw-r--r--    1 root     root          4096 Mar  5 08:55 bConfigurationValue
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceClass
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceProtocol
-r--r--r--    1 root     root          4096 Mar  5 08:55 bDeviceSubClass
-r--r--r--    1 root     root          4096 Mar  5 08:55 bMaxPacketSize0
-r--r--r--    1 root     root          4096 Mar  5 08:55 bMaxPower
-r--r--r--    1 root     root          4096 Mar  5 08:55 bNumConfigurations
-r--r--r--    1 root     root          4096 Mar  5 08:55 bNumInterfaces
-r--r--r--    1 root     root          4096 Mar  5 08:54 bcdDevice
-r--r--r--    1 root     root          4096 Mar  5 08:55 bmAttributes
-r--r--r--    1 root     root          4096 Mar  5 08:55 busnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 configuration
-r--r--r--    1 root     root         65553 Mar  5 08:54 descriptors
-r--r--r--    1 root     root          4096 Mar  5 08:55 dev
-r--r--r--    1 root     root          4096 Mar  5 08:55 devnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 devpath
-r--r--r--    1 root     root          4096 Mar  5 08:55 devspec
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 driver -> ../../../../../bus/usb/drivers/usb
drwxr-xr-x    3 root     root             0 Mar  5 08:55 ep_00
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 firmware_node -> ../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2b/device:2c/device:30
-r--r--r--    1 root     root          4096 Mar  5 08:54 idProduct
-r--r--r--    1 root     root          4096 Mar  5 08:54 idVendor
-r--r--r--    1 root     root          4096 Mar  5 08:55 ltm_capable
-r--r--r--    1 root     root          4096 Mar  5 08:55 maxchild
drwxr-xr-x    2 root     root             0 Mar  5 08:55 physical_location
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 port -> ../2-0:1.0/usb2-port4
drwxr-xr-x    2 root     root             0 Mar  5 08:55 power
-r--r--r--    1 root     root          4096 Mar  5 08:55 quirks
-r--r--r--    1 root     root          4096 Mar  5 08:55 removable
--w-------    1 root     root          4096 Mar  5 08:55 remove
-r--r--r--    1 root     root          4096 Mar  5 08:55 rx_lanes
-r--r--r--    1 root     root          4096 Mar  5 08:55 speed
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 subsystem -> ../../../../../bus/usb
-r--r--r--    1 root     root          4096 Mar  5 08:55 tx_lanes
-rw-r--r--    1 root     root          4096 Mar  5 08:54 uevent
-r--r--r--    1 root     root          4096 Mar  5 08:55 urbnum
-r--r--r--    1 root     root          4096 Mar  5 08:55 version

# ls -l /sys/bus/usb/devices/2-4/2-4:1.0
-rw-r--r--    1 root     root          4096 Mar  5 13:04 authorized
-r--r--r--    1 root     root          4096 Mar  5 13:04 bAlternateSetting
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceClass
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceNumber
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceProtocol
-r--r--r--    1 root     root          4096 Mar  5 13:04 bInterfaceSubClass
-r--r--r--    1 root     root          4096 Mar  5 13:04 bNumEndpoints
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_01
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_02
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_0d
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_0e
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_81
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_82
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_83
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_84
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8d
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8e
drwxr-xr-x    3 root     root             0 Mar  5 13:04 ep_8f
lrwxrwxrwx    1 root     root             0 Mar  5 13:04 firmware_node -> ../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2b/device:2c/device:30
-r--r--r--    1 root     root          4096 Mar  5 13:04 modalias
drwxr-xr-x    2 root     root             0 Mar  5 13:04 physical_location
drwxr-xr-x    2 root     root             0 Mar  5 13:04 power
lrwxrwxrwx    1 root     root             0 Mar  5 08:55 subsystem -> ../../../../../../bus/usb
-r--r--r--    1 root     root          4096 Mar  5 13:04 supports_autosuspend
-rw-r--r--    1 root     root          4096 Mar  5 08:54 uevent

Reply to: