Brian Potkin wrote: > I have a USB device using the zd1211rw module. It behaves differently in > that a wlan0 interface is detected and can be configured. However, > $DEVPATH is the same as with the p54usb and modprobe still attempts to > remove usbcore.
I have a zd1211rw so was able to reproduce this. Probably any USB wifi needing firmware has this problem. The devpath I got was /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.4 This has a product file containing "USB2.0 WLAN", manufacturer containing ZyDAS and so on, but its driver/module link points to /sys/bus/usb/drivers/usbcore . The information about the actual driver for this device is in 1-1.4:1.0/driver and 1-1.4:1.0/modalias . All I can think to do is a special case. Assuming this only affects USB and not some other bus, this should work ok: diff --git a/check-missing-firmware.sh b/check-missing-firmware.sh index 95106d4..7835b39 100755 --- a/check-missing-firmware.sh +++ b/check-missing-firmware.sh @@ -98,9 +98,22 @@ check_missing () { if grep -q "^$fwfile$" $DENIED 2>/dev/null; then continue fi - - modules="$module${modules:+ $modules}" + files="$fwfile${files:+ $files}" + + if [ "$module" = usbcore ]; then + # Special case for USB bus, which puts the + # real module information in a subdir of + # the devpath. + for dir in $(find "$devpath" -maxdepth 1 -mindepth 1 -type d); do + module=$(get_module "$dir") + if [ -n "$module" ]; then + modules="$module${modules:+ $modules}" + fi + done + else + modules="$module${modules:+ $modules}" + fi done done -- see shy jo
signature.asc
Description: Digital signature