Marc Andre Tanner wrote:

My current build scripts can be found at:

  git://repo.or.cz/qi-bootmenu-system.git

It would be nice if someone could try it out by following the instructions
in the README and reporting back the results.

The attached patch makes a working rootfs for me, including ssh, booting into my gui (see below), and chainloading a target system image. Currently I've been using a pre-built kernel, my next step is to use the kernel integrated in the build scripts, and switch to an initrd rather than SD based rootfs.

changes:
- use a git snapshot of kexec, including your uImage support
- add /mnt and /etc/dropbear to rootfs
- remount rw so dropbear can create it's key.
- tweak packages and compilation options for my GUI.
- include my gui.

I also started a bootmenu application which scans the available partitions
for bootable images.

  git://repo.or.cz/qi-bootmenu.git
It doesn't yet include a GUI but Dave Ball started a prototype based on
evas which is basically option #2 from raster

My gui is very basic [1] - and based on Marc's qi-bootmenu application. Currently it scans partitions on the SD card, looking for /boot/uImage-GTA02.bin /boot/append-GTA02 and /boot/bootlogo.png. It displays these PNG's in a grid, and boots the target system when the image is clicked on.

Still to do:
- use our own kernel build & initrd
- gui improvements
- see if I can strip more out of the build

What are people looking for from a bootmenu GUI? My implementation needs some improvement (feedback when you press a logo, better presentation with less than 6 logos), but is designed to be very basic. I've only used evas/ecore, so don't have any of elementary's widgets, or access to edje / transition effects etc. My menu doesn't scroll or describe which partition your booting (except through the logo). Ecore/evas works very well for a simple gui like this, but a more complicated gui would make more sense in edje & elementary.

The trade off for a more complex GUI will be the image size, and likely some impact on boot speed. Currently my image takes 12 seconds from power on to the gui, though that should go down when we're using a minimal kernel and initrd - rather than rootfs. I've no idea what the difference in boot speed will be between an evas/ecore gui and an edje/elementary gui.


To try it out as a rootfs:
- grab Marc's bootmenu build system
  git://repo.or.cz/qi-bootmenu-system.git
- Apply my patch
- Follow his README to build the rootfs
- put this rootfs in the first partition of an SD card
- add an appropriate kernel to that partition as /boot/uImage-GTA02.bin
- configure your other distributions on other partitions
- add /boot/bootlogo.png to each partition.  Sample images can be found in
qi-bootmenu-system/build/packages/qi-bootmenu/samplelogos/ though any 200x180 png should work fine.


It'd be great to hear if this works for anyone!

Cheers,
Dave

[1] http://i48.tinypic.com/1zd8907.jpg

diff --git a/build.sh b/build.sh
index a30bac3..c220ea6 100755
--- a/build.sh
+++ b/build.sh
@@ -30,12 +30,13 @@ fi
 
 if [[ ! -d "$ROOT_DIR" || ! -d "$ROOT_DIR/usr" ]]
 then
-  mkdir -p "$ROOT_DIR"/{tmp,proc,sys,dev,home/root} || dienow
-  for i in bin sbin lib etc
+  mkdir -p "$ROOT_DIR"/{tmp,proc,sys,dev,mnt,home/root} || dienow
+  for i in bin sbin lib etc 
   do
     mkdir -p "$ROOT_DIR/usr/$i" || dienow
     ln -s "usr/$i" "$ROOT_DIR/$i" || dienow
   done
