]> git.openpandora.org Git - openembedded.git/commitdiff
initramfs-module-bootldr-buster: Add initial code to workaround bogus system console...
authorPaul Sokolovsky <pmiscml@gmail.com>
Sat, 8 Mar 2008 21:16:39 +0000 (21:16 +0000)
committerPaul Sokolovsky <pmiscml@gmail.com>
Sat, 8 Mar 2008 21:16:39 +0000 (21:16 +0000)
* The main trouble is the bogus console=ttySA0 passed by bootldr
It appears that kernel doesn't have protection against only invalid
consoles being passed on the command line, which means that the
kernel is deaf and dumb when booted by bootldr.

packages/initrdscripts/files/01-bootldr-buster.sh
packages/initrdscripts/initramfs-module-bootldr-buster_1.0.bb

index 7bf312ad661600a3a366082aa97a8137c4f7e789..46d01903ed0f870c1631d691b4c51640d0da35a4 100644 (file)
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 cmdl=`cat /proc/cmdline`
+#cmdl="console=ttySA0,115200 console=ttySB0,115200"
 if expr "$cmdl" : '.*mtdparts=ipaq' > /dev/null; then
     echo "!!!!!!!!"
     echo "Detected Compaq bootldr or derivative"
@@ -9,3 +10,32 @@ if expr "$cmdl" : '.*mtdparts=ipaq' > /dev/null; then
     CMDLINE=" "
     sleep 3
 fi
+
+# The main trouble is the bogus console=ttySA0 passed by bootldr
+# It appears that kernel doesn't have protection against only invalid
+# consoles being passed on the command line, which means that the
+# kernel is deaf and dumb when booted by bootldr
+
+INVALID_CONSOLE=0
+VALID_CONSOLE=0
+
+for arg in $cmdl; do
+        optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
+        case $arg in
+            console=*)
+               if expr "$optarg" : 'ttySA[0-9]\+' > /dev/null; then
+                   INVALID_CONSOLE=1
+                elif expr "$optarg" : 'ttyS\?[0-9]\+' > /dev/null; then
+                   VALID_CONSOLE=1
+               fi
+               ;;
+        esac
+done
+
+if [ $INVALID_CONSOLE -eq 1 -a $VALID_CONSOLE -eq 0 ]; then
+    echo "!!!!!!!!"
+    echo "No valid system console is detected"
+    echo "Explicitly using /dev/tty0 for input/output"
+    echo "!!!!!!!!"
+    CONSOLE="/dev/tty0"
+fi
index bd10f1687391c18871787802390c3cb942321927..a3141f5a9f73bf65447928f47b0650307dec8f51 100644 (file)
@@ -1,5 +1,5 @@
 SRC_URI = "file://01-bootldr-buster.sh"
-PR = "r0"
+PR = "r1"
 DESCRIPTION = "An initramfs module for ignoring bogus kernel commandline from Compaq bootldr"
 RDEPENDS = "initramfs-uniboot"