Linux Kernel 4.9.y

From IGEP - ISEE Wiki

Jump to: navigation, search

Introduction

This article is for specific 2.6.37.y Linux kernel branch series. All the steps has been tested with Ubuntu 12.04 64b and IGEP SDK Yocto Toolchain 1.2.2-3.


---- 

Para dar soporte a una nueva board basada en imx en el kernel es necesario tener un fichero de configuracion defconfig (.config) y  una dtb.

Por defecto empezaremos con un defconfig ya creado por igep para procesadores imx

imx6_igep0046_defconfig


Para que el kernel compile la dtb es necesario tener una dts con la configuración de los periféricos y los drivers que los gestionan,ademas de una anidación al dtsi del procesador correspondiente ( en este caso imx6 ya sea quad, dual, solo ...)

En el caso de igep con procesadores imx

DUAL


imx6dl-igep-base0040ra1.dts
imx6dl-igep-base0040rc2.dts
imx6dl-igep-base0040rd102.dts
 
QUAD
imx6q-igep-base0040ra1.dts
imx6q-igep-base0040rc2.dts
imx6q-igep-base0040rd102.dts
 
GENERICA
imx6qdl-igep-base0040ra.dtsi
imx6qdl-igep-base0040rb.dtsi
imx6qdl-igep-igep0046ra.dtsi
imx6qdl-igep-igep0046rc.dtsi

Las DTS están anidadas, esto quiere decir que se cogerá la dtb generada a partir de la .dts dependiendo del procesador que monte igep en este caso.

Para que el kernel compile las .dts en dtb se ha de añadir en el Makefile de arch/arm/boot/dts/

(dentro de dtb-$(CONFIG_SOC_IMX6Q) += \)


   imx6dl-igep-base0040rc2.dtb \
    imx6dl-igep-base0040rd102.dtb \
    imx6q-igep-base0040rc2.dtb \
    imx6q-igep-base0040rd102.dtb \

Setup IGEP SDK Yocto Toolchain 1.2.2-3

Install

Download - isee.biz

follow the next steps:

  • Open a terminal
  • Located your downloaded file, in my case is inside /home/jdoe/Downloads:
<span style="color: #000000;">jdoe@ubuntu ~ $ cd Downloads/</span>
  • Extract binaries in root directory with root privileges
<span style="color: #000000;">jdoe@ubuntu ~/Downloads $ sudo tar jxf igep-sdk-yocto-toolchain-*.tar.bz2 -C /</span>
  • Make sure that binaries are installed correctly.
<span style="color: #808080;"><span style="color: #000000;">jdoe@ubuntu ~/Downloads $ ls /opt/poky/
1.2  1.2.1</span> </span>

Configure

Open a terminal and type:

<span style="color: #000000;"> export PATH=/opt/poky/1.2/sysroots/i686-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi:$PATH  </span>

Compiled binaries

Binaries: latest stable kernel version IGEP OMAP3 devices is: 2.6.37-12 (20161206)

Platform Kernel source zImage binary (igep00x0_defconfig) Modules binaries (igep00x0_defconfig) zImage binary (igep00x0_wilink8_defconfig) Modules binaries (igep00x0_wilink8_defconfig) Compat Wireless source (only for igep00x0_wilink8_defconfig) Firmware binaries (only for igep00x0_wilink8_defconfig)
IGEP00x0 2.6.37-12(md5sum) zImage-2.6.37-12.bin (md5sum) modules-2.6.37-12(md5sum) zImage-2.6.37-12-wilink8.bin(md5sum) modules-2.6.37-12-wilink8(md5sum) compat-wireless-wilink8-0(md5sum) ti-connectivity-wilink8-0(md5sum)

Build kernel from sources

Download the latest stable version sources and follow next steps:

<span style="color: #808080;">wget <a class="external free" href="http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.37-12/linux-omap-2.6.37-12.tar.gz" target="_blank" rel="nofollow noreferrer noopener">http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.37-12/linux-omap-2.6.37-12.tar.gz</a>
tar xzf linux-omap-2.6.37-12.tar.gz
cd linux-omap-2.6.37-12
</span>

Also, it could download from GIT Repositories (http://git.isee.biz/) and test the last unstable version at your own risk (see "Linux mainline tree (development)" chapter in [index.php/The_Linux_kernel The Linux kernel])

Important procedures

  • Remove rootfs modules binaries from any previous Kernel
  • If you switch to another configuration, clean kernel sources with command: make mrproper
<span style="color: #000000;">Para compilar el kernel se ha de seguir los siguientes pasos:</span>

1- Descargar la rama correspondiente con git

2- Configurar el kernel con la minima configuracion que nos ofrece

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx6_igep0046_defconfi