inst_d "/lib/udev/rules.d"
for _rule in "$@"; do
- for d in /lib/udev/rules.d /etc/udev/rules.d /lib/geninitrd/udev/rules.d; do
+ for d in /lib/udev/rules.d /etc/udev/rules.d /lib/geninitrd/udev-rules; do
if [ -f $d/$_rule ]; then
inst $d/$_rule /lib/udev/rules.d/$_rule
fi
# 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
+ # 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
done
- inst_exec $initrd_dir/blkid /sbin/blkid
- inst_exec $initrd_dir/dmsetup /sbin/dmsetup
+
+ # 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 [ -x "$dir/dmsetup" ] &&
+ [ "$($dir/dmsetup udevcookies 2>&1 | grep -c 'Command not supported')" -eq 0 ]; then
+ dmsetup=$dir/dmsetup
+ break
+ fi
+ done
+ if [ -z "$dmsetup" ]; then
+ warn "Can't find dmsetup with udev support"
+ else
+ inst_exec $dmsetup /sbin/dmsetup
+ fi
mount_dev
mount_sys
if ! is_yes "$USE_UDEV"; then
return
fi
- busybox_applet killall
add_linuxrc <<-'EOF'
- killall udevd
+ /sbin/udevadm control --exit
+ /sbin/udevadm info --cleanup-db
EOF
}