#!/bin/sh -e load_input_modules() { for module in mousedev evdev joydev; do modprobe -q $module || true done } if [ ! -e /sys/class/mem/null/uevent ]; then # <= 2.6.14 /lib/udev/udevsynthesize load_input_modules exit 0 fi # replace $IFS with something which is not likely to appear in a sysfs path, # because some buggy drivers have spaces in their names oldifs="$IFS" IFS="|" for file in /sys/bus/*/devices/*/uevent /sys/class/*/*/uevent \ /sys/block/*/uevent /sys/block/*/*/uevent; do case "$file" in */device/uevent) ;; # skip followed device symlinks */\*/*) ;; */class/mem/*) # for /dev/null first="$first${IFS}$file" ;; */block/md[0-9]*) last="$last${IFS}$file" ;; *) default="$default${IFS}$file" ;; esac done for file in $first${IFS}$default${IFS}$last; do [ "$file" ] || continue echo 'add' > "$file" || true done IFS="$oldifs" case "$(uname -r)" in 2.6.1[0-5]|2.6.1[0-5][!0-9]*) # <= 2.6.15 load_input_modules ;; esac exit 0