]>
Commit | Line | Data |
---|---|---|
72056d12 | 1 | #!/bin/sh |
c34c6a69 | 2 | UDEV_RCSID='$Revision$ $Date:: $' |
05c474b5 | 3 | |
72056d12 | 4 | # geninitrd mod: udev |
6e49b0b1 | 5 | USE_UDEV=${USE_UDEV:-yes} |
72056d12 ER |
6 | |
7 | # | |
8 | # TODO: | |
9 | # - make udev start before insmods | |
10 | # - make proper use of USE_UDEV - don't copy rules if USE_UDEV is off no! | |
11 | ||
0127fd8c AF |
12 | inst_rules() { |
13 | local _rule _found d | |
14 | ||
15 | inst_d "/lib/udev/rules.d" | |
16 | for _rule in "$@"; do | |
1b72cda6 | 17 | for d in /lib/udev/rules.d /etc/udev/rules.d /lib/geninitrd/udev-rules; do |
0127fd8c AF |
18 | if [ -f $d/$_rule ]; then |
19 | inst $d/$_rule /lib/udev/rules.d/$_rule | |
20 | fi | |
21 | done | |
22 | done | |
23 | ||
24 | } | |
25 | ||
c124d0cf ER |
26 | # setup geninitrd module |
27 | # @access public | |
28 | setup_mod_udev() { | |
29 | udevd=$(find_tool $initrd_dir/udevd /sbin/initrd-udevd) | |
fad1ded6 | 30 | udevadm=$(find_tool $initrd_dir/udevadm /sbin/initrd-udevadm) |
72056d12 | 31 | |
6e49b0b1 | 32 | if [ "$kernel_version" -lt "002006" ] || [ ! -x "$udevd" -o ! -x "$udevadm" -o ! -f /etc/udev/udev.conf ]; then |
c124d0cf ER |
33 | USE_UDEV=no |
34 | fi | |
6e49b0b1 ER |
35 | |
36 | if is_yes "$USE_UDEV"; then | |
37 | . /etc/udev/udev.conf | |
38 | fi | |
c124d0cf | 39 | } |
72056d12 ER |
40 | |
41 | # generate initrd fragment | |
42 | # @access public | |
43 | initrd_gen_udev() { | |
02ba8ab7 | 44 | verbose "Setting up udev..." |
72056d12 ER |
45 | |
46 | inst_d /sbin /etc/udev | |
47 | inst_exec $udevd /sbin/udevd | |
48 | inst_exec $udevadm /sbin/udevadm | |
49 | inst /etc/udev/udev.conf /etc/udev/udev.conf | |
0127fd8c AF |
50 | # standard udev rules |
51 | inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \ | |
52 | 60-pcmcia.rules 50-firmware.rules 10-dm.rules 11-dm-lvm.rules 13-dm-disk.rules | |
1b72cda6 AF |
53 | # initrd dedicated rules |
54 | inst_rules 01-ignore.rules 59-persistent-storage.rules 61-persistent-storage.rules 11-dm.rules | |
0127fd8c | 55 | |
4c84a24b | 56 | local e |
0127fd8c | 57 | for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do |
338975c8 AM |
58 | if [ -e "$initrd_dir/udev/$e" ]; then |
59 | inst_exec $initrd_dir/udev/$e /lib/udev/$e | |
60 | fi | |
0127fd8c | 61 | done |
5de12904 ER |
62 | |
63 | # blkid installed by mod-blkid | |
64 | if ! is_yes "$USE_BLKID"; then | |
65 | warn "BLKID support missing" | |
66 | fi | |
4c84a24b AF |
67 | |
68 | local dir dmsetup | |
69 | for dir in $initrd_dir /sbin; do | |
78b5874a ER |
70 | if [ -x "$dir/dmsetup" ] && |
71 | [ "$($dir/dmsetup udevcookies 2>&1 | grep -c 'Command not supported')" -eq 0 ]; then | |
4c84a24b AF |
72 | dmsetup=$dir/dmsetup |
73 | break | |
74 | fi | |
75 | done | |
76 | if [ -z "$dmsetup" ]; then | |
77 | warn "Can't find dmsetup with udev support" | |
78 | else | |
79 | inst_exec $dmsetup /sbin/dmsetup | |
80 | fi | |
72056d12 ER |
81 | |
82 | mount_dev | |
83 | mount_sys | |
5e41e841 | 84 | mount_run |
72056d12 ER |
85 | add_linuxrc <<-'EOF' |
86 | : 'Starting udev' | |
5e41e841 | 87 | mkdir /run/udev |
72056d12 | 88 | /sbin/udevd --daemon |
e8d76169 AF |
89 | /sbin/udevadm trigger --type=subsystems --action=add |
90 | /sbin/udevadm trigger --type=devices --action=add | |
72056d12 ER |
91 | /sbin/udevadm settle |
92 | EOF | |
93 | } | |
94 | ||
95 | initrd_gen_stop_udevd() { | |
1b481849 ER |
96 | if ! is_yes "$USE_UDEV"; then |
97 | return | |
98 | fi | |
72056d12 | 99 | add_linuxrc <<-'EOF' |
9aef38eb AF |
100 | /sbin/udevadm control --exit |
101 | /sbin/udevadm info --cleanup-db | |
72056d12 ER |
102 | EOF |
103 | } | |
382ce856 AM |
104 | |
105 | # generate initrd fragment | |
106 | # @access public | |
107 | initrd_gen_mdev() { | |
108 | debug "Setting up mdev..." | |
109 | ||
b7cb767b | 110 | busybox_applet mdev |
382ce856 AM |
111 | ln -s busybox $DESTDIR/bin/mdev |
112 | ||
113 | mount_dev | |
114 | mount_sys | |
115 | mount_run | |
116 | add_linuxrc <<-'EOF' | |
117 | echo /bin/mdev > /proc/sys/kernel/hotplug | |
118 | mdev -s | |
119 | EOF | |
120 | } | |
121 | ||
122 | initrd_gen_stop_mdev() { | |
123 | add_linuxrc <<-'EOF' | |
124 | killall mdev > /dev/null 2>&1 | |
125 | EOF | |
126 | } |