1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#!/bin/sh -e
make_extra_nodes() {
[ -e /etc/udev/links.conf ] || return 0
grep '^[^#]' /etc/udev/links.conf | \
while read type name arg1; do
[ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue
case "$type" in
L) ln -s $arg1 /dev/$name ;;
D) mkdir -p /dev/$name ;;
M) mknod -m 600 /dev/$name $arg1 ;;
*) echo "links.conf: unparseable line ($type $name $arg1)" ;;
esac
done
}
supported_kernel() {
case "$(uname -r)" in
2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
2.6.1[0-4]|2.6.1[0-4][!0-9]*) return 1 ;;
esac
return 0
}
if ! supported_kernel; then
echo "udev requires a kernel >= 2.6.15, not started."
exit 0
fi
load_input_modules() {
case "$(uname -r)" in
2.6.1[0-5]|2.6.1[0-5][!0-9]*) ;; # <= 2.6.15
*) return 0
esac
for module in mousedev evdev joydev; do
modprobe -q $module || true
done
}
echo > /proc/sys/kernel/hotplug
mount -n -o mode=0755 -t tmpfs tmpfs /dev
make_extra_nodes
udevd --daemon
mkdir -p /dev/.udev/db/ /dev/.udev/queue/
udevtrigger
load_input_modules
mount /dev/pts
udevsettle
exit 0
|