]> git.pld-linux.org Git - projects/geninitrd.git/blobdiff - mod-usbkbd.sh
- swsusp support from mis@pld-linux
[projects/geninitrd.git] / mod-usbkbd.sh
index 0595b5058638f7a62a82d3023e90f3614b819c98..35543b769cae16981ab32517d2787c22899b90b2 100644 (file)
@@ -1,10 +1,8 @@
 #!/bin/sh
-USBKBD_RCSID='$Revision$ $Date::                            $'
-
 # geninitrd mod: usbkbd
 
 find_modules_usbkbd() {
-       debug "Finding USB keyboard modules"
+       verbose "Finding USB keyboard modules"
 
        if [ "$(echo /sys/class/input/input*)" = "/sys/class/input/input*" ]; then
                return
@@ -12,6 +10,23 @@ find_modules_usbkbd() {
 
        local modules i module bInterfaceClass bInterfaceProtocol
 
+       for i in /sys/bus/usb/devices/*-*:*; do
+               # standard usb keyboards
+               if [ -f $i/bInterfaceClass -a -f $i/bInterfaceProtocol ]; then
+                       bInterfaceClass=$(cat $i/bInterfaceClass)
+                       bInterfaceProtocol=$(cat $i/bInterfaceProtocol)
+                       if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
+                               module=$(readlink $i/driver/module)
+                               module=$(basename $module)
+
+                               if [ -n "$module" ]; then
+                                       verbose "Found USB Keyboard driver: $module"
+                                       modules="$modules $module"
+                               fi
+                       fi
+               fi
+       done
+
        for i in /sys/class/input/input*; do
                # standard usb keyboards
                if [ -f $i/device/bInterfaceClass -a -f $i/device/bInterfaceProtocol ]; then
@@ -20,21 +35,21 @@ find_modules_usbkbd() {
                        if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
                                module=$(readlink $i/device/driver/module)
                                module=$(basename $module)
-       
+
                                if [ -n "$module" ]; then
-                                       debug "Found USB Keyboard: $(cat $i/name)"
+                                       verbose "Found USB Keyboard: $(cat $i/name)"
                                        modules="$modules $module"
                                fi
                        fi
                fi
 
                # logitech unifying receiver (unfortunately I know no way to detect keyboard only)
-               if grep -qil "Logitech Unifying Device" $i/name; then
+               if grep -qi "Logitech Unifying Device" $i/name; then
                        module=$(readlink $i/device/driver/module)
                        module=$(basename $module)
 
                        if [ -n "$module" ]; then
-                               debug "Found USB Logitech Unifying Device: $(cat $i/name)"
+                               verbose "Found USB Logitech Unifying Device: $(cat $i/name)"
                                modules="$modules $module"
                        fi
                fi
@@ -43,11 +58,11 @@ find_modules_usbkbd() {
        if [ -n "$modules" ]; then
                # usb controllers
                for m in $(find_modules_by_class "0c03"); do
-                       find_module $m
+                       find_module "$m"
                done
 
                for m in $modules; do
-                       find_module $m
+                       find_module "-$m"
                done
        fi
 }
This page took 0.054539 seconds and 4 git commands to generate.