From fe360dac30d76c69cb39f00e2764a62983fdcd56 Mon Sep 17 00:00:00 2001 From: kueller Date: Mon, 30 Mar 2009 19:58:58 +0000 Subject: [PATCH] Anpassungen an neue udev version. Neues Startup script (aus linuxfromscratch) udev startup aus rcS in rc.S/S05udev umgelegt git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_udev@4569 504e572c-2e33-0410-9681-be2bf7408885 --- etc/init.d/udev | 145 +++++++++++++++++++++++++----------------------- init/genpkg | 8 +-- 2 files changed, 80 insertions(+), 73 deletions(-) diff --git a/etc/init.d/udev b/etc/init.d/udev index 9102d5a..c5808a8 100755 --- a/etc/init.d/udev +++ b/etc/init.d/udev @@ -1,85 +1,94 @@ -#! /bin/bash +#!/bin/bash +######################################################################## +# Begin $rc_base/init.d/udev # -# udev init script to setup /udev +# Description : Udev Boot Script # -# chkconfig: 2345 20 80 -# description: manage user-space device nodes in /udev +# Authors : Based on Open Suse Udev Rules +# kay.sievers@suse.de +# +# Adapted to : Jim Gifford +# LFS : Alexander E. Patrakov +# +# Version : 00.00 +# +# Notes : +# +######################################################################## . /etc/init.d/functions -. /etc/udev/udev.conf - -prog=udev -sysfs_dir=/sys -bin=/sbin/udev -udevd=/sbin/udevd -udev_root=/dev - -remove_extra_nodes () { - # get rid of the extra nodes created in make_extra_nodes() - rm $udev_root/fd - rm $udev_root/stdin - rm $udev_root/stdout - rm $udev_root/stderr - rm $udev_root/core - #rm $udev_root/sndstat -} - case "$1" in - start) - # creating /var/lock/subsys if it doesn't exit - if [ ! -d /var/lock/subsys ]; then - mkdir -p /var/lock/subsys - fi + start) + echo -n "Creating /dev in tmpfs..." + mount -n -t tmpfs -o mode=0755 udev /dev + evaluate_retval - # don't use udev if sysfs is not mounted. - if [ ! -d $sysfs_dir/block ]; then - exit 1 - fi - if [ ! -d $udev_root ]; then - mkdir $udev_root - fi + echo -n "Copying static entries..." + cp --preserve=all --recursive --remove-destination /lib/udev/devices/* /dev + evaluate_retval + + echo -n "Setting Permissons on /dev/shm..." + chmod 1777 /dev/shm + evaluate_retval - #check if /dev ist mounted tmpfs -> else mount tmpfs here - ( mount | grep "\/dev " | grep tmpfs ) >/dev/null 2>&1 || mount -t tmpfs none /dev + echo "" > /sys/kernel/uevent_helper - # propogate /udev from /sys - we only need this while we do not - # have initramfs and an early user-space with which to do early - # device bring up - export ACTION=add - echo -n "Creating initial udev device nodes:" - loadproc udevstart + # start udevd + echo -n "Starting udevd..." + /sbin/udevd --daemon + evaluate_retval - # We want to start udevd ourselves if it isn't already running. This - # lets udevd run at a sane nice level... - loadproc $udevd --daemon - touch /var/lock/subsys/udev + # start coldplugging + echo -n "Performing Coldplugging..." + + # unlikely, but we may be faster than the first event + mkdir -p /dev/.udev/queue + + # configure all devices + /sbin/udevadm trigger + + # this replaces the old loop, exits after all devices are done + /sbin/udevadm settle + + echo_ok ;; - stop) - # be careful - echo -n $"Removing udev device nodes: " - export ACTION=remove - killproc $udevd - rm -f /var/lock/subsys/udev + + stop) + echo -n "Stopping udevd..." + killproc /sbin/udevd ;; - status) - if [ -f /var/lock/subsys/udev ]; then - echo $"$prog has run" - exit 0 - fi - echo $"$prog is stopped" - exit 3 + + restart) + echo -n "Restarting udevd..." + killproc /sbin/udevd + loadproc /sbin/udevd --daemon + evaluate_retval ;; - restart) - $0 stop - $0 start + + status) + statusproc /sbin/udevd ;; - reload) - # nothing to do here + + reload) + echo -n "Reloading udev rules..." + udevadm control reload_rules + cp --preserve=all --recursive --update /lib/udev/devices/* /dev + evaluate_retval ;; - *) - echo "Usage: $0 {start|stop|status|restart}" + + force-reload) + echo -n "Updating all available device nodes in /dev..." + udevadm control reload_rules + rm -rf /dev/.udev /dev/disk + cp --preserve=all --recursive --update /lib/udev/devices/* /dev + /sbin/udevadm trigger + /sbin/udevadm settle + evaluate_retval + ;; + + *) + echo "Usage: $0 {start|stop|restart|status|reload|force-reload}" exit 1 + ;; esac - -exit 0 diff --git a/init/genpkg b/init/genpkg index cbe466f..2bea395 100644 --- a/init/genpkg +++ b/init/genpkg @@ -30,9 +30,7 @@ for i in 0 6; do ln -s ../udev K91udev cd .. done -for i in 1 2 3 4 5; do - cd rc$i.d - ln -s ../udev S04udev - cd .. -done +cd rcS.d +ln -s ../udev S05udev +cd .. cd $WDIR