Browse Source

add failsafe support for x86-2.6 and fix mdev support for platforms using /etc/preinit

SVN-Revision: 6481
Felix Fietkau 19 years ago
parent
commit
c96e173c28

+ 0 - 1
package/base-files/Makefile

@@ -19,7 +19,6 @@ REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
 ifeq ($(REV),)
   REV:=0
 endif
-
 include $(INCLUDE_DIR)/package.mk
 
 ifneq ($(DUMP),1)

+ 2 - 1
package/base-files/files/etc/preinit

@@ -1,5 +1,6 @@
 #!/bin/sh
 # Copyright (C) 2006 OpenWrt.org
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
-mount_root
+[ -e /etc/preinit.arch ] && . /etc/preinit.arch
+mount_root ${FAILSAFE:+failsafe}
 exec /sbin/init

+ 22 - 11
package/base-files/files/sbin/mount_root

@@ -5,17 +5,28 @@
 mount none /proc -t proc
 size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
 mount none /tmp -t tmpfs -o size=$size,nosuid,nodev,mode=1777
-
-grep rootfs /proc/mtd >/dev/null 2>/dev/null && {
-	mtd unlock rootfs
-	grep rootfs_data /proc/mtd >/dev/null 2>/dev/null && {
-		. /bin/firstboot
-		echo "switching to jffs2"
-		mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2
-		fopivot /jffs /rom
-	}
-} || mount -o remount,rw /dev/root /
-
+if grep devfs /proc/filesystems > /dev/null; then
+	mount none /dev -t devfs
+else
+	mount -t sysfs none /sys
+	mount -t tmpfs tmpfs /dev -o size=512K
+	mknod /dev/console c 5 1
+	mkdir /dev/shm
+	/sbin/mdev -s
+fi
 mkdir -p /dev/pts
 mount none /dev/pts -t devpts
+
+[ failsafe != "$1" ] && {
+	grep rootfs /proc/mtd >/dev/null 2>/dev/null && {
+		mtd unlock rootfs
+		grep rootfs_data /proc/mtd >/dev/null 2>/dev/null && {
+			. /bin/firstboot
+			echo "switching to jffs2"
+			mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2
+			fopivot /jffs /rom
+		}
+	} || mount -o remount,rw /dev/root /
+}
+
 grep sysfs /proc/filesystems >/dev/null && mount -t sysfs none /sys 2>&-

+ 2 - 0
target/linux/x86-2.6/base-files/default/etc/preinit.arch

@@ -0,0 +1,2 @@
+mount -t proc none /proc
+grep 'failsafe=' /proc/cmdline && export FAILSAFE=true

+ 4 - 0
target/linux/x86-2.6/image/grub/menu.lst

@@ -9,3 +9,7 @@ root    (hd0,0)
 kernel  /boot/vmlinuz @CMDLINE@ noinitrd console=ttyS0,@BAUDRATE@n8 reboot=bios
 boot
 
+title	OpenWrt (failsafe)
+root	(hd0,0)
+kernel  /boot/vmlinuz failsafe=true @CMDLINE@ noinitrd console=ttyS0,@BAUDRATE@n8 reboot=bios
+boot