Linux Kernel

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linux Kernel

Linux Kernel

Building Linux Kernel

Building Using LTIB

Linux kernel can be easily built using Ltib. On Ltib menu, just select:

[*] Configure the Kernel 

Ltib_kernel1.png

When you exit this menu, Ltib will show the Kernel Menuconfig as below:

Ltib_kernel2.png

This is the Kernel Menuconfig, where it's possible to configure kernel options and drivers.

After exit this menu, kernel will be built and stored at:

<Ltib directory>/rootfs/boot 


Building Outside LTIB

Downloading and installing GNU Toolchain and git

When you install LTIB, a GNU toolchain is automatically installed on /opt/freescale/usr/local/

Kernel releases newer than 2.6.34 doesn't build on Toolchain 4.1.2, only on 4.4.1 or later

Check on your host at /opt/freescale/usr/local/ the current installed Toolchain.

Next step is to install GIT on host. For Ubuntu machines, use:

sudo apt-get install git-core 

Building Kernel from Freescale git repository

Freescale provides access to their own git kernel repository and can be viewed at: Freescale Public GIT

To download the kernel source code, create a new folder and use the command:

git clone git://git.freescale.com/imx/linux-2.6-imx.git

OR

git clone http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git

After some minutes, a folder called linux-2.6-imx will be created containing the Linux kernel

Create a local git branch from a remote branch you want to use. Let's use branch origin/imx_3.0.15 as example:

cd linux-2.6-imx 
git checkout -b localbranch origin/imx_3.0.15

To check all available remote branches, use: git branch -r

Export the cross compiler, architecture and the toolchain path:

export ARCH=arm 
export CROSS_COMPILE=arm-none-linux-gnueabi-

If using Toolchain 4.1.2:

export PATH="$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/" 

OR If using Toolchain 4.4.4:

export PATH="$PATH:/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/" 

Copy the config file for the wanted platform on linux folder as example:

cp arch/arm/configs/imx6_defconfig .config 

All platform config files are located at <linux directory>/arch/arm/configs/

Call menuconfig and change configuration (if needed)

make menuconfig 

Now it's ready to be built:

make uImage

The zImage and uImage will be located at /arch/arm/boot/ folder.


Building Kernel Mainline


Mainline Kernel can be viewed on this link:

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git

To download the kernel source code, create a new folder and use the command:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

OR

git clone http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

OR

git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

After some minutes, a folder called linux will be created containing the Linux kernel

Create a local git branch from a remote branch you want to use. Let's use branch origin/linux-3.8.y as example:

cd linux
git checkout -b localbranch origin/linux-3.8.y

To check all available remote branches, use: git branch -r

Export the cross compiler, architecture and the toolchain path:

export ARCH=arm export CROSS_COMPILE=arm-none-linux-gnueabi- 

If using Toolchain 4.4.4:

export PATH="$PATH:/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/" 

Configure to the platform you want to build kernel. For i.MX family, use imx_v6_v7_defconfig:

make imx_v6_v7_defconfig

All platform config files are located at <linux directory>/arch/arm/configs/

Call menuconfig and change configuration (only if needed, this is an optional step!)

make menuconfig 

Now it's ready to be built:

make -j4 uImage LOADADDR=0x70008000

- Use -j4 option to speed up your build in case or PC has 4 cores. It's optional.

- IMPORTANT: Use the correct address for each processor. You can check the correct address value at linux/arch/arm/mach-imx/Makefile.boot.

After build the uImage, build the dtb file (device tree binary). For i.MX53 QSB use:

make imx53-qsb.dtb


The uImage will be located at: linux/arch/arm/boot/ folder and

dtb binary will be located at: linux/arch/arm/boot/dts


About Linux

For general Linux information, see About Linux

Tags (1)
No ratings
Version history
Last update:
‎09-10-2020 02:01 AM
Updated by: