overlay/sys-kernel/genkernel/files/3.4.11/genkernel-3.4.10.907-mdev_dev-1.patch
2010-10-30 05:38:21 +00:00

107 lines
3.1 KiB
Diff

Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
Date: 2010-10-30
Initial Package Version: 3.4.10.907
Origin: gentoo busybox mdev-start.sh and me
Upstream Status: unknown
Description: create a new nashack boot option to work around real root is missing some dev entries
diff -Naur genkernel-3.4.10.907.orig/defaults/initrd.scripts genkernel-3.4.10.907/defaults/initrd.scripts
--- genkernel-3.4.10.907.orig/defaults/initrd.scripts 2010-10-29 16:11:03.765695917 +0000
+++ genkernel-3.4.10.907/defaults/initrd.scripts 2010-10-29 21:14:39.022515391 +0000
@@ -284,9 +284,60 @@
/bin/ash
}
+seed_chroot_dev()
+{
+ # Seed /dev with some things that we know we need
+
+ # Create problematic directories
+ mkdir -p ${CDROOT}/dev/pts ${CDROOT}/dev/shm
+
+ # creating /dev/console and /dev/tty1 to be able to write
+ # to $CONSOLE with/without bootsplash before mdev creates it
+ [ -c ${CDROOT}/dev/console ] || mknod ${CDROOT}/dev/console c 5 1
+ [ -c ${CDROOT}/dev/tty1 ] || mknod ${CDROOT}/dev/tty1 c 4 1
+
+ # udevd will dup its stdin/stdout/stderr to /dev/null
+ # and we do not want a file which gets buffered in ram
+ [ -c ${CDROOT}/dev/null ] || mknod ${CDROOT}/dev/null c 1 3
+
+ # creating /dev/initctl to be able to switch init
+ [ -c ${CDROOT}/dev/initctl ] || mknod ${CDROOT}/dev/initctl p
+}
+
+seed_dev()
+{
+ # Seed /dev with some things that we know we need
+
+ # creating /dev/console and /dev/tty1 to be able to write
+ # to $CONSOLE with/without bootsplash before mdev creates it
+ [ -c /dev/console ] || mknod /dev/console c 5 1
+ [ -c /dev/tty1 ] || mknod /dev/tty1 c 4 1
+
+ # udevd will dup its stdin/stdout/stderr to /dev/null
+ # and we do not want a file which gets buffered in ram
+ [ -c /dev/null ] || mknod /dev/null c 1 3
+
+ # copy over any persistant things
+ if [ -d /lib/mdev/devices ] ; then
+ cp -RPp /lib/mdev/devices/* /dev 2>/dev/null
+ fi
+
+ # Not provided by sysfs but needed
+ ln -snf /proc/self/fd /dev/fd
+ ln -snf fd/0 /dev/stdin
+ ln -snf fd/1 /dev/stdout
+ ln -snf fd/2 /dev/stderr
+ [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
+
+ # Create problematic directories
+ mkdir -p /dev/pts /dev/shm
+}
+
runmdev() {
# busybox udev replacement
mdev -s
+ # add missing dev entrys for nas devices without console
+ seed_dev
}
test_success() {
@@ -1093,3 +1144,5 @@
USE_UNIONFS_NORMAL=0
fi
}
+
+
diff -Naur genkernel-3.4.10.907.orig/defaults/linuxrc genkernel-3.4.10.907/defaults/linuxrc
--- genkernel-3.4.10.907.orig/defaults/linuxrc 2010-10-29 16:11:03.762695924 +0000
+++ genkernel-3.4.10.907/defaults/linuxrc 2010-10-30 05:20:08.366956721 +0000
@@ -62,6 +62,10 @@
init_opts\=*)
INIT_OPTS=`parse_opt "${x}"`
;;
+ # remount chroot rw and create missing dev entries in real_root
+ nashack)
+ NASHACK=1
+ ;;
# Livecd options
cdroot)
CDROOT=1
@@ -731,6 +735,14 @@
verbose_kmsg
+# create the missing dev entrys for the nas boxes
+if [ "${NASHACK}" = '1' ]
+then
+ mount -o remount,rw ${CHROOT} >/dev/null 2>&1
+ seed_chroot_dev
+ mount -o remount,ro ${CHROOT} >/dev/null 2>&1
+fi
+
echo -ne "${GOOD}>>${NORMAL}${BOLD} Booting (initramfs)${NORMAL}"
if [ ! -e "${CHROOT}/dev/console" ] || [ ! -e "${CHROOT}/dev/null" ]
then