Editing Advanced booting
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
- | + | =MultiBoot= | |
- | + | The process for setting up a multi-boot is very similar to [[Booting from a flash card]]. | |
+ | It's a good idea to makes sure the first partition is a fat/data partition - this keeps things simple. | ||
- | + | A sample partition layout on an 8Gb card may be: | |
+ | * 2Gb primary vfat data | ||
+ | * 2Gb primary everyday | ||
+ | * 2Gb primary debian | ||
+ | * 512Mb logical test1 (diablo) | ||
+ | * 512Mb logical test2 (chinook) | ||
+ | * 512Mb logical test3 (diablo) | ||
- | + | Be aware that the kernel/initfs only supports a limited number of partitions; this can easily be extended to 6 but no further. This requires editing /home/user/local/bin/initfs_flasher/initfs.bootmenu.jffs2 to add the dev nodes using mknod | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Be aware that the kernel initfs supports a limited number of partitions; this can be extended to 6 but no further. This requires editing /home/user/local/bin/initfs_flasher/initfs.bootmenu.jffs2 to add the dev nodes using mknod | + | |
(eg: mknod -m600 initfs/dev/mmcblk0p5 b 254 5) | (eg: mknod -m600 initfs/dev/mmcblk0p5 b 254 5) | ||
Line 24: | Line 20: | ||
To create pristine images of Diablo/Chinook, follow the instructions for [[Modifying the root image]], but once you have the rootfs.jffs2 image extracted, you can follow the mount instructions and rsync the rootfs to the tablet. | To create pristine images of Diablo/Chinook, follow the instructions for [[Modifying the root image]], but once you have the rootfs.jffs2 image extracted, you can follow the mount instructions and rsync the rootfs to the tablet. | ||
- | I used this script (which | + | I used this script (which doesn't work yet) |
- | < | + | <pre> |
#!/bin/bash | #!/bin/bash | ||
Line 36: | Line 32: | ||
mkdir -p $IMAGE_DIR | mkdir -p $IMAGE_DIR | ||
+ | cd $IMAGE_DIR | ||
# unpack fiasco | # unpack fiasco | ||
- | + | $FLASHER3 -F $F_IMAGE -u | |
# https://wiki.maemo.org/Modifying_the_root_image | # https://wiki.maemo.org/Modifying_the_root_image | ||
mknod /tmp/mtdblock0 b 31 0 | mknod /tmp/mtdblock0 b 31 0 | ||
modprobe loop | modprobe loop | ||
- | losetup /dev/loop0 | + | losetup /dev/loop0 rootfs.jffs2 |
modprobe block2mtd | modprobe block2mtd | ||
modprobe mtdblock | modprobe mtdblock | ||
- | |||
echo "/dev/loop0,128KiB" > /sys/module/block2mtd/parameters/block2mtd | echo "/dev/loop0,128KiB" > /sys/module/block2mtd/parameters/block2mtd | ||
modprobe jffs2 | modprobe jffs2 | ||
mkdir /tmp/jffs2 | mkdir /tmp/jffs2 | ||
- | + | mount -t jffs2 /tmp/mtdblock0 /tmp/jffs2 | |
- | mount -t jffs2 | + | |
# copy files | # copy files | ||
- | ssh root@nut insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko \; mkdir /tst \; mount $PART | + | ssh root@nut insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko \; mkdir /tst \; mount $PART /tst |
- | + | rsync -av /tmp/jffs2/ root@nut:/tst/ | |
- | + | ||
- | + | ||
ssh root@nut umount /tst \; rmdir /tst | ssh root@nut umount /tst \; rmdir /tst | ||
Line 68: | Line 61: | ||
rm -f /tmp/mtdblock0 | rm -f /tmp/mtdblock0 | ||
rmdir /tmp/jffs2 | rmdir /tmp/jffs2 | ||
- | |||
- | |||
- | + | </pre> | |
+ | [[Category:Users]] | ||
+ | [[Category:Wiki page of the day]] | ||
+ | |||
+ | =Boot Messages= | ||
So if you want to see the kernel boot log or dmesg type output when you boot here's how (thanks to [[User:qwerty12|qwerty12]] for the pointers) | So if you want to see the kernel boot log or dmesg type output when you boot here's how (thanks to [[User:qwerty12|qwerty12]] for the pointers) | ||
Line 80: | Line 75: | ||
Log into the tablet and remount initfs so you can edit it directly. (If this '''doesn't''' make you nervous then you should stop now!) | Log into the tablet and remount initfs so you can edit it directly. (If this '''doesn't''' make you nervous then you should stop now!) | ||
- | + | mount -o remount,rw /mnt/initfs | |
Now grab some kernel modules from here: | Now grab some kernel modules from here: | ||
- | + | http://fanoush.wz.cz/maemo/modules-2.2007.50-2-custom.tar.gz | |
and copy the 4 modules you find in | and copy the 4 modules you find in | ||
- | + | ./drivers/video/console/ | |
to | to | ||
- | + | /mnt/initfs/lib/modules/`uname -r`/ | |
I extracted them on my host and did: | I extracted them on my host and did: | ||
- | + | scp drivers/video/console/* root@nut:/mnt/initfs/lib/modules/2.6.21-omap1/ | |
- | Now, for each bootmenu where you want a bootlog, edit | + | Now, for each bootmenu where you want a bootlog, edit /mnt/initfs/bootmenu.conf and add |
- | + | softcursor bitblit font fbcon | |
- | to any | + | to any MODULE_N_MODULES= lines |
Also add a line like this (where MENU_2 will differ for you): | Also add a line like this (where MENU_2 will differ for you): | ||
- | + | MENU_2_FBMODE="auto" | |
eg: | eg: | ||
- | + | MENU_4_NAME="Diablo Test" | |
- | + | MENU_4_ID="mmc5" | |
- | + | MENU_4_DEVICE="${INT_CARD}p5" | |
- | + | MENU_4_MODULES="mbcache ext2 softcursor bitblit font fbcon" | |
- | + | MENU_4_FSTYPE="ext2" | |
- | + | MENU_4_FSOPTIONS="noatime" | |
- | + | MENU_4_FBMODE="auto" | |
- | + | [ -d "/sys/block/${INT_CARD}/${MENU_4_DEVICE}" ] || MENU_4_NAME="(${MENU_4_NAME}) N/A" | |
Finally, remount the initfs as ro and reboot. | Finally, remount the initfs as ro and reboot. | ||
- | + | mount -oremount,ro /mnt/initfs/ | |
Once your system starts, don't forget to run | Once your system starts, don't forget to run | ||
- | + | /mnt/initfs/usr/bin/fb_update_mode manual | |
or the display will run slowly. | or the display will run slowly. | ||
- | + | =Initfs Hacking= | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
Learn more about Contributing to the wiki.