SVN: geninitrd/trunk/mod-usbkbd.sh
arekm
arekm at pld-linux.org
Sat Oct 15 10:21:24 CEST 2011
Author: arekm
Date: Sat Oct 15 10:21:23 2011
New Revision: 12374
Added:
geninitrd/trunk/mod-usbkbd.sh
Log:
USB keyboard modules finding and loading at initrd level.
Added: geninitrd/trunk/mod-usbkbd.sh
==============================================================================
--- (empty file)
+++ geninitrd/trunk/mod-usbkbd.sh Sat Oct 15 10:21:23 2011
@@ -0,0 +1,42 @@
+#!/bin/sh
+SATA_RCSID='$Revision: 12372 $ $Date:: 2011-10-15 09:38:16 +0200 #$'
+
+# geninitrd mod: usbkbd
+
+# setup geninitrd module
+# @access public
+setup_mod_usbkbd() {
+}
+
+find_modules_usbkbd() {
+ debug "Finding USB keyboard modules"
+
+ if [ "$(ls -1 /sys/class/input/input* 2> /dev/null)" = "/sys/class/input/input*" ]; then
+ return
+ fi
+
+ local modules
+
+ for i in /sys/class/input/input*; do
+ [ ! -f $i/device/bInterfaceClass -o ! -f $i/device/bInterfaceProtocol ] && continue
+ bInterfaceClass=$(cat $i/device/bInterfaceClass)
+ bInterfaceProtocol=$(cat $i/device/bInterfaceProtocol)
+ if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
+ module=$(readlink $i/device/driver/module)
+ module=$(basename $module)
+
+ modules="$modules $module"
+ fi
+ done
+
+ if [ -n "$modules" ]; then
+ # usb controllers
+ for m in $(find_modules_by_class "0c03"); do
+ find_module $m
+ done
+
+ for m in $modules; do
+ find_module $m
+ done
+ fi
+}
More information about the pld-cvs-commit
mailing list