Setting up compressed rootfs on DOC
Hi all,
I am used to running a DOC patched grub firmware on my DOC 2000 (16MB) with nftl, following the instructions of Karim's book. Since the space is running out, I am interested in using a compressed root fs.
I followed mtd-jffs-HOWTO.txt (1.16) to build a compressed root fs on DOC. That is, I copied my root fs to a ramdisk, dd'd it through gzip to a compressed gz file, dd'd it to an offset of 1MB on /dev/mtd0 and rdev'd the kernel image (967KB) about the offset and the device to be used. Then I came to a problem of how to install the kernel on the DOC.
The HOWTO says I can use any boot loader, like lilo, to install the kernel, or just place the kernel on the device and boot from it directly. I got confused here, as I am used to using a grub firmware, which hooks to int 19h as a bios extension. When it is booted, it understands the DOC and can load my kernel image from my root fs on the ext2 partition on the DOC.
But in here, how should I install my kernel image? I tried dd'ing it to the start of my DOC, like creating a boot floppy, but it doesn't seem like a boot device to the bios. Should I still install a grub firmware and a small partition for storing my kernel image, and then dd my compressed root fs after the partition? Or is there any other more clever ways?
Selwyn
A message that is not in the archive (sent off-list or not yet received): 1068916696.17894.9.camel@localhost
Dear Russ,
Thanks for your response. I thought no one was interested in my question.
Quoted 29 lines · Russ Dill
Quoted 19 lines · Selwyn Tang
Hi all,
I am used to running a DOC patched grub firmware on my DOC 2000 (16MB) with nftl, following the instructions of Karim's book. Since the space is running out, I am interested in using a compressed root fs.
I followed mtd-jffs-HOWTO.txt (1.16) to build a compressed root fs on DOC. That is, I copied my root fs to a ramdisk, dd'd it through gzip to a compressed gz file, dd'd it to an offset of 1MB on
/dev/mtd0and rdev'd the kernel image (967KB) about the offset and the device to be used. Then I came to a problem of how to install the kernel on the DOC.The HOWTO says I can use any boot loader, like lilo, to install the kernel, or just place the kernel on the device and boot from it directly. I got confused here, as I am used to using a grub firmware, which hooks to int 19h as a bios extension. When it is booted, it understands the DOC and can load my kernel image from my root fs on the ext2 partition on the DOC.
Quoted 6 lines
But in here, how should I install my kernel image? I tried dd'ing it to the start of my DOC, like creating a boot floppy, but it doesn't seem like a boot device to the bios. Should I still install a grub firmware and a small partition for storing my kernel image, and then dd my compressed root fs after the partition? Or is there any other more clever ways?
Quoted 5 lines
you can't put files on raw nand flash like you can on nor flash. You need some sort of filesystem, and grub needs to understand that file system. The only compressed filesystem I know of that grub can read, is cramfs.
Do you mean I still have to use a DOC patched Grub firmware, and dd my root fs, prepared as a cramfs image, to my DOC? I really have no idea of what I have to do exactly. Can you offer me some more details?
Selwyn
Quoted 5 lines · Selwyn Tang
Hi all,
I am used to running a DOC patched grub firmware on my DOC 2000 (16MB) with nftl, following the instructions of Karim's book. Since the space is running out, I am interested in using a compressed root fs.
There is no clever way to do this out of the box. If I needed this, I'd do it as follows:
1. Fix the new NAND/DiskOnChip driver so it does hardware ECC and correctly reads and enforces the Bad Block Table.
2. Use JFFS2 on your DiskOnChip.
3. Find/make a bootloader which can live in the DiskOnChip where Grub currently is and which groks JFFS2 so it can find and boot kernels from the file system. I'd probably use RedBoot for this, since the JFFS2 code is designed to work in eCos (on which RedBoot is based) and hence it shouldn't be hard to make JFFS2/NAND work in RedBoot.
You could skip step 3 if you put a tiny NFTL partition at the beginning of the flash to hold the kernel, and just use JFFS2 on the rest.
Signature · 1 line
dwmw2