<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Dual boot N810Wimax BootFromMMC</title>
	<atom:link href="http://ramblings.narrabilis.com/wp/dual-boot-n810wimax/feed/" rel="self" type="application/rss+xml" />
	<link>http://ramblings.narrabilis.com/wp/dual-boot-n810wimax/</link>
	<description>Scripts, settings, and fixes...</description>
	<lastBuildDate>Tue, 07 Sep 2010 05:43:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: ep</title>
		<link>http://ramblings.narrabilis.com/wp/dual-boot-n810wimax/comment-page-1/#comment-15468</link>
		<dc:creator>ep</dc:creator>
		<pubDate>Tue, 17 Mar 2009 15:23:17 +0000</pubDate>
		<guid isPermaLink="false">http://ramblings.narrabilis.com/wp/?p=112#comment-15468</guid>
		<description>Basically, the problem in the Wimax version is that /proc/component_version returns RX-48.  The standard n810 returns RX-44 and the n800 returns RX-34.

The regular bootmenu.sh and linuxrc scripts only respond to RX-44 and RX-34.  I had to hack them to accept RX-48.

Actually, to be honest, I manually removed a bunch of the code and just hard coded it to RX-48 and hard coded the boot devices.  I figured that an n810-wimax wouldn&#039;t magically change to another type for any reason.  Makes the code ugly and non-portable, but I guess someone else can clean it up.

Here is the diff for the bootmenu.sh


--- jffs2.bootmenu/bootmenu.sh	2008-11-17 11:42:44.000000000 -0500
+++ jffs2/bootmenu.sh	2008-11-19 16:07:38.000000000 -0500
@@ -1,3 +1,4 @@
+#!/bin/sh
 # show onscreen boot menu
 # modify default_root,root_dev,root_fstype,root_fsoptions variables
 			
@@ -21,9 +22,13 @@
 # up 103 down 108 left 105 right 106 select 28
 # esc 1 menu 62 home 63 fullscreen 64 plus 65 minus 66
 
-PRODUCT=`awk &#039;/product/ { print $2 }&#039; /proc/component_version`
 
-[ &quot;$EVNAME&quot; = &quot;&quot; ] &amp;&amp; case $PRODUCT in SU-18) EVNAME=event1 ;; RX-34) EVNAME=event2 ;; RX-44) EVNAME=event0 ;; esac
+#PRODUCT=`awk &#039;/product/ { print $2 }&#039; /proc/component_version`
+PRODUCT=&quot;RX-48&quot;
+
+#[ &quot;$EVNAME&quot; = &quot;&quot; ] &amp;&amp; case $PRODUCT in SU-18) EVNAME=event1 ;; RX-34) EVNAME=event2 ;; RX-48) EVNAME=event0 ;; esac
+
+EVNAME=event0
 #wait 1 second for keyup event
 GETKEY=&quot;evkey -u -t 1000 /dev/input/${EVNAME}&quot;
 T2S=&quot;${initfs_prefix}/usr/bin/text2screen&quot;


And here is the one for the linuxrc


--- jffs2.bootmenu/bootmenu.sh	2008-11-17 11:42:44.000000000 -0500
+++ jffs2/bootmenu.sh	2008-11-19 16:07:38.000000000 -0500
[2]ep:~/n800/n810$ diff -uN jffs2.bootmenu/linuxrc.orig jffs2/linuxrc 
--- jffs2.bootmenu/linuxrc.orig	2008-11-18 12:26:47.000000000 -0500
+++ jffs2/linuxrc	2008-11-19 16:07:10.000000000 -0500
@@ -17,8 +17,14 @@
 	. /initfs.config
 fi
 
