From 7a45806696ffeea197090fa5ea4b49896cc1e822 Mon Sep 17 00:00:00 2001 From: fake Date: Tue, 14 Mar 2006 01:00:21 +0000 Subject: [PATCH] fake: rockinitrd: add several programs needed for scsi-devfs.sh to the default initrd image, and add the option to pass an alternative initscript using real_init= on the kernel command line. [2006010621045714639] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7185 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/blindcoder/rockinitrd/initrd_base.txt | 5 +++++ package/blindcoder/rockinitrd/linuxrc | 21 ++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/package/blindcoder/rockinitrd/initrd_base.txt b/package/blindcoder/rockinitrd/initrd_base.txt index ec2ae3d51..5aa569b6a 100644 --- a/package/blindcoder/rockinitrd/initrd_base.txt +++ b/package/blindcoder/rockinitrd/initrd_base.txt @@ -2,7 +2,12 @@ /bin/cut /bin/cut /bin/ln /bin/ln /bin/rm /bin/rm +/usr/bin/readlink /bin/readlink +/bin/grep /bin/grep +/bin/gawk /bin/awk +/bin/sleep /bin/sleep /sbin/udev /sbin/udev /sbin/udevstart /sbin/udevstart +/sbin/udevsend /sbin/udevsend /sbin/udevd /sbin/udevd /etc/udev /etc/udev diff --git a/package/blindcoder/rockinitrd/linuxrc b/package/blindcoder/rockinitrd/linuxrc index 73e22abf5..0cf96f4ac 100644 --- a/package/blindcoder/rockinitrd/linuxrc +++ b/package/blindcoder/rockinitrd/linuxrc @@ -33,11 +33,12 @@ PATH="/sbin:/usr/sbin:/bin/:/usr/bin" rootfs="" rootfsmounted=0 -mount -n -t tmpfs tmpfs /tmp -mount -n -t proc proc /proc -mount -n -t sysfs sysfs /sys -mount -n -t ramfs ramfs /dev +mount -n -t tmpfs tmpfs /tmp || echo "Can't mount tmpfs!" +mount -n -t proc proc /proc || echo "Can't mount procfs!" +mount -n -t sysfs sysfs /sys || echo "Can't mount sysfs!" +mount -n -t ramfs ramfs /dev || echo "Can't mount ramfs!" /sbin/udevstart +echo "/sbin/udevsend" > /proc/sys/kernel/hotplug cd /dev rm -rf fd ln -sf /proc/self/fd @@ -51,6 +52,10 @@ done < /etc/fstab echo "loading kernel modules" . /etc/conf/kernel +# some devices need time... +echo "waiting for devices to settle..." +sleep 2 +/sbin/udevstart for x in /etc/conf/* ; do [ "${x}" == "/etc/conf/kernel" ] && continue @@ -64,8 +69,10 @@ if [ ${rootfsmounted} -eq 0 ] ; then rootfsmounted=1 fi -echo "starting init in /root" -echo "parameters passed to init: ${@}" +[ -z "$real_init" ] && real_init="/sbin/init" + +echo "starting $real_init in /root" +echo "parameters passed to $real_init: ${@}" cd /root mkdir -p /root/initrd mount -n --move /tmp /root/tmp @@ -73,4 +80,4 @@ mount -n --move /proc /root/proc mount -n --move /sys /root/sys mount -n --move /dev /root/dev /sbin/pivot_root . initrd -exec chroot . /sbin/init "${@}" +exec chroot . $real_init "${@}" < /dev/console > /dev/console 2>&1