]> git.pld-linux.org Git - projects/geninitrd.git/blame - mod-usbkbd.sh
USB keyboard modules finding and loading at initrd level.
[projects/geninitrd.git] / mod-usbkbd.sh
CommitLineData
942c9c06
AM
1#!/bin/sh
2SATA_RCSID='$Revision: 12372 $ $Date:: 2011-10-15 09:38:16 +0200 #$'
3
4# geninitrd mod: usbkbd
5
6# setup geninitrd module
7# @access public
8setup_mod_usbkbd() {
9}
10
11find_modules_usbkbd() {
12 debug "Finding USB keyboard modules"
13
14 if [ "$(ls -1 /sys/class/input/input* 2> /dev/null)" = "/sys/class/input/input*" ]; then
15 return
16 fi
17
18 local modules
19
20 for i in /sys/class/input/input*; do
21 [ ! -f $i/device/bInterfaceClass -o ! -f $i/device/bInterfaceProtocol ] && continue
22 bInterfaceClass=$(cat $i/device/bInterfaceClass)
23 bInterfaceProtocol=$(cat $i/device/bInterfaceProtocol)
24 if [ "$bInterfaceClass" = "03" -a "$bInterfaceProtocol" = "01" ]; then
25 module=$(readlink $i/device/driver/module)
26 module=$(basename $module)
27
28 modules="$modules $module"
29 fi
30 done
31
32 if [ -n "$modules" ]; then
33 # usb controllers
34 for m in $(find_modules_by_class "0c03"); do
35 find_module $m
36 done
37
38 for m in $modules; do
39 find_module $m
40 done
41 fi
42}
This page took 0.036026 seconds and 4 git commands to generate.