rootfs with Buildroot

To create your own rootfs with Buildroot, clone the Buildroot Repository from Github. Make sure to checkout a release version of buildroot and not the master branch!

Then configure buildroot according to your needs. Configuration can be done typing the following command in the root folder of buildroot:

$ make menuconfig

For the Colibri iMX6 you can find a buildroot defconfig in our NTB Buildroot-Fork: https://github.com/ntb-ch/buildroot/tree/cb20

Bildroot will build a rootfs image from your config and if you want to add some specific files and users this can be done with a rootfs overlay and a user file. The current rootfsOverlay for the iMX6 running a 3.14 Preempt RT Kernel can be found on Github. In our image these files are:

  • Kernel modules for flink and FPGA Loader (/lib/modules/3.14xxx/kernel)
  • Startup Script to load the FPGA at boot-time and load the needed kernel modules for flink (/etc/init.d/S60flink)
  • FPGA config file (/lib/firmware/cb20.rbf)
  • firmware for a Edimax Wifi Stick (EW-7811) (/lib/firmware/rtlwifi)
  • flink Userspace Library (/opt/cb20/lib/libflink.so) and flink tools (lsflink in /opt/cb20/bin/)
  • symlinks for all libraries from /usr/lib to /opt/cb20/lib
  • initial-setup script: Since our rootfs is mounted read-only it will mount the filesystem read-write so that the SSH-Keys can be generated. Also the read-write mounted data partition is formatted initially (/opt/cb20/bin/initial-setup-sh)

The path to the rootfs overlay has to be entered in your Buildroot config at System configuration → Root filesystem overlay.

If you want to add additional users (except root), you can add a user table file to Buildroot. The path to this file needs to be entered in your Buildroot config at System configuration → Path to the users tables. An example for this file can be found also in the CB20 repository mentioned earlier.