diff options
author | Richard Purdie <richard@openedhand.com> | 2005-08-31 10:45:47 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2005-08-31 10:45:47 +0000 |
commit | 4b46c1f6e891b1ddd5968536440b888661fade3e (patch) | |
tree | e0ba2c1f56f61b868bf746da5c4feabb25b800b2 /openembedded/packages/udev/files | |
download | openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.gz openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.bz2 openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.xz openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.zip |
Initial population
git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'openembedded/packages/udev/files')
-rwxr-xr-x | openembedded/packages/udev/files/init | 178 | ||||
-rw-r--r-- | openembedded/packages/udev/files/noasmlinkage.patch | 27 | ||||
-rw-r--r-- | openembedded/packages/udev/files/tmpfs.patch | 16 |
3 files changed, 221 insertions, 0 deletions
diff --git a/openembedded/packages/udev/files/init b/openembedded/packages/udev/files/init new file mode 100755 index 000000000..16efb3154 --- /dev/null +++ b/openembedded/packages/udev/files/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/openembedded/packages/udev/files/noasmlinkage.patch b/openembedded/packages/udev/files/noasmlinkage.patch new file mode 100644 index 000000000..1694d4d66 --- /dev/null +++ b/openembedded/packages/udev/files/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/openembedded/packages/udev/files/tmpfs.patch b/openembedded/packages/udev/files/tmpfs.patch new file mode 100644 index 000000000..9d0d8b451 --- /dev/null +++ b/openembedded/packages/udev/files/tmpfs.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- udev-031/extras/start_udev~tmpfs 2004-09-10 17:10:03.000000000 -0400 ++++ udev-031/extras/start_udev 2004-09-11 15:18:15.560789160 -0400 +@@ -85,7 +85,7 @@ + fi + + echo "mounting... ramfs at $udev_root" +-mount -n -t ramfs none $udev_root ++mount -n -t ramfs none $udev_root || mount -n -t tmpfs none $udev_root + + # propogate /udev from /sys + echo "Creating initial udev device nodes:" |