In the past we built 2 kernels bzImage-edison.bin
and bzImage-initramfs-edison.bin
The kernel with the built-in initramfs
was called bzImage-initramfs-edison.bin
. The initramsfs is a cpio built into the kernel containg kernel modules that are needed to boot from SDHC.
This is not longer the case.
We now use a separate cpio. The reason is that U-Boot seems not to support loading a kernel larger then 15MB.
Even though we call the file initrd (as everybody seems to be doing), it is really an initramfs.
According the Andy Shevchenko the kernel modules can not be built into the kernel:
echo 0000:00:01.3 > /sys/bus/pci/drivers/sdhci-pci/unbind
echo 0000:00:01.3 > /sys/bus/pci/drivers/sdhci-pci/bind
[1] https://communities.intel.com/message/419376#419376
Instead we chose to use the initramfs. This has the additional advantage that is has a debugshell with busybox
which will allow you to boot and investigate if your external image is not found or has problems.
We no longer do this manually, although you still can if you want to.
It is far easier to create a complete image with kernel, initrd, the kernel modules and all the rest of the rootfs by following Building and installing the rootfs to SDHC
© 2018 Ferry Toth