In the "Reflash from CF Howto", it says that putting a line "boot" in config.txt and iLiad will boot from CF and chroot to CF.

I am trying to replace the whole X window and GTK+ to newer version. So, booting from CF is the safest way to do the experiement. Before replacing any file in root partition, I want to make sure I can boot from CF. Still not successful. Here is my steps:

1. make a ext2 partition on CF and mount it on iLiad
2. replicate root partition to cf. "cp -a" /bin /etc /sbin (and other dir) to cf under iLiad console
3. cp config.txt to cf
4. put zImage.gz, zImage.gz.md5, initrd.gz, initrd.gz.md5 in CF/images
5. reboot just as doing reflash. I got stuck in the default screen with progress bar turned from black to white cell by cell and showing no progress any further. In logfile.txt, there is only a line: "Boot from CF:".

I just removed /proc and /sys on CF and boot from CF. There was something difference. In the previous case, the screen just stopped after progress bar turned to all white. In the later case (after removed the two dirs), after progress bar turned to all white, iLiad seems to boot again automatically, but this time it boot from root partition on iLiad.

Does it mean that bootloader can go further in the previous case? In this case, bootloader found root partition on cf was ok, so bootloader transferred execution right to root partition on cf, and system just failed because incomplete root partition. In the later case, bootloader found that there was no /proc and /sys on cf, so bootloader decided to reboot without cf.

As instructed by poiuy in the above url, I made a bootable cf from app.image released by iRex. But it won't work if I use "dd" to copy root partition to cf (dd if=/dev/tffsa1 of=/dev/hda1). Besides, the size of cf will be converted to 76mb after dd. Anyway, I have a bootable cf now.

Added:
After creating a bootable cf from app.image, I copied some dirs from root partition to cf. Now I have a bootable cf with updated firmware and my own settings. It's a perfect testbed for experiement.

Added 2:
With this cf, I can manipulate iLiad root partition with my desktop. It will be much convenient.

Shell access is retained. I can run dropbear and confirm that "config.txt" resides on /. If "config.txt" does not exist in /, it means that iLiad does not boot from CF. Your newlister still works on the CF. Everything is just the same with ordinary iLiad.

Quote:

Originally Posted by hansel

[*]Is the kernel on the CF?

I don't know exactly. But I guess not. Because I only dd root partition.

I just found a strange thing. My shell access disappeared. I found it disappeared because I couldn't execute dropbear from shell script. I have to download and install again. But newlister is still running. It's a proof that shell access disappeared after installed, or there won't be newlister installed on my iLiad.

Hooray!
I have a 128MB root partition on cf now.
After created a bootable cf, use resize2fs and it will expand the filesystem from 76mb to 128mb (the size of my cf). Now I can put other shared objects in cf without removing anything.

I just found one thing:
Even when boot from CF, the system still use /mnt/settings on iLiad, not /mnt/settings on cf. That's to say, every modification made to /mnt/settings on cf won't take effect.

Added:
This problem should be fixed if I edit "/etc/fstab" and remark the line with "/mnt/settings". Then system boot from cf won't mount /dev/tffsa7 on /mnt/settings, and /mnt/settings on cf will be used.

Is it possible to have a bootable cf with 2 partitions? Say a 500MB ext2/3 for the os, and the rest vfat for books?

I had a similiar thought, too. I don't know the answer right now because I am using a 128mb cf for boot, its small size makes me never need to worry about making a second partition.
I guess the answer should depend on the bootloader. I will give it a try later, after I fixed the FBReader problem with new libs.