Experimental EABI Linux 2.6.17.9-ep93xx-pxa-ads3 Experimental
Note: Newer non-experimental kernels are available that support EABI. See the Linux Kernels topic to find the latest version that supports EABI.
EABI is a new application binary interface (ABI) for Linux that offers performance improvements over the old ABI. See the EABI FAQ for details.
The experimental kernels offered here are based on Linux 2.6.17.9-ep93xx-pxa-ads3 but are configured to use EABI. An EABI root file system is required to use these kernels.
If you are willing to experiment, you are welcome to try these kernels and the EABI root file system. Note that this project is under development so be prepared for some rough edges and abrupt updates. That being said, we welcome your feedback and your contributions to linux and EABI development.
This version- Supports BitsyXb, Sphere, Portal, and VGX boards.
- Uses GNU EABI, a new application binary interface (ABI) for Linux ARMŽ Ltd.
- Has the same warnings and requirements as Linux 2.6.17.9-ep93xx-pxa-ads3.
- Additionally, requires are more recent toolchain to build the kernel (see below).
This version does not- Support the old ABI so you cannot use it with our standard root file systems or with any root file system you may have created in the past.
GNU Toolchain
To build an EABI kernel, you'll need a toolchain that can build an EABI target.
Use arm-unknown-linux-gnueabi-gcc-4.1.1 [1] [MD5] or later to cross-compile the kernel on an x86 linux system. This is the toolchain we used to build the precompiled kernels provided below.
Download the toolchain from the link above, untar it in your root directory, and add it to your path.
cd /
bzcat eabi-gcc-4.1.1.tar.bz2 | tar -x
PATH=/opt/crosstool/gcc-4.1.1/bin:$PATH
The /opt/crosstool/gcc-4.1.1 path is hardcoded. Do not attempt to install it anywhere else. This is the only location that will work.
Note that this toolchain does not include glibc. It is only intended for cross-compiling linux kernels. To (re)build user programs, use the native compiler in the EABI root file system.
[1] Don't be alarmed by the 'unknown' in the toolchain name. This field can be used to identify a specific distribution (e.g. 'suse') or feature to distinguish different toolchains from each other. There isn't anything really distinctive about this toolchain and it doesn't build for a particular distribution so the default, 'unknown', is used.
Kernel source and patches
bzcat linux-2.6.17.9-ep93xx-pxa-ads3-eabi.diff.bz2 | patch -p1
Configure the kernel using the default eabi configuration settings for your board. The naming convention is
make machineeabi_defconfig
where machine is the name of your board. You can change individual configuration settings later with
make menuconfig
After executing the line below for your boardmake adsbitsyxbeabi_defconfig
make adssphereeabi_defconfig
make adsportaleabi_defconfig
make adsvgxeabi_defconfig
you can build the kernel withmake zImage
The kernel zImage will be in the arch/arm/boot/ directory.
Root File System
As stated above, you must use an EABI root file system. Non-EABI root file systems are not suitable for use with these kernels. A link to the latest EABI root file system can be found in the EABI FAQ.
Precompiled Kernel Images