How to compile the kernel for Rugged Board i.MX6UL

Objective:

This guide describes a method of compile the kernel for rugged board i.MX6UL .

Materials:

Hardware:

Software:

  • Ubuntu 20.04 64-bit

Kernel Information:

  • Linux Mainline Kernel v5.15.35 (LTS kernel)

  • Tag : v5.15.35-phy3

Procedure:

The following list shows what you need in order to use a Linux-based build host to build images:

  • Build Host A build host with a minimum of 50 Gbytes of free disk space that is running a supported Linux distribution (i.e. recent releases of Fedora, openSUSE, CentOS, Debian, or Ubuntu).

  • Build Host Packages Appropriate packages installed on the build host.

The Build Host Packages:

The following list shows the required packages needed to build an image.

Ubuntu and Debian:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install git

$ sudo apt-get install minicom

$ sudo apt-get install build-essential

$ sudo apt-get install libncurses5-dev

$ sudo apt-get install lzop

$ sudo apt-get install libssl-dev

Source Downloading:

Step-1: Create a directory to download the kernel source.

$ mkdir kernel_source
cd kernel_source

Step-2: Clone linux-i.MX6UL with the proper branch.

## write your github email id and you name in below commands : 

$ git config --global user.email "you@example.com"

$ git config --global user.name "Your Name"

$ git clone git://git.phytec.de/linux-mainline

$ cd linux-mainline

$ git branch -a

$ git checkout v5.15.35-phy3

Step-3: Copy the below patch files to the kernel source directory which you got with documents.

  1. 0001-patch-for-ruggedboard.dtsi.patch

  2. 0002-patch_for_kconfig.patch

  3. 0005-patch_for_defconfig.patch

  4. 0006-patch_for_imx6ul-phytec-ruggedboard-rdk.dts.patch

  5. 0007-patch_for_makefile.patch

Step-4: Apply the patch files in the kernel source.

$ git am 0001-patch-for-ruggedboard.dtsi.patch

$ git am 0002-patch_for_kconfig.patch

$ git am 0005-patch_for_defconfig.patch

$ git am 0006-patch_for_imx6ul-phytec-ruggedboard-rdk.dts.patch

$ git am 0007-patch_for_makefile.patch

Step-5: Install the toolchain.

  • The below link,have the script for toolchain.

  • Use the commands given below to download.

$ wget https://download.phytec.de/Software/Linux/BSP-Yocto-i.MX6UL/BSP-
Yocto-Ampliphy-i.MX6UL-PD22.1.0/sdk/ampliphy/phytec-ampliphy-glibc-
x86_64-phytec-qt5demo-image-cortexa7t2hf-neon-vfpv4-toolchain-BSP-
Yocto-Ampliphy-i.MX6UL-PD22.1.0.sh

$ sudo chmod 777 phytec-ampliphy-glibc-x86_64-phytec-qt5demo-image-
cortexa7t2hf-neon-vfpv4-toolchain-BSP-Yocto-Ampliphy-i.MX6UL-
PD22.1.0.sh

$ ./phytec-ampliphy-glibc-x86_64-phytec-qt5demo-image-cortexa7t2hf-
neon-vfpv4-toolchain-BSP-Yocto-Ampliphy-i.MX6UL-PD22.1.0.sh

Step-6: Enable the toolchain.

$ . /opt/ampliphy/BSP-Yocto-Ampliphy-i.MX6UL-PD22.1.0/environment-
setup-cortexa7t2hf-neon-vfpv4-phytec-linux-gnueabi

Step-7: Configure the kernel fo rugged board i.MX6UL.

$ make distclean

$ vim arch/arm/configs/imx6_Rb_defconfig
  • Add the following lines if they are not already present in arch/arm/configs/imx6_Rb_defconfig :

CONFIG_HAVE_GCC_PLUGINS=n

CONFIG_GCC_PLUGINS=n

  • Save and exit.

$ make imx6_Rb_defconfig

Step-8: Compile the device tree.

$ make dtbs

Step-9: Compile the Kernel.

$ make zImage

Last updated