-text2screen -c
-text2screen -s 2 -H center -y 20 -T 0 -t &quot;Press and hold MENU key for advanced boot menu&quot;
+report()
+{
+        text2screen -c
+        text2screen -s 2 -H center -y 20 -T 0 -t &quot;$*&quot;
+}
+
+report &quot;Brian was here&quot;
+sleep 3
 
 init_system()
 {
@@ -537,15 +543,14 @@
 enter_state
 enable_powersave
 
-grep RX-48 /proc/component_version &gt;/dev/null
-if [ $? -eq 0 ]; then
-	echo not loading
+#grep RX-48 /proc/component_version &gt;/dev/null
+#if [ $? -eq 0 ]; then
 #	show_pr_wimax &amp;
-fi
+#fi
+
 
 # We are in USER state now
 want_menu=0
-# conflicts with on-screen bootmenu, disabled
 #if [ $rd_mode -ne 0 ]; then
 #        echo
 #        echo &quot;Press any key for interactive startup&quot;
@@ -555,48 +560,53 @@
 #        fi
 #fi
 
-if [ $want_menu -ne 1 ]; then
-       default_root=$(cal-tool --get-root-device 2&gt; /dev/null)
-        set_default_root_params
-        #now check HW key state
-	case `grep product /proc/component_version` in *RX-34) EVNAME=event2 ;; *RX-44) EVNAME=event0 ;; *SU-18) EVNAME=event1 ;; esac
-        HWKEYSTATE=$(evkey -s /dev/input/$EVNAME)
-        # if Escape was not pressed, execute advanced menu script
-        if [ &quot;$HWKEYSTATE&quot; != &quot;1&quot; ] ; then
-                [ -f /bootmenu.sh ] &amp;&amp; . /bootmenu.sh
-        fi
-	case &quot;$default_root&quot; in
-	mmc)
-		load_mmc_modules
-		if search_root_onmmc; then
-			root_dev_name=&quot;MMC&quot;
-			root_dev_set=1
-			root_fstype=&quot;&quot;
-			root_fsoptions=&quot;&quot;
-		else
-		    	echo &quot;No mmc root found, try default&quot;
-			set_default_root_params
-		fi
-                ;;
-        usb)
-                root_dev=sda1
-                root_dev_name=&quot;USB hard drive&quot;
-                root_dev_set=1
-                root_fstype=&quot;&quot;
-                root_fsoptions=&quot;&quot;
-		;;
+
+#if [ $want_menu -ne 1 ]; then
+	default_root=$(cal-tool --get-root-device 2&gt; /dev/null)
+	set_default_root_params
+#	case `grep product /proc/component_version` in *RX-34) EVNAME=event2 ;;
+#	case `grep product /proc/component_version` in *RX-48) EVNAME=event0 ;;
+	EVNAME=event0
+	HWKEYSTATE=$(evkey -s /dev/input/$EVNAME)
+	report &quot;before calling bootmenu.sh&quot;
+	if [ &quot;$HWKEYSTATE&quot; != &quot;1&quot; ] ; then
+		[ -f /bootmenu.sh ] &amp;&amp; . /bootmenu.sh
+	fi
+	report &quot;after calling bootmenu.sh - default_root = $default_root&quot;
+#	case &quot;$default_root&quot; in
+#	mmc)
+#		load_mmc_modules
+#		if search_root_onmmc; then
+#			report &quot;search_root_onmmc succeeded&quot;
+#			root_dev_name=&quot;MMC&quot;
+#			root_dev_set=1
+#			root_fstype=&quot;&quot;
+#			root_fsoptions=&quot;&quot;
+#		else
+#			report &quot;search_root_onmmc failed&quot;
+#		    	echo &quot;No mmc root found, try default&quot;
+#			set_default_root_params
+#		fi
+#                ;;
+#        usb)
+#                root_dev=sda1
+#                root_dev_name=&quot;USB hard drive&quot;
+#                root_dev_set=1
+#                root_fstype=&quot;&quot;
+#                root_fsoptions=&quot;&quot;
+#		;;
 #        *)
 #               set_default_root_params
 #                ;;
