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