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
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
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()
+{
+ root_dir="$1"
+ umount ${root_dir}/proc
+ umount ${root_dir}/dev/pts
+ umount ${root_dir}/var/cache/apt/cache
+}