Linux Installation Instruction for the EDB7312

home
smart firmware
linux source tree
cross compilers
configure
building
root filesystem
booting
questions
contact

 
 
 

Introduction

Detailed directions on compiling a Linux/ARM kernel can be found at the ARM Linux website The directions below explain how to build a kernel that will work on the EDB7312 with SmartFirmware installed. You can find a precompiled linux kernel for the EDB7312 here.

 

Creating a Linux kernel source tree

The most current sources for Linux/ARM as of November 2, 2001 is version 2.4.13-ac4-rmk1. You will need to assemble the sources and patches necessary to create this version of the source tree. You will then need to apply a patch to add support for the EDB7312. To build the 2.4.13-ac4-rmk1 source tree you will need the following.

Unpacking the archives

	$ su
	Password:
	# cd /usr/src
	# mkdir arm
	# chown myuser.mygroup arm
	# exit
	$ cd /usr/src/arm
	... get the archives above
	$ bunzip2 <linux-2.4.13.tar.bz2 | tar xf -
	$ cd linux
	$ gunzip <../patch-2.4.13-ac4.gz | patch -t -p1 
	$ gunzip <../patch-2.4.13-ac4-rmk1.gz | patch -t -p1 
	$ gunzip <../patch-2.4.13-ac4-rmk1-codegen1.gz | patch -t -p1 
	

 

Cross-compiler tools

Assuming that you will be compiling your Linux kernel for the EDB7312 on an x86 processor based machine running Linux you will need a cross-compiler. You can download cross compiler tools from ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/cross-2.95.3.tar.bz2.

 

Configuring the Kernel

Before you configure the kernel you will need to make the following modifications to the root Makefile in the Linux source tree. Change the line for 'ARCH := ...' to 'ARCH := arm'. Change 'CROSS_COMPILE = ...' with 'CROSS_COMPILE = /usr/local/bin/arm-linux-', assuming you have installed the cross compilers in /usr/local/.
	# cp edb7312 arch/arm/def-configs
	# make edb7312_config
	# make menuconfig
	

 

Building the Kernel

You can find a pre-built kernel for the EDB7312 here. The steps below will compile a kernel from the sources that were extracted and configured in the previous steps.
	# make dep
	# make vmlinux
	

 

Creating a root filesystem

You will need a root file system that Linux can mount as the root mount point. If you opt to have Linux NFS mount its root file system you can grab a somewhat reasonable file system from the Debian project. This base filesystem has all of the peices that you should need in order to load additional modules from the Debian project once you are up and running. The base filesystem can be found at ftp://ftp.us.debian.org/debian/dists/potato/main/disks-arm/current/base2_2.tgz and is approximately 15MB compressed.

Unpacking the root filesystem

	$ su
	Password:
	# cd /nfs_exported_directory
	# tar tzf ...path.../base2_2.tgz
	

 

Booting the Kernel

For SmartFirmware to be able to boot the Linux kernel you will need to configure a TFTP server and place the linuxload, vmlinux, and possibly ramdisk.gz files in a location accessible by the TFTP server. You can find the linuxload program in the SmartFirmware clients for the EDB7312 archive. The following SmartFirmware settings are required.

SmartFirmware setup

	ok setenv physical-mappings? true
	ok setenv output-device ttya
	ok setenv input-device ttya
	ok reset
	

Booting linux

	ok boot linuxload nfs /nfs_exported_directory
	EDB7312 Linux loader (v0.2)...
	bootpath </ethernet@20000000>, bootargs <linuxload nfs /nfs_exported_directory>
	Loading vmlinux: 
	Linux image loaded
	ELF image moved into place, entrypoint=0xC0028000
	CORE: 0x0, 0x1000, 0x0
	CMDLINE: cmdline="root=/dev/nfs nfsroot=192.168.0.2:/nfs_exported_directory ip=192.168.0.3 "
	About to Launch
	Linux....
	

 

Questions about Linux on the EDB7312

If you have questions regarding running Linux on the EDB7312 with SmartFirmware please e-mail edb7312-linux@codegen.com.

 


 
CodeGen, Inc.
PO Box 3357
Oakland, CA 94609
1-510-652-0151
info@codegen.com