Difference between revisions of "Build uClinux for EA2478 Board"

From Klaus' wiki
Jump to: navigation, search
Line 5: Line 5:
 
==Install development tools==
 
==Install development tools==
  
As '''root''' user do this:
+
log in to your virtual server as '''root''' user and do this:
  
 
<source lang="php">
 
<source lang="php">
Line 13: Line 13:
 
$ init 6 # Reboots the server
 
$ init 6 # Reboots the server
 
</source>
 
</source>
 +
 +
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
 
Create /home/emb/eadisk
  
 
<source lang="bash">
 
<source lang="bash">
mkdir -p /home/emb/eadisk
+
$ mkdir -p /home/emb/eadisk
 
</source>
 
</source>
 +
 +
== Get the EA realese ==
  
 
Copy the '''extra''' directory on the EA DVD to /home/emb/eadisk or by using  
 
Copy the '''extra''' directory on the EA DVD to /home/emb/eadisk or by using  
  
 
<source lang="bash">
 
<source lang="bash">
cd /home/emb/eadisk
+
$ cd /home/emb/eadisk
scp -r <your login>@bren.hih.au.dk:/home/emb/extra/ .
+
$ scp -r <your login>@bren.hih.au.dk:/home/emb/extra/ .
 
</source>
 
</source>
 +
 +
== Prepare settings==
  
 
Create the file /home/emb/uClinux-dist/settings.sh and put in the following:
 
Create the file /home/emb/uClinux-dist/settings.sh and put in the following:
Line 82: Line 92:
 
</source>
 
</source>
  
Now in /home/emb execute these commands (where you in the menuconfigs vendor section select Embedded Artists and the board purchased) :
+
== Prepare the distribution==
 +
 
 +
Now in /home/emb execute these commands:
  
 
<source lang="bash">
 
<source lang="bash">
ln -s eadisk/extra/* .
+
$ ln -s eadisk/extra/* .
tar zxvf uClinux-dist-20070130.tar.gz
+
$ tar zxvf uClinux-dist-20070130.tar.gz
  
cd uClinux-dist
+
$ cd uClinux-dist
rm -rf linux-2.*
+
$ rm -rf linux-2.*
  
tar zxvf ../linux-2.6.21.tar.gz
+
$ tar zxvf ../linux-2.6.21.tar.gz
mv linux-2.6.21/ linux-2.6.x
+
$ mv linux-2.6.21/ linux-2.6.x
  
gunzip -c ../ea-uClinux-081020.diff.gz | patch -p1   
+
$ gunzip -c ../ea-uClinux-081020.diff.gz | patch -p1   
gunzip -c ../ea-v3_1_incr1.diff.gz | patch -p1
+
$ gunzip -c ../ea-v3_1_incr1.diff.gz | patch -p1
 
</source>
 
</source>
  
Edit the arm-elf-tools-20040427.sh file changing line 39 to look '''exactly''' like this:
+
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 -
 
  tail '''-n''' +${SKIP} ${SCRIPT} | gunzip | tar xvf -
Line 104: Line 116:
 
Execute this command:
 
Execute this command:
 
<source lang="bash">
 
<source lang="bash">
sh arm-elf-tools-20040427.sh
+
$ sh arm-elf-tools-20040427.sh
 
</source>
 
</source>
 
Ignore any "burps" from gunzip at the end of the file.
 
Ignore any "burps" from gunzip at the end of the file.
Line 111: Line 123:
  
 
<source lang="bash">
 
<source lang="bash">
cp /home/emb/eadisk/extra/mk*fs* bin/
+
$ cp /home/emb/eadisk/extra/mk*fs* bin/
chmod a+x bin/mkcramfs  
+
$ chmod a+x bin/mkcramfs  
 
</source>
 
</source>
  
Now install the arm linux tools
+
== Install the arm linux tools==
 +
 
 
<source lang="bash">
 
<source lang="bash">
source settings.sh
+
$ source settings.sh
  
tar zxvf ../arm-linux-tools-20061213.tar.gz
+
$ tar zxvf ../arm-linux-tools-20061213.tar.gz
 
</source>
 
</source>
  
 +
== Install u-boot ==
 
'''Important!''' [[Install Uboot]] before continuing.
 
'''Important!''' [[Install Uboot]] before continuing.
 +
 +
==Finish the kernel configuration==
  
 
After the u-boot has been successfully installed and compiled finish up the kernel configuration:
 
After the u-boot has been successfully installed and compiled finish up the kernel configuration:
 
<source lang="bash">
 
<source lang="bash">
cp ../u-boot-1.1.6/tools/mkimage bin/
+
$ cp ../u-boot-1.1.6/tools/mkimage bin/
chmod a+x bin/mkimage
+
$ chmod a+x bin/mkimage
  
make menuconfig # Select proper vendor and board -  
+
$ make menuconfig # Select proper vendor and board -  
                #exit twice to save the new settings  
+
                  # exit twice to save the new settings  
 
                 #after selection of the proper hardware
 
                 #after selection of the proper hardware
make
+
$ make # Be patient - take a mug of coffee or the like
 
</source>
 
</source>
  
 
If no errors, you are up running!
 
If no errors, you are up running!
 +
 +
What you may need now is to setup a TFTP server.

Revision as of 07:38, 29 September 2010

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

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
#
 
script_name='settings.sh'
 
#
# Make sure our current working directory represents
# a valid uCLinux environment.
#
if [ ! -f $script_name ]; then
 
  echo
  echo Please change to the root directory of your uCLinux
  echo environment and type \'source ./$script_name\'.
  echo
 
else
 
  UCLINUX=`pwd`
  export UCLINUX
  export UCLINUX_VER=0.40-final
 
  # Figure out host system architecture
  # for now, only linux-i386 supported
  HOSTARCH=linux-i386
 
  #
  # Add required binary tools to the user's search path
  #
  PATH=$UCLINUX/bin:$PATH
  PATH=$UCLINUX/usr/local/bin:$PATH
  PATH=/home/emb/uClinux-dist/usr/local/bin/:$PATH
  PATH=/usr/local/lib/gcc-lib/arm-elf/2.95.3:$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" ":"`
 
  PATH=${PATH}:/home/emb/uClinux-dist/usr/local/bin/
 
  export PATH
 
  echo uCLinux environment set to \'$UCLINUX\'
 
fi

Prepare the distribution

Now in /home/emb execute these commands:

$ 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

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:

$ 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:

$ 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
$ make # Be patient - take a mug of coffee or the like

If no errors, you are up running!

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