-        esac
-#        wait_for_device
-        boot
-        #in case it fails
-        text2screen -c
-        text2screen -s 2 -H center -y 20 -T 0 -t &quot;Boot from $default_root failed, booting from flash ...&quot;
-        set_default_root_params
+#        esac
+	report &quot;${root_dev}&quot;
+	report &quot;${root_dev_name}&quot;
+	report &quot;${root_dev_set}&quot;
+	report &quot;${root_fstype}&quot;
+	report &quot;${root_fsoptions}&quot;
+        wait_for_device
         boot
-fi
+#fi
 
 root=&quot;invalid&quot;
 while [ true ]; do


I have no idea if those diffs will display correctly, but anyway, you should get an idea of what they do.

These files are found in the initfs.bootmenu.jffs2 file.  You need jffs2 filesystem to mount and change the files.  I did this under Fedora.

Hope that helps,
Brian</description>
		<content:encoded><![CDATA[<p>Basically, the problem in the Wimax version is that /proc/component_version returns RX-48.  The standard n810 returns RX-44 and the n800 returns RX-34.</p>
<p>The regular bootmenu.sh and linuxrc scripts only respond to RX-44 and RX-34.  I had to hack them to accept RX-48.</p>
<p>Actually, to be honest, I manually removed a bunch of the code and just hard coded it to RX-48 and hard coded the boot devices.  I figured that an n810-wimax wouldn&#8217;t magically change to another type for any reason.  Makes the code ugly and non-portable, but I guess someone else can clean it up.</p>
<p>Here is the diff for the bootmenu.sh</p>
<p>&#8212; jffs2.bootmenu/bootmenu.sh	2008-11-17 11:42:44.000000000 -0500<br />
+++ jffs2/bootmenu.sh	2008-11-19 16:07:38.000000000 -0500<br />
@@ -1,3 +1,4 @@<br />
+#!/bin/sh<br />
 # show onscreen boot menu<br />
 # modify default_root,root_dev,root_fstype,root_fsoptions variables</p>
<p>@@ -21,9 +22,13 @@<br />
 # up 103 down 108 left 105 right 106 select 28<br />
 # esc 1 menu 62 home 63 fullscreen 64 plus 65 minus 66</p>
<p>-PRODUCT=`awk &#8216;/product/ { print $2 }&#8217; /proc/component_version`</p>
<p>-[ "$EVNAME" = "" ] &amp;&amp; case $PRODUCT in SU-18) EVNAME=event1 ;; RX-34) EVNAME=event2 ;; RX-44) EVNAME=event0 ;; esac<br />
+#PRODUCT=`awk &#8216;/product/ { print $2 }&#8217; /proc/component_version`<br />
+PRODUCT=&#8221;RX-48&#8243;<br />
+<br />
+#[ "$EVNAME" = "" ] &amp;&amp; case $PRODUCT in SU-18) EVNAME=event1 ;; RX-34) EVNAME=event2 ;; RX-48) EVNAME=event0 ;; esac<br />
+<br />
+EVNAME=event0<br />
 #wait 1 second for keyup event<br />
 GETKEY=&#8221;evkey -u -t 1000 /dev/input/${EVNAME}&#8221;<br />
 T2S=&#8221;${initfs_prefix}/usr/bin/text2screen&#8221;</p>
<p>And here is the one for the linuxrc</p>
<p>&#8212; jffs2.bootmenu/bootmenu.sh	2008-11-17 11:42:44.000000000 -0500<br />
+++ jffs2/bootmenu.sh	2008-11-19 16:07:38.000000000 -0500<br />
[2]ep:~/n800/n810$ diff -uN jffs2.bootmenu/linuxrc.orig jffs2/linuxrc<br />
&#8212; jffs2.bootmenu/linuxrc.orig	2008-11-18 12:26:47.000000000 -0500<br />
+++ jffs2/linuxrc	2008-11-19 16:07:10.000000000 -0500<br />
@@ -17,8 +17,14 @@<br />
 	. /initfs.config<br />
 fi</p>
