]> git.pld-linux.org Git - projects/geninitrd.git/blobdiff - mod-udev.sh
Use existing mechanism for installing udev apps but install regular variants, too...
[projects/geninitrd.git] / mod-udev.sh
index 09bcc7de9283f7dbc43b51b2cc64da79b0e2b7e9..87f4b6891c685df91cd051cfa4d1931f24a5704b 100644 (file)
@@ -1,6 +1,4 @@
 #!/bin/sh
-UDEV_RCSID='$Revision$ $Date::                            $'
-
 # geninitrd mod: udev
 USE_UDEV=${USE_UDEV:-yes}
 
@@ -43,13 +41,13 @@ setup_mod_udev() {
 initrd_gen_udev() {
        verbose "Setting up udev..."
 
-       inst_d /sbin /etc/udev
+       inst_d /sbin /etc/udev /lib/udev
        inst_exec $udevd /sbin/udevd
        inst_exec $udevadm /sbin/udevadm
        inst /etc/udev/udev.conf /etc/udev/udev.conf
        # standard udev rules
        inst_rules 50-udev-default.rules 60-persistent-storage.rules 61-persistent-storage-edd.rules 80-drivers.rules 95-udev-late.rules \
-               60-pcmcia.rules 50-firmware.rules 10-dm.rules 11-dm-lvm.rules 13-dm-disk.rules
+               60-pcmcia.rules 50-firmware.rules 10-dm.rules 11-dm-lvm.rules 13-dm-disk.rules 95-dm-notify.rules
        # initrd dedicated rules
        inst_rules 01-ignore.rules 59-persistent-storage.rules 61-persistent-storage.rules 11-dm.rules
 
@@ -57,9 +55,21 @@ initrd_gen_udev() {
        for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do
                if [ -e "$initrd_dir/udev/$e" ]; then
                        inst_exec $initrd_dir/udev/$e /lib/udev/$e
+               elif [ -e "/lib/udev/$e" ]; then
+                       inst_exec /lib/udev/$e /lib/udev/$e
                fi
        done
 
+       # basic group file
+       local _lib
+       inst /etc/nsswitch.conf /etc/nsswitch.conf
+       for _lib in $(get_libdir LIBDIR); do
+               if (ls /$_lib/libnss_files*.so* > /dev/null 2>&1); then
+                       inst_exec /$_lib/libnss_files*.so* /$_lib/
+               fi
+       done
+       awk -F: ' { if ($3 < 1000) { print $1":"$2":"$3":" } } ' /etc/group > $DESTDIR/etc/group
+
        # blkid installed by mod-blkid
        if ! is_yes "$USE_BLKID"; then
                warn "BLKID support missing"
@@ -107,8 +117,9 @@ initrd_gen_stop_udevd() {
 initrd_gen_mdev() {
        debug "Setting up mdev..."
 
-       busybox_applet mdev
+       busybox_applet mdev uevent
        ln -s busybox $DESTDIR/bin/mdev
+       ln -s busybox $DESTDIR/bin/uevent
 
        cat > $DESTDIR/etc/mdev.conf    <<-'EOF'
 # Provide user, group, and mode information for devices.  If a regex matches
@@ -121,19 +132,23 @@ initrd_gen_mdev() {
 
 null           0:0 666
 zero           0:0 666
-urandom                0:0 444
+random         0:0 666
+urandom                0:0 666
 
+kmsg           0:0 644
 kmem           0:9 000
 mem            0:9 640
 port           0:9 640
 
+snapshot       0:0 600
+
 console                0:5 600
-ptmx           0:5 660
-tty[0-9]*      0:5 660
+ptmx           0:5 666
+tty[0-9]*      0:5 600
 
-ttyS[0-9]*     0:20 640
+ttyS[0-9]*     0:16 660
 
-fd[0-9]*       0:11 660
+fd[0-9]*       0:19 660
 
 sd[a-z]*       0:6 660
 hd[a-z]*       0:6 660
@@ -143,13 +158,15 @@ hd[a-z]*  0:6 660
        mount_sys
        mount_run
        add_linuxrc     <<-'EOF'
-               echo /bin/mdev > /proc/sys/kernel/hotplug
+               # \n needed in mdev.seq
+               echo > /dev/mdev.seq
+               uevent mdev &
                mdev -s
        EOF
 }
 
 initrd_gen_stop_mdev() {
        add_linuxrc     <<-'EOF'
-               killall mdev > /dev/null 2>&1
+               killall uevent > /dev/null 2>&1
        EOF
 }
This page took 0.082217 seconds and 4 git commands to generate.