Home  >  Edison  >  Building

Building and installing the kernel

Building the kernel

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.

Historical reason to use a initrd

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.

Installing the kernel

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