<p>-text2screen -c<br />
-text2screen -s 2 -H center -y 20 -T 0 -t &#8220;Press and hold MENU key for advanced boot menu&#8221;<br />
+report()<br />
+{<br />
+        text2screen -c<br />
+        text2screen -s 2 -H center -y 20 -T 0 -t &#8220;$*&#8221;<br />
+}<br />
+<br />
+report &#8220;Brian was here&#8221;<br />
+sleep 3</p>
<p> init_system()<br />
 {<br />
@@ -537,15 +543,14 @@<br />
 enter_state<br />
 enable_powersave</p>
<p>-grep RX-48 /proc/component_version &gt;/dev/null<br />
-if [ $? -eq 0 ]; then<br />
-	echo not loading<br />
+#grep RX-48 /proc/component_version &gt;/dev/null<br />
+#if [ $? -eq 0 ]; then<br />
 #	show_pr_wimax &amp;<br />
-fi<br />
+#fi<br />
+</p>
<p> # We are in USER state now<br />
 want_menu=0<br />
-# conflicts with on-screen bootmenu, disabled<br />
 #if [ $rd_mode -ne 0 ]; then<br />
 #        echo<br />
 #        echo &#8220;Press any key for interactive startup&#8221;<br />
@@ -555,48 +560,53 @@<br />
 #        fi<br />
 #fi</p>
<p>-if [ $want_menu -ne 1 ]; then<br />
-       default_root=$(cal-tool &#8211;get-root-device 2&gt; /dev/null)<br />
-        set_default_root_params<br />
-        #now check HW key state<br />
-	case `grep product /proc/component_version` in *RX-34) EVNAME=event2 ;; *RX-44) EVNAME=event0 ;; *SU-18) EVNAME=event1 ;; esac<br />
-        HWKEYSTATE=$(evkey -s /dev/input/$EVNAME)<br />
-        # if Escape was not pressed, execute advanced menu script<br />
-        if [ "$HWKEYSTATE" != "1" ] ; then<br />
-                [ -f /bootmenu.sh ] &amp;&amp; . /bootmenu.sh<br />
-        fi<br />
-	case &#8220;$default_root&#8221; in<br />
-	mmc)<br />
-		load_mmc_modules<br />
-		if search_root_onmmc; then<br />
-			root_dev_name=&#8221;MMC&#8221;<br />
-			root_dev_set=1<br />
-			root_fstype=&#8221;"<br />
-			root_fsoptions=&#8221;"<br />
-		else<br />
-		    	echo &#8220;No mmc root found, try default&#8221;<br />
-			set_default_root_params<br />
-		fi<br />
-                ;;<br />
-        usb)<br />
-                root_dev=sda1<br />
-                root_dev_name=&#8221;USB hard drive&#8221;<br />
-                root_dev_set=1<br />
-                root_fstype=&#8221;"<br />
-                root_fsoptions=&#8221;"<br />
-		;;<br />
+<br />
+#if [ $want_menu -ne 1 ]; then<br />
+	default_root=$(cal-tool &#8211;get-root-device 2&gt; /dev/null)<br />
+	set_default_root_params<br />
+#	case `grep product /proc/component_version` in *RX-34) EVNAME=event2 ;;<br />
+#	case `grep product /proc/component_version` in *RX-48) EVNAME=event0 ;;<br />
+	EVNAME=event0<br />
+	HWKEYSTATE=$(evkey -s /dev/input/$EVNAME)<br />
+	report &#8220;before calling bootmenu.sh&#8221;<br />
+	if [ "$HWKEYSTATE" != "1" ] ; then<br />
+		[ -f /bootmenu.sh ] &amp;&amp; . /bootmenu.sh<br />
+	fi<br />
+	report &#8220;after calling bootmenu.sh &#8211; default_root = $default_root&#8221;<br />
+#	case &#8220;$default_root&#8221; in<br />
+#	mmc)<br />
+#		load_mmc_modules<br />
+#		if search_root_onmmc; then<br />
+#			report &#8220;search_root_onmmc succeeded&#8221;<br />
+#			root_dev_name=&#8221;MMC&#8221;<br />
+#			root_dev_set=1<br />
+#			root_fstype=&#8221;"<br />
+#			root_fsoptions=&#8221;"<br />
+#		else<br />
+#			report &#8220;search_root_onmmc failed&#8221;<br />
+#		    	echo &#8220;No mmc root found, try default&#8221;<br />
+#			set_default_root_params<br />
+#		fi<br />
+#                ;;<br />
+#        usb)<br />
+#                root_dev=sda1<br />
+#                root_dev_name=&#8221;USB hard drive&#8221;<br />
+#                root_dev_set=1<br />
+#                root_fstype=&#8221;"<br />
+#                root_fsoptions=&#8221;"<br />
+#		;;<br />
 #        *)<br />
 #               set_default_root_params<br />
 #                ;;<br />
-        esac<br />
-#        wait_for_device<br />
-        boot<br />
-        #in case it fails<br />
-        text2screen -c<br />
-        text2screen -s 2 -H center -y 20 -T 0 -t &#8220;Boot from $default_root failed, booting from flash &#8230;&#8221;<br />
-        set_default_root_params<br />
+#        esac<br />
+	report &#8220;${root_dev}&#8221;<br />
+	report &#8220;${root_dev_name}&#8221;<br />
+	report &#8220;${root_dev_set}&#8221;<br />
+	report &#8220;${root_fstype}&#8221;<br />
+	report &#8220;${root_fsoptions}&#8221;<br />
+        wait_for_device<br />
         boot<br />
-fi<br />
+#fi</p>
<p> root=&#8221;invalid&#8221;<br />
 while [ true ]; do</p>
<p>I have no idea if those diffs will display correctly, but anyway, you should get an idea of what they do.</p>
<p>These files are found in the initfs.bootmenu.jffs2 file.  You need jffs2 filesystem to mount and change the files.  I did this under Fedora.</p>
<p>Hope that helps,<br />
Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: uphill</title>
		<link>http://ramblings.narrabilis.com/wp/dual-boot-n810wimax/comment-page-1/#comment-15466</link>
		<dc:creator>uphill</dc:creator>
		<pubDate>Tue, 17 Mar 2009 13:34:19 +0000</pubDate>
		<guid isPermaLink="false">http://ramblings.narrabilis.com/wp/?p=112#comment-15466</guid>
		<description>There were a few other changes, the direction pad uses a program in the 810.  If you compare the regular init from the 810 to the dual boot from the 800, you&#039;ll see the changes needed.  The one I posted has a lot of comments in it from Brian (the guy who actually fixed it).  You can mount it locally and play around with it to see.</description>
		<content:encoded><![CDATA[<p>There were a few other changes, the direction pad uses a program in the 810.  If you compare the regular init from the 810 to the dual boot from the 800, you&#8217;ll see the changes needed.  The one I posted has a lot of comments in it from Brian (the guy who actually fixed it).  You can mount it locally and play around with it to see.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan (Mobile) Alfons</title>
		<link>http://ramblings.narrabilis.com/wp/dual-boot-n810wimax/comment-page-1/#comment-15465</link>
		<dc:creator>Dan (Mobile) Alfons</dc:creator>
		<pubDate>Tue, 17 Mar 2009 13:27:40 +0000</pubDate>
		<guid isPermaLink="false">http://ramblings.narrabilis.com/wp/?p=112#comment-15465</guid>
		<description>is it enough to add  fb_update_mode  to /usr/bin ?</description>
		<content:encoded><![CDATA[<p>is it enough to add  fb_update_mode  to /usr/bin ?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
