Dies ist eine alte Version des Dokuments!


Toradex Colibri i.MX6 - Kernel

Fetch Linux sources:

$ cd $WD
$ git clone git://github.com/ntb-ch/linux
$ cd linux
$ git branch
* efs
$ git describe
Apalis_iMX6_LinuxImageV2.3Beta6_20150112-1-g879d496

Configure and build Linux:

$ make colibri_imx6_defconfig
$ time make
$ make UIMAGE_LOADADDR=0x10008000 uImage
$ make modules
$ make modules_install INSTALL_MOD_PATH=../modules/

For Kernel Config see https://github.com/ntb-ch/linux/tree/pathos

Preempt-RT Kernel 3.14.28

To patch the Linux Kernel for your iMX6 you can find short instructions on the Toradex-Forum.

You need to follow the following steps:

  1. Download RT Patch from Kernel.org
  2. Download Toradex-Patch from their Share
  3. Apply Toradex Patch to the RT-Patch from Kernel.org:
    patch -p1 patch-3.14.28-rt25.patch < rt-patch-trdx-V2.5b3.patch
  4. Download and Patch your Kernel with the Patches given in the Freescale recipe:
    cd ${KERNELDIR}
    
    patch -p1 < ../0001-ARM-imx6q-drop-unnecessary-semicolon.patch
    patch -p1 < ../0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch
    patch -p1 < ../0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch
    patch -p1 < ../0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch
    patch -p1 < ../0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch
    patch -p1 < ../patch-3.14.28-rt25.patch
    patch -p1 < ../0001-fix-build.patch
    patch -p1 < ../0002-fix-build-with-rt-enabled.patch
    patch -p1 < ../0003-no-split-ptlocks.patch
    patch -p1 < ../0004-imx-sdma-channel-use-raw-spinlock.patch
  5. Configure your Kernel for your real-time use case.
  6. Use for Example the default colibri_imx6_defconfig and select Fully Preemptible Kernel (RT):
    make colibri_imx6_defconfig
    
    make menuconfig
    --> Kernel Features --> Preemption Model (Fully Preemptible Kernel (RT))

Resultate Cyclic Test 3.14.28-rt25

Um die Performance des iMX6 zu messen wurde der Cyclic-Test 24h laufen gelassen. Mit dd wurde künstliche Last (100%) für die beiden Kerne erzeugt (siehe künstliche Last).

Cyclictest für 3.14.28-rt25 mit Optionen -n -Sp80 -i1000 -h1000 -q -D24h