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:
- 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
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
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
Archived Versions
Booting a kernel
Please refer to this section on how to boot a kernel on our U-Boot page.