i.MX6 Kernel
Description
This page describes how to build a linux kernel that works on all i.MX6 based SolidRun devices.
We recommend using the SolidRun fork of linux version 4.9.x. This version works with all of our boards and enables all features of the hardware, including accelerated video de- and encoding and accelerated OpenGL-ES.
However we understand that sometimes there are reasons for using the upstream version of Linux. While a lot of work has gone into upstreaming support for our boards, it is not yet a drop-in replacement. Generally speaking if your application requires video processing or rendering, mainline is not ready.
Getting a Cross-Compiler
For building the latest (>= 2018.01) versions of U-Boot a recent version of GCC is required. U-Boot specifically requires version 6 as a minimum.
Cross-Compilers can be acquired from various sources:
crosstool-ng
Linaro
your distro of choice:
# Debian (Stretch or later):
sudo apt install crossbuild-essential-armhf
export CROSS_COMPILE=arm-linux-gnueabihf-
# openSUSE (15.0 or later):
sudo zypper install cross-arm-gcc7
export CROSS_COMPILE=arm-suse-linux-gnueabi-
Build Instructions 4.9.y
To build the kernel perform the following on a Linux PC
git clone –branch solidrun-imx_4.9.x_1.0.0_ga https://github.com/SolidRun/linux-fslc.git
export CROSS_COMPILE=<External ARM toolchain prefix, e.g. arm-linux-gnueabihf→
export ARCH=arm
make imx_v7_cbi_hb_defconfig
# optionally modify the default configuration
make zImage dtbs modules
A successful build produces both a kernel image and DeviceTree Binaries:
arch/arm/zImage
arch/arm/boot/dts/*.dtb
The standard configuration should suffice general use. We only recommend making changes if custom hardware or esoteric filesystems are being used.
Build Instructions Mainline (>= 4.16)
To build the kernel perform the following on a Linux PC
git clone –branch master https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
export ARCH=arm CROSS_COMPILE=<External ARM toolchain prefix, e.g. arm-linux-gnueabihf→
make imx_v6_v7_defconfig
# optionally modify the default configuration
make zImage dtbs modules
A successful build produces both a kernel image and DeviceTree Binaries:
arch/arm/zImage
arch/arm/boot/dts/*.dtb
The standard configuration is very minimal, you will want to add additional features such as file systems, PCI device drivers and Control-Group support for systemd! For more information about systemd, refer to the corresponding wiki page of the Gentoo project.
Build Instructions 3.14.y (Legacy)
To build the kernel perform the following on a Linux PC
git clone –branch 3.14-1.0.x-mx6-sr-next https://github.com/SolidRun/linux-fslc.git
export CROSS_COMPILE=<External ARM toolchain prefix>
export ARCH=arm
make imx_v7_cbi_hb_defconfig
# optionally modify the default configuration
make zImage dtbs modules
A successful build produces both a kernel image and DeviceTree Binaries:
arch/arm/zImage
arch/arm/boot/dts/*.dtb
The standard configuration should suffice general use. We only recommend making changes if custom hardware or esoteric filesystems are being used.
Archived Versions
3.0.35
3.10.y
Booting a kernel
Please refer to i.MX6 U-Boot on our U-Boot page.
SolidRun Ltd.