--- trunk/mkinitrd-magellan/mkinitrd.in 2009/05/04 18:51:02 845 +++ trunk/mkinitrd-magellan/mkinitrd.in 2009/08/05 16:24:23 894 @@ -649,7 +649,7 @@ # create basic filesystem layout -install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot} || die +install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot,usr/bin,usr/sbin} || die # install busybox echo "$(which busybox.mkinitrd)" @@ -669,8 +669,7 @@ # sbin related for i in chroot init losetup modprobe pivot_root do - # static links - ln ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}" + ln -s ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}" done # install run-init @@ -678,13 +677,13 @@ install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die # install insmod.static -echo "$(which insmod.static)" -install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die +#echo "$(which insmod.static)" +#install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die # install v86d for uvesafb support if installed if which v86d &> /dev/null then - echo "$(which insmod.static)" + echo "$(which v86d)" install -m0755 $(which v86d) ${DEST}/sbin/v86d || die fi @@ -727,40 +726,21 @@ add_initrd 'mount -t proc proc /proc' add_initrd 'mount -t sysfs sysfs /sys' +add_initrd 'mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024' [[ ${IMAGE_TYPE} = loopback ]] && add_initrd 'mount -t ramfs -o remount,rw /dev/ram /' +# install all busybox applets +add_initrd 'busybox --install -s' + # silencio add_initrd 'echo 0 > /proc/sys/kernel/printk' add_initrd 'echo "-- Creating initial device nodes ..."' -add_initrd 'mount -o exec,nosuid,mode=0755,size=10M -t tmpfs udev /dev' -add_initrd 'mkdir /dev/pts' -add_initrd 'mkdir /dev/shm' -add_initrd 'mkdir /dev/mapper' -add_initrd 'mkdir /dev/misc' -add_initrd 'mkdir /dev/fb' -add_initrd 'mkdir /dev/vc' -add_initrd 'mknod /dev/console c 5 1' -add_initrd 'mknod /dev/null c 1 3' -add_initrd 'mknod /dev/ram b 1 1' -add_initrd 'mknod /dev/rtc c 10 135' -add_initrd 'mknod /dev/systty c 4 0' -add_initrd 'mknod /dev/tty c 5 0' -add_initrd 'mknod /dev/zero c 1 5' -for (( i=0; i < 13; i++ )); do - add_initrd "mknod /dev/tty${i} c 4 ${i}" -done -for (( i=64; i < 68; i++)); do - add_initrd "mknod /dev/ttyS$((${i} - 64)) c 4 ${i}" -done - -# some needed symlinks -add_initrd 'ln -snf /proc/self/fd /dev/fd' -add_initrd 'ln -snf fd/0 /dev/stdin' -add_initrd 'ln -snf fd/1 /dev/stdout' -add_initrd 'ln -snf fd/2 /dev/stderr' -add_initrd 'ln -snf /proc/kcore /dev/core' +# populate dev +add_initrd 'mdev -s' +# handle hotplug events properly +add_initrd 'echo /sbin/mdev > /proc/sys/kernel/hotplug' # loading detected modules with options for MODULE in ${MODULES} @@ -845,13 +825,16 @@ add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' add_initrd 'mount /sysroot || ash' +# unset hotplug event-manager +add_initrd 'echo > /proc/sys/kernel/hotplug' + # de-silencio add_initrd 'echo 3 > /proc/sys/kernel/printk' add_initrd 'echo "-- Switching to real sysroot ..."' +add_initrd 'umount /dev' add_initrd 'umount /sys' add_initrd 'umount /proc' -add_initrd 'umount /dev' [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot /sbin/init $@ /sysroot/dev/console' if [[ ${IMAGE_TYPE} = loopback ]]