source: udev/udev @ d729812

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since d729812 was d729812, checked in by Jim Gifford <clfs@…>, 18 years ago

r896@server (orig r894): ryan | 2005-12-13 23:58:28 -0800

r929@rei: ryan | 2005-12-14 19:01:30 +1100
Replace "bootmesg" with "boot_mesg" to make compatible with lfs-bootscripts


  • Property mode set to 100755
File size: 2.4 KB
Line 
1#!/bin/sh
2########################################################################
3# Begin $rc_base/init.d/udev
4#
5# Description : Udev Boot Script
6#
7# Authors     : Based on Open Suse Udev Rules
8#               kay.sievers@suse.de
9#
10# Adapted to  : Jim Gifford
11# LFS
12#
13# Version     : 00.00
14#
15# Notes       :
16#
17########################################################################
18
19. /etc/sysconfig/rc
20. ${rc_functions}
21
22trigger_device_events() {
23        # generate events with the sysfs trigger
24        list=$(echo /sys/bus/*/devices/*/uevent)
25        list="$list $(echo /sys/class/*/*/uevent)"
26        list="$list $(echo /sys/block/*/uevent /sys/block/*/*/uevent)"
27        for i in $list; do
28            case "$i" in
29                */device/uevent)
30                    # skip followed device symlinks
31                    continue
32                    ;;
33
34                */class/mem/*|*/class/tty/*)
35                    first="$first $i"
36                    ;;
37
38                */block/md*)
39                    last="$last $i"
40                    ;;
41
42                */*)
43                    default="$default $i"
44                    ;;
45            esac
46        done
47
48        # trigger the sorted events
49        for i in $first $default $last; do
50            echo "add" > "$i"
51        done
52}
53
54case "$1" in
55    start)
56        # disable hotplug helper, udevd listens to netlink
57        echo "" > /proc/sys/kernel/hotplug
58
59        # start udevd
60        boot_mesg "Starting udevd..."
61        loadproc /sbin/udevd --daemon
62
63        # cleanup some stuff
64        rm -f /var/run/sysconfig/network
65        rm -rf /events/*
66
67        # start coldplugging
68        boot_mesg "Performing Coldplugging..."
69
70        # unlikely, but we may be faster than the first event
71        mkdir -p /dev/.udev/queue
72
73        # configure all devices
74        trigger_device_events
75
76        # until we know how to do better, we wait for all events to finish
77        loop=0
78        while test -d /dev/.udev/queue; do
79            sleep 0.1;
80            test "$loop" -gt 300 && break
81            loop=$(($loop + 1))
82        done
83
84        echo_ok
85        ;;
86
87    stop)
88        boot_mesg "Stopping udevd..."
89        echo "/sbin/hotplug" > /proc/sys/kernel/hotplug
90        killproc /sbin/udevd
91        ;;
92
93    restart)
94        boot_mesg "Restarting udevd..."
95        killproc /sbin/udevd
96        loadproc /sbin/udevd --daemon
97        evaluate_retval
98        ;;
99
100    status)
101        statusproc /sbin/udevd
102        ;;
103
104    reload)
105        boot_mesg "Reloading udev rules..."
106        udevcontrol reload_rules
107        cp --preserve=all --recursive --update /lib/udev/devices/* /dev
108        evaluate_retval
109        ;;
110
111    force-reload)
112        boot_mesg "Updating all available device nodes in /dev..."
113        udevcontrol reload_rules
114        rm -rf /dev/.udev /dev/disk
115        cp --preserve=all --recursive --update /lib/udev/devices/* /dev
116        trigger_device_events
117        evaluate_retval
118        ;;
119
120    *)
121        echo "Usage: $0 {start|stop|restart|status|reload|force-reload}"
122        exit 1
123        ;;
124esac
Note: See TracBrowser for help on using the repository browser.