Ticket #3298: mkinitramfs-udevd.patch
File mkinitramfs-udevd.patch, 3.0 KB (added by , 13 years ago) |
---|
-
postlfs/filesystems/initramfs.xml
old new 62 62 { 63 63 local file 64 64 65 if [ "$2" = ="lib" ]; then66 file=$( PATH=/lib:/usr/lib type -p $1)65 if [ "$2" = "lib" ]; then 66 file=$(find /lib /usr/lib -maxdepth 1 -name $1 | head -n 1) 67 67 else 68 file=$( type -p $1)68 file=$(find /bin /usr/bin /sbin /usr/sbin -maxdepth 1 -name $1 | head -n 1) 69 69 fi 70 70 71 71 if [ -n $file ] ; then … … 91 91 92 92 printf "Creating $INITRAMFS_FILE... " 93 93 94 binfiles=" sh cat cp dd killall ls lsmod mkdir mknod mount"94 binfiles="bash cat cp dd killall ls mkdir mknod mount" 95 95 binfiles="$binfiles umount sed sleep ln rm uname" 96 96 97 sbinfiles="udevadm udevd modprobe blkid switch_root mdadm"97 sbinfiles="udevadm modprobe blkid switch_root" 98 98 99 99 unsorted=$(mktemp /tmp/unsorted.XXXXXXXXXX) 100 100 101 101 DATADIR=/usr/share/mkinitramfs 102 102 INITIN=init.in 103 103 104 # Create a tempor rary working directory104 # Create a temporary working directory 105 105 WDIR=$(mktemp -d /tmp/initrd-work.XXXXXXXXXX) 106 106 107 107 # Create base directory structure … … 146 146 # Add lvm if present 147 147 if [ -x /sbin/lvm ] ; then sbinfiles="$sbinfiles lvm"; fi 148 148 149 # Add mdadm if present 150 if [ -x /sbin/mdadm ] ; then sbinfiles="$sbinfiles mdadm"; fi 151 152 # Add udevd if present in /sbin (newer versions of udev have it in 153 # /lib/udev) 154 if [ -x /sbin/udevd ] ; then sbinfiles="$sbinfiles udevd"; fi 155 149 156 for f in $sbinfiles ; do 150 157 ldd /sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted 151 158 copy $f sbin … … 157 164 ln -s kmod $WDIR/bin/insmod 158 165 fi 159 166 167 ln -s bash $WDIR/bin/sh 168 160 169 # Add lvm symlinks if appropriate 161 170 if [ -x /sbin/lvm ] ; then 162 171 ln -s lvm $WDIR/sbin/lvchange 163 ln -s lvm $WDIR/sbin/lvchange164 ln -s lvm $WDIR/sbin/lvchange165 172 ln -s lvm $WDIR/sbin/lvcreate 166 173 ln -s lvm $WDIR/sbin/lvdisplay 167 174 ln -s lvm $WDIR/sbin/lvscan … … 180 187 181 188 # Install libraries 182 189 sort $unsorted | uniq | while read lib ; do 190 lib=$(basename $lib) 183 191 if [ "$lib" == "linux-vdso.so.1" ] || 184 192 [ "$lib" == "linux-gate.so.1" ]; then 185 193 continue 186 194 fi 187 195 188 copy $lib rarylib196 copy $lib lib 189 197 done 190 198 191 199 cp -a /lib/udev $WDIR/lib … … 198 206 /lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \ 199 207 /lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage} \ 200 208 -type f 2> /dev/null | cpio --make-directories -p --quiet $WDIR 209 cp /lib/modules/$KERNEL_VERSION/modules.{builtin,order} \ 210 $WDIR/lib/modules/$KERNEL_VERSION 201 211 202 212 depmod -b $WDIR $KERNEL_VERSION 203 213 fi … … 296 306 esac 297 307 done 298 308 299 udevd --daemon --resolve-names=never 309 if [ -x /sbin/udevd ]; then 310 UDEV_PATH=/sbin 311 else 312 UDEV_PATH=/lib/udev 313 fi 314 315 ${UDEV_PATH}/udevd --daemon --resolve-names=never 300 316 udevadm trigger 301 317 udevadm settle 302 318 … … 306 322 307 323 do_mount_root 308 324 309 killall -w /sbin/udevd325 killall -w $UDEV_PATH/udevd 310 326 311 327 exec switch_root /.root "$init" "$@" 312 328