Difference between revisions of "Build uClinux for EA2478 Board"

From Klaus' wiki
Jump to: navigation, search
(Finish the kernel configuration)
Line 172: Line 172:
If you modify the uBoot bootloader uo should also copy the new uboot image to the tftp server.
If you modify the uBoot bootloader you should also copy the new uboot image to the tftp server.
<source lang="bash">
<source lang="bash">

Revision as of 10:48, 27 February 2013

A mini howto

Make a xen-virtualised Centos or use the one assigned to you.

Install development tools

log in to your virtual server as root user and do this:

$ yum groupinstall "development tools"
$ yum install ncurses-devel zlib-devel libacl-devel lzo-devel uuid-devel
$ yum update # Updates the server completely
$ init 6 # Reboots the server

The server reboots and uses the newest kernel and other software packages updated.

Prepare for the Embedded Artists SW

Log in again as root

Create /home/emb/eadisk

$ mkdir -p /home/emb/eadisk
$ mkdir -p /home/emb/uClinux-dist

Get the EA realese

Copy the extra directory on the EA DVD to /home/emb/eadisk or by using

$ cd /home/emb/eadisk
$ scp -r <your login>@bren.hih.au.dk:/home/emb/extra/ .

Prepare settings

Create the file /home/emb/uClinux-dist/settings.sh and put in the following:

# Setup script for uCLinux development environment.
# Run using 'source ./settings.sh'
# Copyright (c) 2006 uCLogix
# Make sure our current working directory represents
# a valid uCLinux environment.
if [ ! -f $script_name ]; then
  echo Please change to the root directory of your uCLinux
  echo environment and type \'source ./$script_name\'.
  export UCLINUX
  export UCLINUX_VER=0.40-final
  # Figure out host system architecture
  # for now, only linux-i386 supported
  # Add required binary tools to the user's search path
  # Check for "." or ".\" in the path - it's broken
  echo $PATH | tr ":" "\n" | grep '^\./*$' > /dev/null &&
        echo "WARNING: '.' detected in PATH - fixing it." 1>&2
  PATH=`echo ${PATH} | tr ":" "\n" | grep -v '^\./*$' | tr "\n" ":"`
  export PATH
  echo uCLinux environment set to \'$UCLINUX\'

Prepare the distribution

Now in /home/emb execute these commands:

$ cd /home/emb
$ ln -s eadisk/extra/* .
$ tar zxvf uClinux-dist-20070130.tar.gz
$ cd uClinux-dist
$ rm -rf linux-2.*
$ tar zxvf ../linux-2.6.21.tar.gz
$ mv linux-2.6.21/ linux-2.6.x
$ gunzip -c ../ea-uClinux-081020.diff.gz | patch -p1  
$ gunzip -c ../ea-v3_1_incr1.diff.gz | patch -p1
$ cd ..

Edit the arm-elf-tools-20040427.sh file changing line 39 to look exactly like this (note the -n):

tail -n +${SKIP} ${SCRIPT} | gunzip | tar xvf -

Execute this command:

$ sh arm-elf-tools-20040427.sh

Ignore any "burps" from gunzip at the end of the file.

Copy the precompiled file system utilities to uClinux-dist/bin folder:

$ cd uClinux-dist
$ cp /home/emb/eadisk/extra/mk*fs* bin/
$ chmod a+x bin/mkcramfs

Install the arm linux tools

$ source settings.sh
$ tar zxvf ../arm-linux-tools-20061213.tar.gz

Install u-boot

Important! Install Uboot before continuing.

Finish the kernel configuration

After the u-boot has been successfully installed and compiled finish up the kernel configuration:

$ cd /home/emb/uClinux-dist
$ cp ../u-boot-1.1.6/tools/mkimage bin/
$ chmod a+x bin/mkimage
$ make menuconfig # Select proper vendor and board - 
                  # exit twice to save the new settings 
                  # after selection of the proper hardware
                  # it may also be necessary to un-select Microwin because of an error in the code
$ make # Be patient - take a mug of coffee or the like

If no errors, you are up running!

First time you have to load the uBoot using for instance FlashMagic on your local PC.

When the first copy of uBoot has been installed all the rest can be loaded using tftp.

What you may need now is to setup a Tftp server.

Copy the linux image to the tftp servers home directory.

$ cp images/uLinux.bin /tftpboot
$ cp images/romfs.img /tftpboot

If you modify the uBoot bootloader you should also copy the new uboot image to the tftp server.

$ cp ../u-boot-1.1.6/u-boot.bin /tftpboot

From this point you can follow the fine guide "Getting started with uCLinux" from Embedded Artist (can be found in the /home/emb/doc directory on bren). The bootloader is described from page 126.

A build help script can be found at Build script for EA distribution.