This article illustrates how to generate a bootable Linux Kernel 3.11.6 image for CORE9G25

Hardware requirements:

  • an Ubuntu Linux PC (we used an Ubuntu 13.10)
  • an CORE9G25 with base board CORE9G25-CON
  • a 2 GByte (or bigger) microSD card
  • a Debug Serial Port Interface

Installing the toolchain:

Install the cross compiler and the toolchain required on your PC following this article:

Prepare the Kernel sources and build it:

Copy the CORE9G25 Linux-3.11.6.tar.bz2 from the CD to the tmp folder, then do the follow command to uncompress it:

~$ cd ~
~$ tar xvf /tmp/linux-3.11.6.tar.bz2 -C .

then move in the linux-3.11.6 folder:

~$ cd linux-3.11.6
~/linux-3.11.6$
~/linux-3.11.6$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- at91-ariag25_defconfig

A file called .config will be generated inside the Linux source root directory. All the changes you will make using make menuconfig will be saved on this file so if you want to create you own default configuration simple copy the new .config file in arch/arm/configs with a name like at91-myconfiguration.

the device tree source file (.dts) for your board is in arch/arm/boot/dts/at91-CORE9G25.dts.

then compile it to generate a device tree blob file (.dtb) by typing:

~/linux-3.11.6$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- at91-ariag25.dtb

This file will be used by the Linux Kernel at startup time to configure the initial state of your hardware.

Customize the default Linux Kernel configuration:

If you need customize the Kernel configuration by using menuconfig type:

~/linux-3.11.6$ make ARCH=arm menuconfig

Running the Kernel compilation

To compile the Linux Kernel type:

~/linux-3.11.6$ make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
...
Kernel: arch/arm/boot/zImage is ready

Copying the binary files generated in the bootable microSD

Create now from arch/arm/boot/zImage file a suitable file that the At91Bootstrap bootloader can load from microSD card by typing:

~/linux-3.11.6$ mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-3.11.6 -d arch/arm/boot/zImage image.bin
Image Name:   linux-3.11.6
Created:      Mon Oct 21 09:58:40 2013
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1709032 Bytes = 1668.98 kB = 1.63 MB
Load Address: 20008000
Entry Point:  20008000

Insert a formatted microSD and copy the bootable Linux image.bin file and the hardware description file at91-CORE9G25.dtb in the first microSD partition:

~/linux-3.11.6$ cp arch/arm/boot/dts/at91-ariag25.dtb /media/$USER/kernel/at91-ariag25.dtb
~/linux-3.11.6$ cp image.bin /media/$USER/kernel/

If you are using an Ubuntu release older than 13.10 remove $USER in the path

Compile the Kernel modules

The image generated contains the Linux Kernel and all the built-in device drivers (option [*] in menuconfig) compiled with it.

Al the drivers compiled as external modules (option [M] in menuconfig) need to be compiled and saved in the rootfs /lib directory on the second partition of the microSD. To compile them type:

~/linux-3.11.6$ make modules -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
~/linux-3.11.6$ make modules_install INSTALL_MOD_PATH=./modules ARCH=arm

Copy the kernel modules on the microSD:

~/linux-3.11.6$ sudo rsync -avc modules/lib/. /media/$USER/rootfs/lib/.

At the first access to the CORE9G25 board command line update the module dependencies by typing this command:

~# depmod -a

Use the new Kernel with EmDebian 7.1 Wheezy Grip

Follow this article:

Quick and dirty test

If you want to try the new Kernel quickly use the binary available on:

Related links

Documentation Terms of Use
The Acme Systems srl provides this Debian system development and user manual.
The origin of these doc came from the website: http://www.acmesystems.it
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Creative Commons License

关注我们: 微博

销售邮箱:market@armdevs.com
技术支持: support@armdevs.com
销售电话: +86-755-29638421


核风在线支持>
在线时间:09:00-18:00
Copyright @ 2014 to 2020 - 核风智能技术有限公司