From eb992319a0a412435289e60b5e666da07133d1f5 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 20 Sep 2005 14:49:36 +0000 Subject: udev: Rearrange the udev files into a more logical structure. Create copies of the rules we're using rather than the distributed version due to links to external scripts. Add mount.sh which attempts to mount block devices using pmount if available, falling back to mount if not. Fix the --mode switch to mknod in the init script. --- packages/udev/files/init | 234 ++++++++++++++++------------- packages/udev/files/links.conf | 21 +++ packages/udev/files/local.rules | 3 + packages/udev/files/mount.sh | 25 +++ packages/udev/files/noasmlinkage.patch | 27 ---- packages/udev/files/permissions.rules | 81 ++++++++++ packages/udev/files/udev.rules | 96 ++++++++++++ packages/udev/udev-058/init | 178 ++++++++++++++++++++++ packages/udev/udev-058/noasmlinkage.patch | 27 ++++ packages/udev/udev-063/init | 178 ++++++++++++++++++++++ packages/udev/udev-065/init | 178 ++++++++++++++++++++++ packages/udev/udev-070/fix-alignment.patch | 24 --- packages/udev/udev-070/init | 196 ------------------------ packages/udev/udev-070/links.conf | 21 --- packages/udev/udev-070/udev.rules | 96 ------------ packages/udev/udev.inc | 20 ++- packages/udev/udev_058.bb | 1 + packages/udev/udev_063.bb | 3 +- packages/udev/udev_065.bb | 3 +- packages/udev/udev_070.bb | 12 +- 20 files changed, 935 insertions(+), 489 deletions(-) create mode 100644 packages/udev/files/links.conf create mode 100644 packages/udev/files/local.rules create mode 100644 packages/udev/files/mount.sh delete mode 100644 packages/udev/files/noasmlinkage.patch create mode 100644 packages/udev/files/permissions.rules create mode 100644 packages/udev/files/udev.rules create mode 100644 packages/udev/udev-058/init create mode 100644 packages/udev/udev-058/noasmlinkage.patch create mode 100644 packages/udev/udev-063/init create mode 100644 packages/udev/udev-065/init delete mode 100644 packages/udev/udev-070/fix-alignment.patch delete mode 100644 packages/udev/udev-070/init delete mode 100644 packages/udev/udev-070/links.conf delete mode 100644 packages/udev/udev-070/udev.rules (limited to 'packages') diff --git a/packages/udev/files/init b/packages/udev/files/init index 16efb31542..c290661c72 100755 --- a/packages/udev/files/init +++ b/packages/udev/files/init @@ -1,36 +1,18 @@ #!/bin/sh -e -PATH="/usr/sbin:/usr/bin:/sbin:/bin" - UDEVSTART=/sbin/udevstart -# default maximum size of the /dev ramfs -ramfs_size="1M" +# defaults +tmpfs_size="10M" +udev_root="/dev" [ -x $UDEVSTART ] || exit 0 . /etc/udev/udev.conf -case "$(uname -r)" in - 2.[012345].*) - echo "udev requires a kernel >= 2.6, not started." - exit 0 - ;; -esac - -if ! grep -q '[[:space:]]ramfs$' /proc/filesystems; then - echo "udev requires ramfs support, not started." - exit 0 -fi - -if [ ! -e /proc/sys/kernel/hotplug ]; then - echo "udev requires hotplug support, not started." - exit 0 -fi - ############################################################################## -# we need to unmount /dev/pts/ and remount it later over the ramfs +# we need to unmount /dev/pts/ and remount it later over the tmpfs unmount_devpts() { if mountpoint -q /dev/pts/; then umount -l /dev/pts/ @@ -41,132 +23,169 @@ unmount_devpts() { fi } -# mount a ramfs over /dev, if somebody did not already do it -mount_ramfs() { - if grep -E -q "^[^[:space:]]+ /dev ramfs" /proc/mounts; then +# mount a tmpfs over /dev, if somebody did not already do it +mount_tmpfs() { + if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then return 0 fi - # /.dev is used by /sbin/MAKEDEV to access the real /dev directory. - # if you don't like this, remove /.dev/. - [ -d /.dev ] && mount --bind /dev /.dev + # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory. + # /etc/udev/ is recycled as a temporary mount point because it's the only + # directory which is guaranteed to be available. + mount -n -o bind /dev /etc/udev + + if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then + umount /etc/udev + echo "udev requires tmpfs support, not started." + exit 1 + fi + + # using ln to test if /dev works, because touch is in /usr/bin/ + if ln -s test /dev/test-file; then + rm /dev/test-file + else + echo "udev requires tmpfs support, not started." + umount /etc/udev + umount /dev + exit 1 + fi - echo -n "Mounting a ramfs over /dev..." - mount -n -o size=$ramfs_size,mode=0755 -t ramfs none /dev - echo "done." + mkdir -p /dev/.static/dev + chmod 700 /dev/.static/ + mount -n -o move /etc/udev /dev/.static/dev } # I hate this hack. -- Md make_extra_nodes() { - if [ -f /etc/udev/links.conf ]; then + [ -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 "unparseable line ($type $name $arg1)" - ;; + 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 - fi +} + +# this function is duplicated in preinst, postinst and d-i +supported_kernel() { + case "$(uname -r)" in + 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;; + 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;; + esac + return 0 +} + +# shell version of /usr/bin/tty +my_tty() { + [ -x /bin/readlink ] || return 0 + [ -e /proc/self/fd/0 ] || return 0 + readlink --silent /proc/self/fd/0 || true +} + +warn_if_interactive() { + if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then + return 0 + fi + + TTY=$(my_tty) + if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then + return 0 + fi + + printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n" + printf "has been run from an interactive shell.\n" + printf "It will probably not do what you expect, so this script will wait\n" + printf "60 seconds before continuing. Press ^C to stop it.\n" + printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n" + sleep 60 } ############################################################################## -if [ "$udev_root" != "/dev" ]; then - echo "WARNING: udev_root != /dev" +if ! supported_kernel; then + echo "udev requires a kernel >= 2.6.12, not started." + exit 1 +fi -case "$1" in - start) - if [ -e "$udev_root/.udev.tdb" ]; then - if mountpoint -q /dev/; then - echo "FATAL: udev is already active on $udev_root." - exit 1 - else - echo "WARNING: .udev.tdb already exists on the old $udev_root!" - fi - fi - mount -n -o size=$ramfs_size,mode=0755 -t ramfs none $udev_root - echo -n "Creating initial device nodes..." - $UDEVSTART - echo "done." - ;; - stop) - start-stop-daemon -K -x /sbin/udevd - echo -n "Unmounting $udev_root..." - # unmounting with -l should never fail - if umount -l $udev_root; then - echo "done." - else - echo "failed." - fi - ;; - restart|force-reload) - $0 stop - $0 start - ;; - *) - echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" - exit 1 - ;; -esac +if [ ! -e /proc/filesystems ]; then + echo "udev requires a mounted procfs, not started." + exit 1 +fi + +if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then + echo "udev requires tmpfs support, not started." + exit 1 +fi - exit 0 -fi # udev_root != /dev/ +if [ ! -d /sys/class/ ]; then + echo "udev requires a mounted sysfs, not started." + exit 1 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 1 +fi ############################################################################## + # When modifying this script, do not forget that between the time that # the new /dev has been mounted and udevstart has been run there will be # no /dev/null. This also means that you cannot use the "&" shell command. case "$1" in start) - if [ -e "$udev_root/.udev.tdb" ]; then + if [ -e "$udev_root/.udevdb" ]; then if mountpoint -q /dev/; then - echo "FATAL: udev is already active on $udev_root." - exit 1 + TMPFS_MOUNTED=1 else - echo "WARNING: .udev.tdb already exists on the old $udev_root!" + echo ".udevdb already exists on the old $udev_root!" fi fi - unmount_devpts - mount_ramfs - ACTION=add - echo -n "Creating initial device nodes..." - $UDEVSTART + warn_if_interactive + + #echo /sbin/udevsend > /proc/sys/kernel/hotplug + echo "" > /proc/sys/kernel/hotplug + udevsend + if [ "$UDEV_DISABLED" = "yes" ]; then + echo "udev disabled on the kernel command line, not started." + exit 0 + fi + + if [ ! "$TMPFS_MOUNTED" ]; then + unmount_devpts + mount_tmpfs + [ -d /proc/1 ] || mount -n /proc + # if this directory is not present /dev will not be updated by udev + mkdir /dev/.udevdb/ + echo "Creating initial device nodes..." + udevstart + fi make_extra_nodes - echo "done." -# /etc/init.d/mountvirtfs start ;; stop) - start-stop-daemon -K -x /sbin/udevd + warn_if_interactive + start-stop-daemon --stop --exec /sbin/udevd --quiet unmount_devpts - echo -n "Unmounting /dev..." + if [ -d /dev/.static/dev/ ]; then + umount -l /dev/.static/dev/ || true + fi + echo "Unmounting /dev..." # unmounting with -l should never fail - if umount -l /dev; then - echo "done." - umount -l /.dev || true -# /etc/init.d/mountvirtfs start - else - echo "failed." + if ! umount -l /dev; then + exit 1 fi ;; restart|force-reload) - start-stop-daemon -K -x /sbin/udevd - echo -n "Recreating device nodes..." - ACTION=add - $UDEVSTART + start-stop-daemon --stop --exec /sbin/udevd --quiet + log_begin_msg "Recreating device nodes..." + udevstart make_extra_nodes - echo "done." + log_end_msg 0 ;; *) echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" @@ -175,4 +194,3 @@ case "$1" in esac exit 0 - diff --git a/packages/udev/files/links.conf b/packages/udev/files/links.conf new file mode 100644 index 0000000000..8fff922db6 --- /dev/null +++ b/packages/udev/files/links.conf @@ -0,0 +1,21 @@ +# This file does not exist. Please do not ask the debian maintainer about it. +# You may use it to do strange and wonderful things, at your risk. + +L fd /proc/self/fd +L stdin /proc/self/fd/0 +L stdout /proc/self/fd/1 +L stderr /proc/self/fd/2 +L core /proc/kcore +L sndstat /proc/asound/oss/sndstat +L MAKEDEV /sbin/MAKEDEV + +D pts +D shm + +# Hic sunt leones. +M ppp c 108 0 +D loop +M loop/0 b 7 0 +D net +M net/tun c 10 200 + diff --git a/packages/udev/files/local.rules b/packages/udev/files/local.rules new file mode 100644 index 0000000000..95b3e10830 --- /dev/null +++ b/packages/udev/files/local.rules @@ -0,0 +1,3 @@ +SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh" +SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh" + diff --git a/packages/udev/files/mount.sh b/packages/udev/files/mount.sh new file mode 100644 index 0000000000..7e641b08d7 --- /dev/null +++ b/packages/udev/files/mount.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# +# Called from udev +# Attemp to mount any added block devices +# and remove any removed devices +# + +MOUNT="/bin/mount" +PMOUNT="/usr/bin/pmount" +UMOUNT="/bin/umount" + +if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; then + if [ -x "$PMOUNT" ]; then + $PMOUNT $DEVNAME 2> /dev/null + elif [ -x $MOUNT ]; then + $MOUNT $DEVNAME 2> /dev/null + fi +fi + +if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then + for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " ` + do + $UMOUNT $mnt + done +fi diff --git a/packages/udev/files/noasmlinkage.patch b/packages/udev/files/noasmlinkage.patch deleted file mode 100644 index 1694d4d661..0000000000 --- a/packages/udev/files/noasmlinkage.patch +++ /dev/null @@ -1,27 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- udev-042/udev.c~noasmlinkage -+++ udev-042/udev.c -@@ -60,7 +60,7 @@ - } - #endif - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - switch (signum) { - case SIGALRM: ---- udev-042/udevd.c~noasmlinkage -+++ udev-042/udevd.c -@@ -308,7 +308,7 @@ - return; - } - --static void asmlinkage sig_handler(int signum) -+static void sig_handler(int signum) - { - int rc; - diff --git a/packages/udev/files/permissions.rules b/packages/udev/files/permissions.rules new file mode 100644 index 0000000000..86d771276b --- /dev/null +++ b/packages/udev/files/permissions.rules @@ -0,0 +1,81 @@ +# default permissions for block devices +SUBSYSTEM=="block", GROUP="disk" +SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy" + +# IDE devices +BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}="1", \ + PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="cdrom*", GROUP="cdrom" +BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape" +BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape" + +# SCSI devices +BUS=="scsi", SYSFS{type}=="1", GROUP="tape" +BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom" +BUS=="scsi", SYSFS{type}=="6", GROUP="scanner" + +# USB devices +BUS=="usb", KERNEL=="legousbtower*", MODE="0666" +BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp" + +# serial devices +SUBSYSTEM=="tty", GROUP="dialout" +SUBSYSTEM=="capi", GROUP="dialout" +SUBSYSTEM=="slamr", GROUP="dialout" + +# vc devices (all members of the tty subsystem) +KERNEL=="ptmx", MODE="0666", GROUP="root" +KERNEL=="console", MODE="0600", GROUP="root" +KERNEL=="tty", MODE="0666", GROUP="root" +KERNEL=="tty[0-9]*", GROUP="root" +KERNEL=="pty*", MODE="0666", GROUP="tty" + +# video devices +SUBSYSTEM=="video4linux", GROUP="video" +SUBSYSTEM=="drm", GROUP="video" +SUBSYSTEM=="dvb", GROUP="video" +SUBSYSTEM=="em8300", GROUP="video" +SUBSYSTEM=="graphics", GROUP="video" +SUBSYSTEM=="nvidia", GROUP="video" + +# misc devices +KERNEL=="random", MODE="0666" +KERNEL=="urandom", MODE="0444" +KERNEL=="mem", MODE="0640", GROUP="kmem" +KERNEL=="kmem", MODE="0640", GROUP="kmem" +KERNEL=="port", MODE="0640", GROUP="kmem" +KERNEL=="full", MODE="0666" +KERNEL=="null", MODE="0666" +KERNEL=="zero", MODE="0666" +KERNEL=="inotify", MODE="0666" +KERNEL=="sgi_fetchop", MODE="0666" +KERNEL=="sonypi", MODE="0666" +KERNEL=="agpgart", GROUP="video" +KERNEL=="nvram", GROUP="nvram" +KERNEL=="rtc", MODE="0660", GROUP="audio" + +KERNEL=="cdemu[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd", MODE="0644" + +# printers and parallel devices +SUBSYSTEM=="printer", GROUP="lp" +SUBSYSTEM=="ppdev", GROUP="lp" +KERNEL=="pt[0-9]*", GROUP="tape" +KERNEL=="pht[0-9]*", GROUP="tape" + +# sound devices +SUBSYSTEM=="sound", GROUP="audio" + +# ieee1394 devices +KERNEL=="raw1394", GROUP="disk" +KERNEL=="dv1394*", GROUP="video" +KERNEL=="video1394*", GROUP="video" + +# input devices +KERNEL=="event[0-9]*", MODE="0664" +KERNEL=="js[0-9]*", MODE="0664" + +# AOE character devices +SUBSYSTEM=="aoe", MODE="0220", GROUP="disk" +SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440" + diff --git a/packages/udev/files/udev.rules b/packages/udev/files/udev.rules new file mode 100644 index 0000000000..4fc82ba250 --- /dev/null +++ b/packages/udev/files/udev.rules @@ -0,0 +1,96 @@ +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %e the smallest number for that name which does not matches an existing node +# %k the kernel name for the device +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute +# %% the '%' char itself +# + +# SCSI devices +BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" + +# USB devices +BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" +BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" +BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" +BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" +BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ + SYMLINK+="pilot" + +# usbfs-like devices +SUBSYSTEM=="usb_device", \ + PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c" + +# serial devices +KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20" +KERNEL=="capi[0-9]*", NAME="capi/%n" + +# video devices +KERNEL=="card[0-9]*", NAME="dri/%k" + +# misc devices +KERNEL=="hw_random", NAME="hwrng" +KERNEL=="tun", NAME="net/%k" + +KERNEL=="cdemu[0-9]*", NAME="cdemu/%n" +KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n" +KERNEL=="pktcdvd", NAME="pktcdvd/control" + +KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" +KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" +KERNEL=="microcode", NAME="cpu/microcode" + +KERNEL=="umad*", NAME="infiniband/%k" +KERNEL=="issm*", NAME="infiniband/%k" +KERNEL=="uverbs*", NAME="infiniband/%k" +KERNEL=="ucm", NAME="infiniband/%k" + +# ALSA devices +KERNEL=="controlC[0-9]*", NAME="snd/%k" +KERNEL=="hwC[D0-9]*", NAME="snd/%k" +KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" +KERNEL=="midiC[D0-9]*", NAME="snd/%k" +KERNEL=="timer", NAME="snd/%k" +KERNEL=="seq", NAME="snd/%k" + +# ieee1394 devices +KERNEL=="dv1394*", NAME="dv1394/%n" +KERNEL=="video1394*", NAME="video1394/%n" + +# input devices +KERNEL=="mice", NAME="input/%k" +KERNEL=="mouse[0-9]*", NAME="input/%k" +KERNEL=="event[0-9]*", NAME="input/%k" +KERNEL=="js[0-9]*", NAME="input/%k" +KERNEL=="ts[0-9]*", NAME="input/%k" +KERNEL=="uinput", NAME="input/%k" + +# Zaptel +KERNEL=="zapctl", NAME="zap/ctl" +KERNEL=="zaptimer", NAME="zap/timer" +KERNEL=="zapchannel", NAME="zap/channel" +KERNEL=="zappseudo", NAME="zap/pseudo" +KERNEL=="zap[0-9]*", NAME="zap/%n" + +# AOE character devices +SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k" + +# device mapper creates its own device nodes, so ignore these +KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device" +KERNEL=="device-mapper", NAME="mapper/control" + +KERNEL="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660" + +# Firmware Helper +ACTION=="add", SUBSYSTEM=="firmware", RUN+="/sbin/firmware_helper" diff --git a/packages/udev/udev-058/init b/packages/udev/udev-058/init new file mode 100644 index 0000000000..16efb31542 --- /dev/null +++ b/packages/udev/udev-058/init @@ -0,0 +1,178 @@ +#!/bin/sh -e + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" + +UDEVSTART=/sbin/udevstart + +# default maximum size of the /dev ramfs +ramfs_size="1M" + +[ -x $UDEVSTART ] || exit 0 + +. /etc/udev/udev.conf + +case "$(uname -r)" in + 2.[012345].*) + echo "udev requires a kernel >= 2.6, not started." + exit 0 + ;; +esac + +if ! grep -q '[[:space:]]ramfs$' /proc/filesystems; then + echo "udev requires ramfs support, not started." + exit 0 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 0 +fi + +############################################################################## + +# we need to unmount /dev/pts/ and remount it later over the ramfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -l /dev/shm/ + fi +} + +# mount a ramfs over /dev, if somebody did not already do it +mount_ramfs() { + if grep -E -q "^[^[:space:]]+ /dev ramfs" /proc/mounts; then + return 0 + fi + + # /.dev is used by /sbin/MAKEDEV to access the real /dev directory. + # if you don't like this, remove /.dev/. + [ -d /.dev ] && mount --bind /dev /.dev + + echo -n "Mounting a ramfs over /dev..." + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none /dev + echo "done." +} + +# I hate this hack. -- Md +make_extra_nodes() { + if [ -f /etc/udev/links.conf ]; then + 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 "unparseable line ($type $name $arg1)" + ;; + esac + done + fi +} + +############################################################################## + +if [ "$udev_root" != "/dev" ]; then + echo "WARNING: udev_root != /dev" + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none $udev_root + echo -n "Creating initial device nodes..." + $UDEVSTART + echo "done." + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + echo -n "Unmounting $udev_root..." + # unmounting with -l should never fail + if umount -l $udev_root; then + echo "done." + else + echo "failed." + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + + exit 0 +fi # udev_root != /dev/ + +############################################################################## +# When modifying this script, do not forget that between the time that +# the new /dev has been mounted and udevstart has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + unmount_devpts + mount_ramfs + ACTION=add + echo -n "Creating initial device nodes..." + $UDEVSTART + make_extra_nodes + echo "done." +# /etc/init.d/mountvirtfs start + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + unmount_devpts + echo -n "Unmounting /dev..." + # unmounting with -l should never fail + if umount -l /dev; then + echo "done." + umount -l /.dev || true +# /etc/init.d/mountvirtfs start + else + echo "failed." + fi + ;; + restart|force-reload) + start-stop-daemon -K -x /sbin/udevd + echo -n "Recreating device nodes..." + ACTION=add + $UDEVSTART + make_extra_nodes + echo "done." + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 + diff --git a/packages/udev/udev-058/noasmlinkage.patch b/packages/udev/udev-058/noasmlinkage.patch new file mode 100644 index 0000000000..1694d4d661 --- /dev/null +++ b/packages/udev/udev-058/noasmlinkage.patch @@ -0,0 +1,27 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- udev-042/udev.c~noasmlinkage ++++ udev-042/udev.c +@@ -60,7 +60,7 @@ + } + #endif + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + switch (signum) { + case SIGALRM: +--- udev-042/udevd.c~noasmlinkage ++++ udev-042/udevd.c +@@ -308,7 +308,7 @@ + return; + } + +-static void asmlinkage sig_handler(int signum) ++static void sig_handler(int signum) + { + int rc; + diff --git a/packages/udev/udev-063/init b/packages/udev/udev-063/init new file mode 100644 index 0000000000..16efb31542 --- /dev/null +++ b/packages/udev/udev-063/init @@ -0,0 +1,178 @@ +#!/bin/sh -e + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" + +UDEVSTART=/sbin/udevstart + +# default maximum size of the /dev ramfs +ramfs_size="1M" + +[ -x $UDEVSTART ] || exit 0 + +. /etc/udev/udev.conf + +case "$(uname -r)" in + 2.[012345].*) + echo "udev requires a kernel >= 2.6, not started." + exit 0 + ;; +esac + +if ! grep -q '[[:space:]]ramfs$' /proc/filesystems; then + echo "udev requires ramfs support, not started." + exit 0 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 0 +fi + +############################################################################## + +# we need to unmount /dev/pts/ and remount it later over the ramfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -l /dev/shm/ + fi +} + +# mount a ramfs over /dev, if somebody did not already do it +mount_ramfs() { + if grep -E -q "^[^[:space:]]+ /dev ramfs" /proc/mounts; then + return 0 + fi + + # /.dev is used by /sbin/MAKEDEV to access the real /dev directory. + # if you don't like this, remove /.dev/. + [ -d /.dev ] && mount --bind /dev /.dev + + echo -n "Mounting a ramfs over /dev..." + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none /dev + echo "done." +} + +# I hate this hack. -- Md +make_extra_nodes() { + if [ -f /etc/udev/links.conf ]; then + 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 "unparseable line ($type $name $arg1)" + ;; + esac + done + fi +} + +############################################################################## + +if [ "$udev_root" != "/dev" ]; then + echo "WARNING: udev_root != /dev" + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none $udev_root + echo -n "Creating initial device nodes..." + $UDEVSTART + echo "done." + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + echo -n "Unmounting $udev_root..." + # unmounting with -l should never fail + if umount -l $udev_root; then + echo "done." + else + echo "failed." + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + + exit 0 +fi # udev_root != /dev/ + +############################################################################## +# When modifying this script, do not forget that between the time that +# the new /dev has been mounted and udevstart has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + unmount_devpts + mount_ramfs + ACTION=add + echo -n "Creating initial device nodes..." + $UDEVSTART + make_extra_nodes + echo "done." +# /etc/init.d/mountvirtfs start + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + unmount_devpts + echo -n "Unmounting /dev..." + # unmounting with -l should never fail + if umount -l /dev; then + echo "done." + umount -l /.dev || true +# /etc/init.d/mountvirtfs start + else + echo "failed." + fi + ;; + restart|force-reload) + start-stop-daemon -K -x /sbin/udevd + echo -n "Recreating device nodes..." + ACTION=add + $UDEVSTART + make_extra_nodes + echo "done." + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 + diff --git a/packages/udev/udev-065/init b/packages/udev/udev-065/init new file mode 100644 index 0000000000..16efb31542 --- /dev/null +++ b/packages/udev/udev-065/init @@ -0,0 +1,178 @@ +#!/bin/sh -e + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" + +UDEVSTART=/sbin/udevstart + +# default maximum size of the /dev ramfs +ramfs_size="1M" + +[ -x $UDEVSTART ] || exit 0 + +. /etc/udev/udev.conf + +case "$(uname -r)" in + 2.[012345].*) + echo "udev requires a kernel >= 2.6, not started." + exit 0 + ;; +esac + +if ! grep -q '[[:space:]]ramfs$' /proc/filesystems; then + echo "udev requires ramfs support, not started." + exit 0 +fi + +if [ ! -e /proc/sys/kernel/hotplug ]; then + echo "udev requires hotplug support, not started." + exit 0 +fi + +############################################################################## + +# we need to unmount /dev/pts/ and remount it later over the ramfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -l /dev/shm/ + fi +} + +# mount a ramfs over /dev, if somebody did not already do it +mount_ramfs() { + if grep -E -q "^[^[:space:]]+ /dev ramfs" /proc/mounts; then + return 0 + fi + + # /.dev is used by /sbin/MAKEDEV to access the real /dev directory. + # if you don't like this, remove /.dev/. + [ -d /.dev ] && mount --bind /dev /.dev + + echo -n "Mounting a ramfs over /dev..." + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none /dev + echo "done." +} + +# I hate this hack. -- Md +make_extra_nodes() { + if [ -f /etc/udev/links.conf ]; then + 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 "unparseable line ($type $name $arg1)" + ;; + esac + done + fi +} + +############################################################################## + +if [ "$udev_root" != "/dev" ]; then + echo "WARNING: udev_root != /dev" + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + mount -n -o size=$ramfs_size,mode=0755 -t ramfs none $udev_root + echo -n "Creating initial device nodes..." + $UDEVSTART + echo "done." + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + echo -n "Unmounting $udev_root..." + # unmounting with -l should never fail + if umount -l $udev_root; then + echo "done." + else + echo "failed." + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + + exit 0 +fi # udev_root != /dev/ + +############################################################################## +# When modifying this script, do not forget that between the time that +# the new /dev has been mounted and udevstart has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if [ -e "$udev_root/.udev.tdb" ]; then + if mountpoint -q /dev/; then + echo "FATAL: udev is already active on $udev_root." + exit 1 + else + echo "WARNING: .udev.tdb already exists on the old $udev_root!" + fi + fi + unmount_devpts + mount_ramfs + ACTION=add + echo -n "Creating initial device nodes..." + $UDEVSTART + make_extra_nodes + echo "done." +# /etc/init.d/mountvirtfs start + ;; + stop) + start-stop-daemon -K -x /sbin/udevd + unmount_devpts + echo -n "Unmounting /dev..." + # unmounting with -l should never fail + if umount -l /dev; then + echo "done." + umount -l /.dev || true +# /etc/init.d/mountvirtfs start + else + echo "failed." + fi + ;; + restart|force-reload) + start-stop-daemon -K -x /sbin/udevd + echo -n "Recreating device nodes..." + ACTION=add + $UDEVSTART + make_extra_nodes + echo "done." + ;; + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 + diff --git a/packages/udev/udev-070/fix-alignment.patch b/packages/udev/udev-070/fix-alignment.patch deleted file mode 100644 index 8c7b8b5ac5..0000000000 --- a/packages/udev/udev-070/fix-alignment.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/udev_rules_parse.c b/udev_rules_parse.c ---- a/udev_rules_parse.c -+++ b/udev_rules_parse.c -@@ -241,6 +241,7 @@ static int add_to_rules(struct udev_rule - int valid; - char *linepos; - char *attr; -+ size_t padding; - int retval; - - /* get all the keys */ -@@ -506,6 +507,11 @@ static int add_to_rules(struct udev_rule - - /* grow buffer and add rule */ - rule_size = sizeof(struct udev_rule) + rule->bufsize; -+ padding = (sizeof(size_t) - rule_size % sizeof(size_t)) % sizeof(size_t); -+ dbg("add %zi padding bytes", padding); -+ rule_size += padding; -+ rule->bufsize += padding; -+ - rules->buf = realloc(rules->buf, rules->bufsize + rule_size); - if (!rules->buf) { - err("realloc failed"); - diff --git a/packages/udev/udev-070/init b/packages/udev/udev-070/init deleted file mode 100644 index d9fd45a600..0000000000 --- a/packages/udev/udev-070/init +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/sh -e - -UDEVSTART=/sbin/udevstart - -# defaults -tmpfs_size="10M" -udev_root="/dev" - -[ -x $UDEVSTART ] || exit 0 - -. /etc/udev/udev.conf - -############################################################################## - -# we need to unmount /dev/pts/ and remount it later over the tmpfs -unmount_devpts() { - if mountpoint -q /dev/pts/; then - umount -l /dev/pts/ - fi - - if mountpoint -q /dev/shm/; then - umount -l /dev/shm/ - fi -} - -# mount a tmpfs over /dev, if somebody did not already do it -mount_tmpfs() { - if grep -E -q "^[^[:space:]]+ /dev tmpfs" /proc/mounts; then - return 0 - fi - - # /dev/.static/dev/ is used by MAKEDEV to access the real /dev/ directory. - # /etc/udev/ is recycled as a temporary mount point because it's the only - # directory which is guaranteed to be available. - mount -n -o bind /dev /etc/udev - - if ! mount -n -o size=$tmpfs_size,mode=0755 -t tmpfs tmpfs /dev; then - umount /etc/udev - echo "udev requires tmpfs support, not started." - exit 1 - fi - - # using ln to test if /dev works, because touch is in /usr/bin/ - if ln -s test /dev/test-file; then - rm /dev/test-file - else - echo "udev requires tmpfs support, not started." - umount /etc/udev - umount /dev - exit 1 - fi - - mkdir -p /dev/.static/dev - chmod 700 /dev/.static/ - mount -n -o move /etc/udev /dev/.static/dev -} - -# I hate this hack. -- Md -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 --mode=600 /dev/$name $arg1 ;; - *) echo "links.conf: unparseable line ($type $name $arg1)" ;; - esac - done -} - -# this function is duplicated in preinst, postinst and d-i -supported_kernel() { - case "$(uname -r)" in - 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;; - 2.6.1[01]|2.6.1[01][!0-9]*) return 1 ;; - esac - return 0 -} - -# shell version of /usr/bin/tty -my_tty() { - [ -x /bin/readlink ] || return 0 - [ -e /proc/self/fd/0 ] || return 0 - readlink --silent /proc/self/fd/0 || true -} - -warn_if_interactive() { - if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then - return 0 - fi - - TTY=$(my_tty) - if [ -z "$TTY" -o "$TTY" = "/dev/console" ]; then - return 0 - fi - - printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n" - printf "has been run from an interactive shell.\n" - printf "It will probably not do what you expect, so this script will wait\n" - printf "60 seconds before continuing. Press ^C to stop it.\n" - printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n" - sleep 60 -} - -############################################################################## - -if ! supported_kernel; then - echo "udev requires a kernel >= 2.6.12, not started." - exit 1 -fi - -if [ ! -e /proc/filesystems ]; then - echo "udev requires a mounted procfs, not started." - exit 1 -fi - -if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then - echo "udev requires tmpfs support, not started." - exit 1 -fi - -if [ ! -d /sys/class/ ]; then - echo "udev requires a mounted sysfs, not started." - exit 1 -fi - -if [ ! -e /proc/sys/kernel/hotplug ]; then - echo "udev requires hotplug support, not started." - exit 1 -fi - -############################################################################## - -# When modifying this script, do not forget that between the time that -# the new /dev has been mounted and udevstart has been run there will be -# no /dev/null. This also means that you cannot use the "&" shell command. - -case "$1" in - start) - if [ -e "$udev_root/.udevdb" ]; then - if mountpoint -q /dev/; then - TMPFS_MOUNTED=1 - else - echo ".udevdb already exists on the old $udev_root!" - fi - fi - warn_if_interactive - - #echo /sbin/udevsend > /proc/sys/kernel/hotplug - echo "" > /proc/sys/kernel/hotplug - udevsend - if [ "$UDEV_DISABLED" = "yes" ]; then - echo "udev disabled on the kernel command line, not started." - exit 0 - fi - - if [ ! "$TMPFS_MOUNTED" ]; then - unmount_devpts - mount_tmpfs - [ -d /proc/1 ] || mount -n /proc - # if this directory is not present /dev will not be updated by udev - mkdir /dev/.udevdb/ - echo "Creating initial device nodes..." - udevstart - fi - make_extra_nodes - ;; - stop) - warn_if_interactive - start-stop-daemon --stop --exec /sbin/udevd --quiet - unmount_devpts - if [ -d /dev/.static/dev/ ]; then - umount -l /dev/.static/dev/ || true - fi - echo "Unmounting /dev..." - # unmounting with -l should never fail - if ! umount -l /dev; then - exit 1 - fi - ;; - restart|force-reload) - start-stop-daemon --stop --exec /sbin/udevd --quiet - log_begin_msg "Recreating device nodes..." - udevstart - make_extra_nodes - log_end_msg 0 - ;; - *) - echo "Usage: /etc/init.d/udev {start|stop|restart|force-reload}" - exit 1 - ;; -esac - -exit 0 diff --git a/packages/udev/udev-070/links.conf b/packages/udev/udev-070/links.conf deleted file mode 100644 index 8fff922db6..0000000000 --- a/packages/udev/udev-070/links.conf +++ /dev/null @@ -1,21 +0,0 @@ -# This file does not exist. Please do not ask the debian maintainer about it. -# You may use it to do strange and wonderful things, at your risk. - -L fd /proc/self/fd -L stdin /proc/self/fd/0 -L stdout /proc/self/fd/1 -L stderr /proc/self/fd/2 -L core /proc/kcore -L sndstat /proc/asound/oss/sndstat -L MAKEDEV /sbin/MAKEDEV - -D pts -D shm - -# Hic sunt leones. -M ppp c 108 0 -D loop -M loop/0 b 7 0 -D net -M net/tun c 10 200 - diff --git a/packages/udev/udev-070/udev.rules b/packages/udev/udev-070/udev.rules deleted file mode 100644 index 9e45ed64c3..0000000000 --- a/packages/udev/udev-070/udev.rules +++ /dev/null @@ -1,96 +0,0 @@ -# There are a number of modifiers that are allowed to be used in some -# of the different fields. They provide the following subsitutions: -# -# %n the "kernel number" of the device. -# For example, 'sda3' has a "kernel number" of '3' -# %e the smallest number for that name which does not matches an existing node -# %k the kernel name for the device -# %M the kernel major number for the device -# %m the kernel minor number for the device -# %b the bus id for the device -# %c the string returned by the PROGRAM -# %s{filename} the content of a sysfs attribute -# %% the '%' char itself -# - -# SCSI devices -BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" - -# USB devices -BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" -BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" -BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" -BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ - SYMLINK+="pilot" - -# usbfs-like devices -SUBSYSTEM=="usb_device", \ - PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c" - -# serial devices -KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20" -KERNEL=="capi[0-9]*", NAME="capi/%n" - -# video devices -KERNEL=="card[0-9]*", NAME="dri/%k" - -# misc devices -KERNEL=="hw_random", NAME="hwrng" -KERNEL=="tun", NAME="net/%k" - -KERNEL=="cdemu[0-9]*", NAME="cdemu/%n" -KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n" -KERNEL=="pktcdvd", NAME="pktcdvd/control" - -KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" -KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" -KERNEL=="microcode", NAME="cpu/microcode" - -KERNEL=="umad*", NAME="infiniband/%k" -KERNEL=="issm*", NAME="infiniband/%k" -KERNEL=="uverbs*", NAME="infiniband/%k" -KERNEL=="ucm", NAME="infiniband/%k" - -# ALSA devices -KERNEL=="controlC[0-9]*", NAME="snd/%k" -KERNEL=="hwC[D0-9]*", NAME="snd/%k" -KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" -KERNEL=="midiC[D0-9]*", NAME="snd/%k" -KERNEL=="timer", NAME="snd/%k" -KERNEL=="seq", NAME="snd/%k" - -# ieee1394 devices -KERNEL=="dv1394*", NAME="dv1394/%n" -KERNEL=="video1394*", NAME="video1394/%n" - -# input devices -KERNEL=="mice", NAME="input/%k" -KERNEL=="mouse[0-9]*", NAME="input/%k" -KERNEL=="event[0-9]*", NAME="input/%k" -KERNEL=="js[0-9]*", NAME="input/%k" -KERNEL=="ts[0-9]*", NAME="input/%k" -KERNEL=="uinput", NAME="input/%k" - -# Zaptel -KERNEL=="zapctl", NAME="zap/ctl" -KERNEL=="zaptimer", NAME="zap/timer" -KERNEL=="zapchannel", NAME="zap/channel" -KERNEL=="zappseudo", NAME="zap/pseudo" -KERNEL=="zap[0-9]*", NAME="zap/%n" - -# AOE character devices -SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k" -SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k" -SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k" - -# device mapper creates its own device nodes, so ignore these -KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device" -KERNEL=="device-mapper", NAME="mapper/control" - -KERNEL="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660" - -# Firmware Helper -ACTION=="add", SUBSYSTEM=="firmware", RUN+="/sbin/firmware_helper" \ No newline at end of file diff --git a/packages/udev/udev.inc b/packages/udev/udev.inc index 0b51df4797..9ab17e87f4 100644 --- a/packages/udev/udev.inc +++ b/packages/udev/udev.inc @@ -2,6 +2,14 @@ DESCRIPTION = "udev is a program which dynamically creates and removes device no /dev/. It responds to /sbin/hotplug device events and requires a 2.6 kernel." LICENSE = "GPL" +SRC_URI += " \ + file://udev.rules \ + file://links.conf \ + file://permissions.rules \ + file://mount.sh \ + file://local.rules \ + file://init" + UDEV_DEVFS_RULES ?= "0" PACKAGES =+ "udev-utils" @@ -34,9 +42,17 @@ do_install () { oe_runmake 'DESTDIR=${D}' INSTALL=install install install -d ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev + + install -d ${D}${sysconfdir}/udev/rules.d/ + + install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules + install -m 0644 ${WORKDIR}/permissions.rules ${D}${sysconfdir}/udev/rules.d/permissions.rules + install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/udev.rules if [ "${UDEV_DEVFS_RULES}" = "1" ]; then install -m 0644 ${S}/etc/udev/udev.rules.devfs ${D}${sysconfdir}/udev/rules.d/50-udev.rules fi - install -d ${D}${sysconfdir}/udev/rules.d/ - install -m 0644 ${S}/etc/udev/debian/permissions.rules ${D}${sysconfdir}/udev/rules.d/ + + install -d ${D}${sysconfdir}/udev/scripts/ + + install -m 0755 ${WORKDIR}/mount.sh ${D}${sysconfdir}/udev/scripts/mount.sh } diff --git a/packages/udev/udev_058.bb b/packages/udev/udev_058.bb index bab87e6cb2..0e3b727040 100644 --- a/packages/udev/udev_058.bb +++ b/packages/udev/udev_058.bb @@ -2,6 +2,7 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://tmpfs.patch;patch=1 \ file://noasmlinkage.patch;patch=1 \ file://flags.patch;patch=1 \ + file://permissions.rules \ file://init" include udev.inc diff --git a/packages/udev/udev_063.bb b/packages/udev/udev_063.bb index cf67a065ae..d64dae102e 100644 --- a/packages/udev/udev_063.bb +++ b/packages/udev/udev_063.bb @@ -3,8 +3,7 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://noasmlinkage.patch;patch=1 \ file://flags.patch;patch=1 \ file://fix-alignment.patch;patch=1 \ - file://tty-symlinks.patch;patch=1 \ - file://init" + file://tty-symlinks.patch;patch=1" include udev.inc diff --git a/packages/udev/udev_065.bb b/packages/udev/udev_065.bb index f6a2783136..91a8b57626 100644 --- a/packages/udev/udev_065.bb +++ b/packages/udev/udev_065.bb @@ -2,8 +2,7 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://tmpfs.patch;patch=1 \ file://noasmlinkage.patch;patch=1 \ file://flags.patch;patch=1 \ - file://tty-symlinks.patch;patch=1 \ - file://init" + file://tty-symlinks.patch;patch=1" include udev.inc diff --git a/packages/udev/udev_070.bb b/packages/udev/udev_070.bb index c42cdf5f5b..f791fd8cf4 100644 --- a/packages/udev/udev_070.bb +++ b/packages/udev/udev_070.bb @@ -2,12 +2,7 @@ SRC_URI = "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://tmpfs.patch;patch=1 \ file://noasmlinkage.patch;patch=1 \ file://flags.patch;patch=1 \ - file://tty-symlinks.patch;patch=1 \ - file://udev.rules \ - file://links.conf \ - file://init" - -UDEV_DEVFS_RULES = "0" + file://tty-symlinks.patch;patch=1" include udev.inc @@ -15,11 +10,6 @@ PR = "r1" UDEV_EXTRAS = "extras/firmware/ extras/scsi_id/ extras/volume_id/ extras/run_directory/" -do_install_append() { - install -m 0644 ${WORKDIR}/udev.rules ${D}${sysconfdir}/udev/rules.d/ - install -m 0644 ${WORKDIR}/links.conf ${D}${sysconfdir}/udev/links.conf -} - #FIXME UDEV MIGRATION PLAN: #FIXME a) udevd is now a netlink daemon and needs to be started by the init script (ours is way too old) #FIXME b) sbin/hotplug should no longer be called by the kernel, i.e. echo "" >/proc/sys/kernel/hotplug -- cgit v1.2.3