From e9949181c17a6a4f3c2aaad917afb68653443865 Mon Sep 17 00:00:00 2001 From: fake Date: Tue, 14 Mar 2006 01:01:34 +0000 Subject: [PATCH] fake: make rockinitrd the default initrd. changes: - set root=/dev/ram0 init=/linuxrc in grub stone module - add 'empty' option to mkinitrdnew.sh - remove old mkinitrd script from linux pkg, adopt .conf - remove '/' from the list of auto-checked filesystems in /etc/fstab creation - build rockinitrd before kernel, add CORE flag, and add it to misc/pkgsel/sets/basic.set [2006010920315712707] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7187 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- misc/pkgsel/sets/basic.set | 2 + package/base/linux/linux.conf | 3 - package/base/linux/mkinitrd.sh | 88 ------------------- package/base/sysfiles/stone_mod_setup.sh | 4 +- package/blindcoder/rockinitrd/mkinitrdnew.sh | 33 ++++--- package/blindcoder/rockinitrd/rockinitrd.conf | 2 +- package/blindcoder/rockinitrd/rockinitrd.desc | 3 +- package/x86/grub/stone_mod_grub.sh | 2 +- 8 files changed, 28 insertions(+), 109 deletions(-) delete mode 100644 package/base/linux/mkinitrd.sh diff --git a/misc/pkgsel/sets/basic.set b/misc/pkgsel/sets/basic.set index e57ef1ddc..3ed025968 100644 --- a/misc/pkgsel/sets/basic.set +++ b/misc/pkgsel/sets/basic.set @@ -90,6 +90,8 @@ / silo / { p; d; } / yaboot / { p; d; } +/ rockinitrd / { p; d; } + / ed / { p; d; } / vim / { p; d; } diff --git a/package/base/linux/linux.conf b/package/base/linux/linux.conf index ab2c4f2bc..64822a20f 100644 --- a/package/base/linux/linux.conf +++ b/package/base/linux/linux.conf @@ -514,9 +514,6 @@ main_lx() { $root/lib/modules/${lx_kernelrelease}/source if [ "$default" ] ; then - cp $confdir/mkinitrd.sh $root/sbin/mkinitrd - chmod +x $root/sbin/mkinitrd - if [ -z "$root" ]; then mkinitrd empty ${lx_kernelrelease} rm -f /boot/initrd.img diff --git a/package/base/linux/mkinitrd.sh b/package/base/linux/mkinitrd.sh deleted file mode 100644 index d80998c7a..000000000 --- a/package/base/linux/mkinitrd.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh - -kernel=`uname -r` -tmpdir=`mktemp -d` -modprobeopt=`echo $kernel | sed '/2.4/ { s,.*,-n,; q; }; s,.*,--show-depends,'` -empty=0 - -if [ "$1" = "empty" ]; then - empty=1; shift -fi - -if [ -n "$1" ]; then - if [ -d "/lib/modules/$1" ]; then - kernel="$1" - else - echo "Can't open /lib/modules/$1: No such directory." - echo "Usage: $0 [ kernel-version ]" - exit 1 - fi -fi - -cat << 'EOT' > $tmpdir/linuxrc.c -#include -#include -#include -#include - -int main() -{ -EOT - -echo "Creating /boot/initrd-${kernel}.img ..." -if [ "$empty" = 0 ]; then - grep '^modprobe ' /etc/conf/kernel | - grep -v 'no-initrd' | sed 's,[ ]#.*,,' | - while read a b; do $a $modprobeopt -v $b 2> /dev/null; done | - while read a b c; do - # ouch - this is pretty ugly.... - b="${b//`uname -r`/$kernel}" - if [ ! -f $tmpdir/${b##*/} ]; then - echo "Adding $b."; cp $b $tmpdir - x="$( eval "echo ${b##*/} $c" )" - cat << EOT >> $tmpdir/linuxrc.c - /* $x */ - if ( fork() ) wait(NULL); - else { - printf("initrd: loading %s.\n", "$x"); fflush(stdout); - execl("/insmod.static", "/insmod.static", "${x// /", "}", NULL); - _exit(1); - } -EOT - fi - done -fi -echo -e '\tprintf("initrd: going to re-mount root now.\\n");' >> $tmpdir/linuxrc.c -echo -e '\treturn 0;\n}' >> $tmpdir/linuxrc.c -gcc -s -static -Wall -Os -o $tmpdir/linuxrc $tmpdir/linuxrc.c -cp /sbin/insmod.static* $tmpdir/ -if [ -f $tmpdir/insmod.static.old ]; then - ln -s insmod.static.old $tmpdir/insmod.old -fi -mkdir -p $tmpdir/dev -mknod $tmpdir/dev/null c 1 3 -mknod $tmpdir/dev/zero c 1 5 -mknod $tmpdir/dev/tty c 5 0 -mknod $tmpdir/dev/console c 5 1 - -if false; then - # FIXME: kernel doesn't like romfs as initrd ?!?! - genromfs -f /boot/initrd-${kernel}.img.tmp -d $tmpdir -else - # This works, but only for initrd images < 4 MB - dd if=/dev/zero of=/boot/initrd-${kernel}.img.tmp \ - count=4096 bs=1024 &> /dev/null - mke2fs -m 0 -N 180 -F /boot/initrd-${kernel}.img.tmp &> /dev/null - mntpoint="`mktemp -d`" - mount -o loop /boot/initrd-${kernel}.img.tmp $mntpoint - rmdir $mntpoint/lost+found/ - cp -a $tmpdir/* $mntpoint/ - umount -d $mntpoint - rmdir $mntpoint -fi -gzip < /boot/initrd-${kernel}.img.tmp > /boot/initrd-${kernel}.img -rm -f /boot/initrd-${kernel}.img.tmp - -rm -rf $tmpdir -echo "Done." - diff --git a/package/base/sysfiles/stone_mod_setup.sh b/package/base/sysfiles/stone_mod_setup.sh index b88312d49..ced19e37a 100644 --- a/package/base/sysfiles/stone_mod_setup.sh +++ b/package/base/sysfiles/stone_mod_setup.sh @@ -26,7 +26,7 @@ make_fstab() { tmp1=`mktemp` ; tmp2=`mktemp` cat <<- EOT > $tmp2 -/dev/root / auto defaults 0 1 +/dev/root / auto defaults 0 0 proc /proc proc defaults 0 0 devpts /dev/pts devpts defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 @@ -64,7 +64,7 @@ EOT sprintf("%-45s ", sprintf("%-35s ", sprintf("%-20s ", $1) $2) $3) $4, $5, $6); }' < $tmp1 | \ - sed "/ \($fsregex\) / s, 0$, 1," > /etc/fstab + sed "/ \/[^ ].*\($fsregex\) / s, 0$, 1," > /etc/fstab tr ' ' '\240' < /etc/fstab > $tmp1 gui_message $'Auto-created /etc/fstab file:\n\n'"$( cat $tmp1 )" diff --git a/package/blindcoder/rockinitrd/mkinitrdnew.sh b/package/blindcoder/rockinitrd/mkinitrdnew.sh index 63a46afc1..721942a68 100644 --- a/package/blindcoder/rockinitrd/mkinitrdnew.sh +++ b/package/blindcoder/rockinitrd/mkinitrdnew.sh @@ -3,6 +3,11 @@ kernel=`uname -r` tmpdir=`mktemp -d` modprobeopt=`echo $kernel | sed '/2.4/ { s,.*,-n,; q; }; s,.*,--show-depends,'` +empty=0 + +if [ "$1" = "empty" ]; then + empty=1; shift +fi if [ -n "$1" ]; then if [ -d "/lib/modules/$1" ]; then @@ -14,19 +19,21 @@ if [ -n "$1" ]; then fi fi -echo "Creating /boot/initrdnew-${kernel}.img ..." +echo "Creating /boot/initrd-${kernel}.img ..." mkdir -p $tmpdir/etc/conf -grep '^modprobe ' /etc/conf/kernel | grep -v 'no-initrd' | \ - sed 's,[ ]#.*,,' | \ - while read a b ; do $a $modprobeopt -v $b 2> /dev/null; done | - while read a b c; do - [[ "$b" = *.ko ]] && b=${b/.ko/}; - b="`find /lib/modules/$kernel -wholename "$b.o" -o -wholename "$b.ko"`" - echo "Adding $b." - mkdir -p $tmpdir/${b%/*} - cp $b $tmpdir/$b - echo "/sbin/insmod $b $c" >> $tmpdir/etc/conf/kernel - done +if [ "$empty" = 0 ] ; then + grep '^modprobe ' /etc/conf/kernel | grep -v 'no-initrd' | \ + sed 's,[ ]#.*,,' | \ + while read a b ; do $a $modprobeopt -v $b 2> /dev/null; done | + while read a b c; do + [[ "$b" = *.ko ]] && b=${b/.ko/}; + b="`find /lib/modules/$kernel -wholename "$b.o" -o -wholename "$b.ko"`" + echo "Adding $b." + mkdir -p $tmpdir/${b%/*} + cp $b $tmpdir/$b + echo "/sbin/insmod $b $c" >> $tmpdir/etc/conf/kernel + done +fi mkdir -p $tmpdir/dev $tmpdir/root $tmpdir/tmp $tmpdir/proc $tmpdir/sys mknod $tmpdir/dev/ram0 b 1 0 mknod $tmpdir/dev/null c 1 3 @@ -90,7 +97,7 @@ done itmp=`mktemp` mkfs.cramfs $tmpdir ${itmp} -gzip -9 < ${itmp} > /boot/initrdnew-${kernel}.img +gzip -9 < ${itmp} > /boot/initrd-${kernel}.img rm -f ${itmp} rm -rf $tmpdir diff --git a/package/blindcoder/rockinitrd/rockinitrd.conf b/package/blindcoder/rockinitrd/rockinitrd.conf index 978e43813..09ab3feec 100644 --- a/package/blindcoder/rockinitrd/rockinitrd.conf +++ b/package/blindcoder/rockinitrd/rockinitrd.conf @@ -24,7 +24,7 @@ rockinitrd_main() { mkdir -p $root/etc/conf/initrd install -m 644 ${confdir}/initrd_base.txt $root/etc/conf/initrd/initrd_base install -m 755 ${confdir}/linuxrc $root/etc/conf/initrd/linuxrc - install -m 755 ${confdir}/mkinitrdnew.sh $root/sbin/mkinitrdnew.sh + install -m 755 ${confdir}/mkinitrdnew.sh $root/sbin/mkinitrd } autoextract=0 diff --git a/package/blindcoder/rockinitrd/rockinitrd.desc b/package/blindcoder/rockinitrd/rockinitrd.desc index b900c8982..b10ab9f94 100644 --- a/package/blindcoder/rockinitrd/rockinitrd.desc +++ b/package/blindcoder/rockinitrd/rockinitrd.desc @@ -35,9 +35,10 @@ [M] Benjamin Schieder [C] base/boot +[F] CORE [L] GPL [S] Beta [V] 20050720 -[P] X -----5---9 241.900 +[P] X -----5---9 100.199 diff --git a/package/x86/grub/stone_mod_grub.sh b/package/x86/grub/stone_mod_grub.sh index 0c5ea6940..e0e23870a 100644 --- a/package/x86/grub/stone_mod_grub.sh +++ b/package/x86/grub/stone_mod_grub.sh @@ -98,7 +98,7 @@ default 0 fallback 1 title ROCK Linux -linux $bootdrive$bootpath/vmlinuz root=$rootdev ro +linux $bootdrive$bootpath/vmlinuz root=/dev/ram0 init=/linuxrc ro initrd $bootdrive$bootpath/initrd.img EOT if [ -f /boot/memtest86.bin ] ; then