Magellan Linux

Contents of /trunk/mkinitrd/patches/mkinitrd-6.3.5-respect-rootdelay-and-mount-devtmpfs-in-sysroot-if-supported.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1393 - (show annotations) (download)
Fri Jul 1 12:16:58 2011 UTC (12 years, 10 months ago) by niro
File size: 3703 byte(s)
fixes
1 Index: mkinitrd-6_3_5/livecd/linuxrc.sh
2 ===================================================================
3 --- mkinitrd-6_3_5/livecd/linuxrc.sh (Revision 1225)
4 +++ mkinitrd-6_3_5/livecd/linuxrc.sh (Arbeitskopie)
5 @@ -92,6 +92,7 @@
6 rootfs=*) FORCED_ROOTFS="${i#*=}";;
7 init=*) INITEXEC="${i#*=}";;
8 break) BREAK_ENABLED=yes ;;
9 + rootdelay=*) ROOTDELAY="${i#*=}";;
10 esac
11 done
12
13 @@ -124,6 +125,12 @@
14 sleep 8
15 fi
16
17 +# respect rootdelay kernel param
18 +if [ ! -z "${ROOTDELAY}" ]; then
19 + echo "-- Requested a rootdelay of ${ROOTDELAY} seconds ..."
20 + sleep ${ROOTDELAY}
21 +fi
22 +
23 # searching cdrom with cdid
24 BOOT_DEVICE=""
25 FSTYPE=""
26 @@ -182,14 +189,19 @@
27 done
28 mkdir -p initrd proc tmp sys var/tmp dev media
29
30 - # make /sysroot/dev/console & /mnt/dev/null
31 - [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1
32 - [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3
33 - # only to be safe and to have a log channel
34 - [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0
35 - # busybox needs this one
36 - [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5
37 -
38 + # use devtmpfs if supported
39 + if [ "$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)" = "devtmpfs" ]
40 + then
41 + mount -t devtmpfs dev /sysroot/dev
42 + else
43 + # make /sysroot/dev/console & /mnt/dev/null
44 + [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1
45 + [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3
46 + # only to be safe and to have a log channel
47 + [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0
48 + # busybox needs this one
49 + [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5
50 + fi
51 (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)
52
53 # ensure the right permissions
54 Index: mkinitrd-6_3_5/mkinitrd.in
55 ===================================================================
56 --- mkinitrd-6_3_5/mkinitrd.in (Revision 1225)
57 +++ mkinitrd-6_3_5/mkinitrd.in (Arbeitskopie)
58 @@ -809,6 +809,10 @@
59 fi
60 done
61
62 +# respect rootdelay kernel param
63 +add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in rootdelay=*) ROOTDELAY="${i#*=}";; esac; done'
64 +add_initrd 'if [ ! -z "${ROOTDELAY}" ]; then echo "-- Requested a rootdelay of ${ROOTDELAY} seconds ..."; sleep ${ROOTDELAY};fi'
65 +
66 # lvm support
67 if [ -n "${vg_list}" ]
68 then
69 @@ -850,13 +854,16 @@
70 # get the right initexec
71 add_initrd "INITEXEC=\"${INITEXEC}\""
72 # support init=* from cmdline
73 -add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = init=* ]]; then INITEXEC=${i/init=}; fi; done'
74 +add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in init=*) INITEXEC="${i#*=}";; esac; done'
75
76 add_initrd 'echo "-- Mounting sysroot ..."'
77 add_initrd '. /etc/rootdev'
78 add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'
79 add_initrd 'mount /sysroot || ash'
80
81 +# use devtmpfs if supported
82 +add_initrd "if [ \"\$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)\" = \"devtmpfs\" ]; then mount -t devtmpfs dev /sysroot/dev;fi"
83 +
84 # unset hotplug event-manager
85 add_initrd 'echo > /proc/sys/kernel/hotplug'
86
87 @@ -864,8 +871,8 @@
88 add_initrd 'echo 3 > /proc/sys/kernel/printk'
89
90 add_initrd 'BREAK_ENABLED=no'
91 -add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = break ]]; then BREAK_ENABLED=yes; fi; done'
92 -add_initrd 'if [[ ${BREAK_ENABLED} = yes ]]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi'
93 +add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in break) BREAK_ENABLED=yes;; esac; done'
94 +add_initrd 'if [ "${BREAK_ENABLED}" = "yes" ]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi'
95
96 add_initrd 'echo "-- Switching to real sysroot ..."'
97 add_initrd 'umount /dev'