]> spindle.queued.net Git - xodist/blobdiff - functions.sh
mkchroot: s/awesom/awesome/
[xodist] / functions.sh
index a16686767aab714ee13852018794477301f85a7e..4acc14f949a6f366af9a978b88bb28e1757d4a4d 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/sh -e
+#!/bin/bash -e
 #
 # Copyright © 2008  Andres Salomon <dilinger@queued.net>
 #
@@ -36,13 +36,17 @@ create_fstab()
        fstype="$2"
 
        if [ "${fstype}" = "jffs2" ]; then
-               r=mtd0
+               r=mtd:root
        else
-               r="LABEL=OLPCRoot"
+               r="LABEL=${IMG_LABEL}"
        fi
 
-       cat >${mntpt}/etc/fstab<<EOF
-${r} / ${fstype} defaults,noatime 1 1
+       echo "${r} / ${fstype} defaults,noatime 1 1" >${mntpt}/etc/fstab
+       if [ "${fstype}" = "jffs2" ]; then
+               echo "mtd:boot /boot jffs2 defaults,noatime 1 1" >>${mntpt}/etc/fstab
+       fi
+
+       cat >>${mntpt}/etc/fstab<<EOF
 devpts /dev/pts devpts gid=5,mode=620 0 0
 tmpfs /dev/shm tmpfs defaults,size=15% 0 0
 proc /proc proc defaults 0 0
@@ -60,42 +64,48 @@ create_ofwboot()
        fstype="$2"
 
        if [ "${fstype}" = "jffs2" ]; then
-               r=mtd0
+               r="mtd:root"
                rfs="rootfstype=jffs2"
-               dev=nand
        else
-               r=/dev/sda1
+               r="LABEL=${IMG_LABEL}"
                rfs=""
-               dev=disk
        fi
 
        cat >${mntpt}/boot/olpc.fth<<EOF
 \\ OLPC boot script
 
-" ro root=${r} ${rfs} fbcon=font:SUN12x22" to boot-file
+\\ fetch the /chosen/bootpath property
+" /chosen" find-package  if                       ( phandle )
+  " bootpath" rot  get-package-property  0=  if   ( propval\$ )
+    get-encoded-string                            ( bootpath\$ )
+    [char] \ left-parse-string  2nip              ( dn\$ )
+
+    \ store the first part of bootpath (up to the '\\') in \$DN
+    dn-buf place                                  ( )
+  then
+then
+
+" ro root=${r} ${rfs} video=lxfb fbcon=font:SUN12x22" to boot-file
 game-key-mask h# 80 and if
        \\ boot from backup kernel
-       " ${dev}:\\vmlinuz.old" to boot-device
+       " \${DN}\\vmlinuz.old" expand\$ to boot-device
+       " \${DN}\\initrd.img.old" expand\$ to ramdisk
 else
        \\ boot from regular kernel
-       " ${dev}:\\vmlinuz" to boot-device
+       " \${DN}\\vmlinuz" expand\$ to boot-device
+       " \${DN}\\initrd.img" expand\$ to ramdisk
 then
+dcon-unfreeze
 boot
 EOF
 }
 
-chroot_internal_mounts()
-{
-    root_dir="$1"
-    mount -t proc proc ${root_dir}/proc
-    mount -t devpts devpts ${root_dir}/dev/pts
-    mount -t tmpfs tmpfs ${root_dir}/var/cache/apt/cache
-}
-
-chroot_internal_umounts()
+start_logging()
 {
-    root_dir="$1"
-    umount ${root_dir}/proc
-    umount ${root_dir}/dev/pts
-    umount ${root_dir}/var/cache/apt/cache
+    logpipe="$1".pipe
+    trap "rm -f $logpipe" 0
+    mknod $logpipe p
+    tee "$1".log <$logpipe &
+    trap "kill $!; rm -f $logpipe" 0
+    exec >$logpipe 2>&1
 }