[ARMedslack] Missing files in "uinitrd-kirkwood" to support root file-system on SDHC card

Conor McCarthy mr.spuratic at gmail.com
Thu Feb 18 01:39:57 UTC 2010


Hey all,
 I worked through this issue over the weekend (as fate would have it)
though I was using an armedslack-current version from December. I
don't see enough in the Changelogs to cover everything I hit, so here
are the main problems I had. Hopefully this will be useful to someone.

I'm using a sheevaplug, my aim was to leave the builtin ubuntu/flash
alone, install just an updated Das u-boot (easy, v1.1.4), and then
armedslack on a 4GB SDHC with a kernel image and initrd that can
be loaded directly from SDHC with u-boot. I have a USB disk also,
though I'm not booting from it right now.

I used uinitrd-kirkwood-2.6.31.6 uImage-kirkword-2.6.31.6, also
from December -current (files dated 2009-11-16).

- mvsdio is omitted from initrd (tftp-ed it as a workaround)
- "mdev -s" works just fine after that's added
- the busybox (1.12.1) insmod doesn't support compressed modules
  gunzip works, so this fixes it when the initrd bails:
    find . -name ".ko.gz" -exec gunzip {} \;
  (AFAICT .ko.gz support was added in busybox 1.13.4)
- the armedslack kernel modules binary package uses compressed
  modules, so you still hit this problem when you (re)build your own
  initrd image
- for a sheevaplug I suspect udev in initrd is overkill, you only need a
  handful of  modules and devices to make USB, network and
  SD/MMC available

I scripted a wrapper for mkinitrd which re-makes the initrd with
uncompressed modules, and re-writes load_kernel_modules
accordingly. When I get around to rebuilding the kernel and
modules myself, I'll probably just stick to uncompressed modules,
since it's no hit for a compressed initrd image.

The mkinitrd script will need some work to fully support
compressed modules, or support decompressing them for initrd
when the installed/live ones are compressed.

I boot with something like:
  setenv bootargs_root root=/dev/mmcblk0p2 ro
  setenv bootcmd_mmc 'mmcinit; ext2load mmc 0 0x00800000 /uinitrd-kirkwood;
ext2load mmc 0 0x00400000 /uImage-kirkwood'
  bootcmd_new=setenv bootargs $(bootargs_console) $(bootargs_root); run
bootcmd_mmc; bootm 0x400000 0x800000

mmc0:1 is a small ext3 partition, later mounted as /boot
mmc0:2 is /
uinitrd-kirkwood and uImage-kirkwood are symlinks to the relevant
initrd/kernel with version suffixes.

I hope I've explained everything clearly.

Regards,
 Conor.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.armedslack.org/pipermail/armedslack/attachments/20100218/f0148b30/attachment.htm>


More information about the ARMedslack mailing list