Embedded module TQMP2020 - Linux BSP documentation
Build system
ELDK 5.2.1
Preparing the development host
- TQ Ubuntu virtual machine
Using the build system
- Compilation
- Deployment
- Bootloader
- Kernel
- Root file system
Using different boot media
- NFS
- NOR-Flash
- eMMC
- SD-Card
ELDK 4.2
Installation
The ftp download server for the iso image of the ELDK CD is: http://ftp.denx.de/pub/eldk/4.2/ppc-linux-x86/iso/ppc-2008-04-01.iso
Before running the installation you have to create a direcotry for the installation. After that you can run the install skript.
tq@ubuntu:/media/ppc-2008-04-01$ sudo mkdir /opt/eldk tq@ubuntu:/media/ppc-2008-04-01$ sudo chown tq:tq /opt/eldk tq@ubuntu:/media/ppc-2008-04-01$ ./install -d /opt/eldk @arch@
After a successful run of the install skript you need to make the ELDK rootfs able to boot. Run the two skripts with sudo
enabled.
tq@ubuntu:/media/ppc-2008-04-01$ sudo ./ELDK_MAKEDEV -d /opt/eldk/ tq@ubuntu:/media/ppc-2008-04-01$ sudo ./ELDK_FIXOWNER -d /opt/eldk/
Configuring the ELDK Cross Compiler
The configuration of the environment variables $PATH
and $CROSS_COMPILE
should be written in the file /opt/eldk/setup_eldk
.
tq@ubuntu:/opt/eldk$ echo 'PATH=$PATH:/opt/eldk/usr/bin:/opt/eldk/bin export CROSS_COMPILE="@arch@-" export ARCH=powerpc' > setup_eldk & chmod u+x setup_eldk
To use the ELDK toolchain for cross compiling you can simply source the created configuration file.
tq@ubuntu:~$ source /opt/eldk/setup_eldk
If you are using just this version of ELDK with only one architecture you can write the settings permanent in the file ~/.bashrc
. Open your favourite texteditor and and append the following line.
source /opt/eldk/setup_eldk
Alternatively you can do it with a small command:
tq@ubuntu:~$ echo 'source /opt/eldk/setup_eldk' >> ~/.bashrc
Compiling U-Boot
Download the archive with the patches and unpack it (e.g. to ~/src/BSP/UBoot/patches
). Download the basic version with git
.
user@ubuntu:~/src$ git clone http://git.denx.de/u-boot.git user@ubuntu:~/src$ cd u-boot/ user@ubuntu:~/src/u-boot$ git checkout -b P2020 v2011.03 user@ubuntu:~/src/u-boot$ stg init user@ubuntu:~/src/u-boot$ stg import -t -s ~/src/BSP/UBoot/patches/series
The environment variables ARCH
and CROSS_COMPILE
were set according to section Configuring the ELDK Cross Compiler.
The following commands have to be executed: to configure and compile with make
:
user@ubuntu:/.../src/u-boot$ make distclean user@ubuntu:/.../src/u-boot$ make TQMP2020_config user@ubuntu:/.../src/u-boot$ make all
Sources
Compiling Linux kernel
Used versions
- Ubuntu 10.04 i386 (VMware Virtual Machine)
- ELDK 4.2
Preparation
Install the git source code management system.
user@ubuntu:~$ sudo apt-get install git-core stgit uboot-mkimage
Create a directory for the Linux source code:
tq@ubuntu:~$ mkdir ~/src tq@ubuntu:~$ cd ~/src
Get source code
The current BSP (October 2011) is based on the 2.6.39 kernel of Denx software engineering. The base version of this source code you get from the Git server http://git.denx.de.
tq@ubuntu:~/src$ git clone http://git.denx.de/linux-denx.git tq@ubuntu:~/src$ cd linux-denx
Create local branch named p2020 with the source code of version DENX-v2.6.39:
tq@ubuntu:~/src/linux-denx$ git checkout -b p2020 DENX-v2.6.39
Patch sources
Unpack the archive with the patches into a local folder e.g. to ~/src/BSP/Linux/patches
.
You can find the patches on the TQ product page.
The patches are now applied to the kernel sources:
tq@ubuntu:~/src/linux-denx$ stg init tq@ubuntu:~/src/linux-denx$ stg import -t -s ~/src/BSP/Linux/patches/series
Build kernel
If the ELDK has been configured according to the instructions the cross compilation toolchain is ready to compile the kernel.
Configure and build:
tq@ubuntu:~/src/linux-denx$ make 85xx/tqmp2020_defconfig tq@ubuntu:~/src/linux-denx$ make uImage
If the following error occurs when configuring the kernel source code:
*** Can't find default configuration "arch/x86/configs/85xx/tqmp2020_defconfig"!
then the environment is not configured correctly. For more information see section Installation of the ELDK Toolchain.
Download kernel via TFTP
To load the kernel uImage
in the directory arch/powerpc/boot
, it has to be copied to the TFTP root directory. Depending on the configuration of the TFTP server it is e.g. /tftpboot
. Starting from the source directory the uImage
is copied to the /tftpboot
directory with the following command.
tq@ubuntu:~/src/linux-denx$ cp arch/powerpc/boot/uImage /tftpboot