+  mkdir -p "$ROOT_DIR"/usr/etc/dropbear || dienow
 fi
 
 if [ $# -ne 0 ] 
@@ -53,17 +54,19 @@ build_package busybox
 build_package kexec-tools
 build_package zlib
 build_package libjpeg
+build_package libpng
 build_package tslib
 build_package freetype
 build_package eina
 build_package eet
 build_package evas
 build_package ecore
-build_package embryo
-build_package lua
-build_package edje
-build_package elementary
+#build_package embryo
+#build_package lua
+#build_package edje
+#build_package elementary
 build_package dropbear
-build_package dialog-elementary
+#build_package dialog-elementary
+build_package qi-bootmenu
 
 echo "Build complete now run ./initramfs.sh"
diff --git a/download.sh b/download.sh
index 29f4e93..371a111 100755
--- a/download.sh
+++ b/download.sh
@@ -32,8 +32,13 @@ URL=http://www.busybox.net/downloads/busybox-1.15.2.tar.bz2 \
 SHA1=2f396a4cb35db438a9b4af43df6224f343b8a7ae \
 download || dienow
 
-URL=http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-2.0.1.tar.bz2 \
-SHA1=d3711794a2161bb88c75b74b5d6b41596e505b25 \
+#URL=http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-2.0.1.tar.bz2 \
+#SHA1=d3711794a2161bb88c75b74b5d6b41596e505b25 \
+#download || dienow
+
+URL='http://git.kernel.org/?p=linux/kernel/git/horms/kexec-tools.git;a=snapshot;h=aee54c10512b494747b03121fb0b3b1e91f63645;sf=tgz' \
+SHA1= \
+RENAME="s/.*h=(.*);.*/kexec-tools-\1.tar.gz/" \
 download || dienow
 
 URL=http://www.zlib.net/zlib-1.2.3.tar.bz2 \
@@ -106,10 +111,15 @@ URL=http://ftp.gnu.org/gnu/gdb/gdb-7.0.tar.bz2 \
 SHA1=8aed621b7ddb8c82b6ff213b56c028787db90582 \
 download || dienow
 
-URL=http://repo.or.cz/w/qi-bootmenu.git/snapshot/7c88eea111d6d83a556a21f3347392c10d9ac6df.tar.gz \
+#URL=http://repo.or.cz/w/qi-bootmenu.git/snapshot/7c88eea111d6d83a556a21f3347392c10d9ac6df.tar.gz \
+#SHA1= \
+#RENAME="s/(.*)/qi-bootmenu-\1/" \
+#download || dienow
+
+URL=http://davesbox.ball-home.co.uk/qi-bootmenu-0.0.1.tar.gz \
 SHA1= \
-RENAME="s/(.*)/qi-bootmenu-\1/" \
-download || dienow
+download || dienow   
+
 
 echo === Got all source.
 
diff --git a/rootfs-overlay/etc/init.d/rcS b/rootfs-overlay/etc/init.d/rcS
index 2217b65..137446c 100755
--- a/rootfs-overlay/etc/init.d/rcS
+++ b/rootfs-overlay/etc/init.d/rcS
@@ -15,9 +15,14 @@ mdev -s
 
 [ ! -d /dev/input ] && mkdir /dev/input
 
+mount -n -o remount,noatime,rw /
+
 cd $HOME
 
-nice -n -20 dialog "HELLO WOLRD" &
+/sbin/qi-bootmenu &
+
+
+#nice -n -20 dialog "HELLO WOLRD" &
 
 sleep 5
 
diff --git a/sources/sections/evas.sh b/sources/sections/evas.sh
index ee34b18..bc7172c 100644
--- a/sources/sections/evas.sh
+++ b/sources/sections/evas.sh
@@ -31,9 +31,9 @@ LDFLAGS="$CROSS_LDFLAGS $LDFLAGS" CFLAGS="$CFLAGS_HEADERS" ./configure $CROSS_CO
 	--enable-image-loader-eet \
 	--disable-image-loader-edb \
 	--disable-image-loader-gif \
-	--disable-image-loader-png \
+	--enable-image-loader-png \
 	--disable-image-loader-pmaps \
-	--enable-image-loader-jpeg \
+	--disable-image-loader-jpeg \
 	--disable-image-loader-tiff \
 	--disable-image-loader-xpm \
 	--disable-image-loader-svg \
diff --git a/sources/sections/kexec-tools.sh b/sources/sections/kexec-tools.sh
index 725c0cc..c0ace24 100644
--- a/sources/sections/kexec-tools.sh
+++ b/sources/sections/kexec-tools.sh
@@ -1,5 +1,7 @@
 setupfor kexec-tools
 
+./bootstrap
+
 ./configure $CROSS_CONFIGURE_FLAGS --prefix=/usr \
 	--exec-prefix=/usr &&
 make &&
_______________________________________________
devel mailing list
devel@lists.openmoko.org
https://lists.openmoko.org/mailman/listinfo/devel

Reply via email to