]> git.pld-linux.org Git - projects/geninitrd.git/blobdiff - mod-udev.sh
Load configured font and do it early.
[projects/geninitrd.git] / mod-udev.sh
index ad64b1d7405510b8f7d64780d5bc750539da8b29..6e3008d772fcc3752008dfeb2a20bcea395c9a4c 100644 (file)
@@ -1,6 +1,4 @@
 #!/bin/sh
-UDEV_RCSID='$Revision$ $Date::                            $'
-
 # geninitrd mod: udev
 USE_UDEV=${USE_UDEV:-yes}
 
@@ -41,7 +39,7 @@ setup_mod_udev() {
 # generate initrd fragment
 # @access      public
 initrd_gen_udev() {
-       debug "Setting up udev..."
+       verbose "Setting up udev..."
 
        inst_d /sbin /etc/udev
        inst_exec $udevd /sbin/udevd
@@ -49,19 +47,26 @@ initrd_gen_udev() {
        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
 
        local e
        for e in ata_id cdrom_id collect firmware scsi_id v4l_id; do
-               inst_exec $initrd_dir/udev/$e /lib/udev/$e
+               if [ -e "$initrd_dir/udev/$e" ]; then
+                       inst_exec $initrd_dir/udev/$e /lib/udev/$e
+               fi
        done
-       inst_exec $initrd_dir/blkid /sbin/blkid
+
+       # blkid installed by mod-blkid
+       if ! is_yes "$USE_BLKID"; then
+               warn "BLKID support missing"
+       fi
 
        local dir dmsetup
        for dir in $initrd_dir /sbin; do
-               if [ "$($dir/dmsetup udevcookies 2>&1|grep -c 'Command not supported')" -eq 0 ]; then
+               if [ -x "$dir/dmsetup" ] &&
+                       [ "$($dir/dmsetup udevcookies 2>&1 | grep -c 'Command not supported')" -eq 0 ]; then
                        dmsetup=$dir/dmsetup
                        break
                fi
@@ -94,3 +99,59 @@ initrd_gen_stop_udevd() {
                /sbin/udevadm info --cleanup-db
        EOF
 }
+
+# generate initrd fragment
+# @access      public
+initrd_gen_mdev() {
+       debug "Setting up mdev..."
+
+       busybox_applet mdev
+       ln -s busybox $DESTDIR/bin/mdev
+
+       cat > $DESTDIR/etc/mdev.conf    <<-'EOF'
+# Provide user, group, and mode information for devices.  If a regex matches
+# the device name provided by sysfs, use the appropriate user:group and mode
+# instead of the default 0:0 660.
+#
+# Syntax:
+# %s %d:%d %s
+# devicename_regex user:group mode
+
+null           0:0 666
+zero           0:0 666
+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 666
+tty[0-9]*      0:5 600
+
+ttyS[0-9]*     0:16 660
+
+fd[0-9]*       0:19 660
+
+sd[a-z]*       0:6 660
+hd[a-z]*       0:6 660
+       EOF
+
+       mount_dev
+       mount_sys
+       mount_run
+       add_linuxrc     <<-'EOF'
+               echo /bin/mdev > /proc/sys/kernel/hotplug
+               mdev -s
+       EOF
+}
+
+initrd_gen_stop_mdev() {
+       add_linuxrc     <<-'EOF'
+               killall mdev > /dev/null 2>&1
+       EOF
+}
This page took 0.064738 seconds and 4 git commands to generate.