ELDK v5.5.3 can be installed and run on any recent Linux distribution running on
x86 (i686) and x86_64 systems.

Note: In the provided default configuration,
64-bit hosts require a compatibility layer; please see the
FAQ for details.
Of course it is possible to modify the configuration and build
the ELDK with direct support for x86_64 systems.

Generic MIPS target for the MIPS32 architecture Similar to a combination of the "mips_4KC" and "mips_4KCle" targets in older versions of the ELDK (target files are in Big-Endian mode, though) Note: There is no Xenomai support available for MIPS systems.

powerpc

Generic PowerPC target with FPU support Similar to the "ppc_6xx" target in older versions of the ELDK

powerpc-softfloat

Generic PowerPC target for FPU-less systems like MPC8321 etc. Similar to the "ppc_8xx" target in older versions of the ELDK

powerpc-4xx

Generic PowerPC target with FPU support for PPC4xx processors, similar to the "ppc_4xxFP" target in older versions of the ELDK

powerpc-4xx-softfloat

Generic PowerPC target for FPU-less PPC4xx processors, similar to the "ppc_4xx" target in older versions of the ELDK

powerpc-e500v2

Generic PowerPC target for e500v2 core based processors, similar to the "ppc_85xxDP" target in older versions of the ELDK

ELDK v5.5.3 supports a number of different target configurations.
These include different sets of target tools and target libraries depending on
the primary usage mode of the target system.
At this point of time the following configurations are available:

An X11 image with simple applications such as terminal, editor, and file manager.

clutter

An image with support for the Open GL-based toolkit Clutter, which enables development of rich and animated graphical user interfaces.

sato

An image with Sato support, a mobile environment and visual style that works well with mobile devices. The image supports X11 with a Sato theme and Pimlico applications and also contains terminal, editor, and file manager.

minimal

A small image just capable of allowing a device to boot.

qte-sdk

A Qt Embedded based image that also includes development headers and libraries to form a complete standalone SDK.

basic

A foundational basic image without support for X that can be reasonably used for customization.

base

A console-only image that fully supports the target device hardware.

sato-sdk

A "sato" image that also includes development headers and libraries to form a complete standalone SDK.

sato-dev

A "sato" image suitable for development that also includes a native toolchain and libraries needed to build applications on the device itself. The image also includes testing and profiling tools as well as debug symbols.

minimal-mtdutils

A "minimal" image that also has support for the Minimal MTD Utilities, which let the user interact with the MTD subsystem in the kernel to perform operations on flash devices.

minimal-dev

A "minimal" image suitable for development work.

lsb-dev

A "lsb" image that is suitable for development work.

lsb-sdk

A "lsb" image that includes everything in meta-toolchain but also includes development headers and libraries to form a complete standalone SDK.

lsb

A "basic" image suitable for implementations that conform to Linux Standard Base (LSB).

GMAE/Sato: This configuration is based on the
GNOME Mobile & Embedded Initiative (GMAE) software stack.
It focuses on mobile devices and provides user interfaces like
Pimlico, Clutter, Sato and other GNOME Mobile technologies.

In ELDK v5.5.3 this is represented by the "gmae" cross tool
chain and the "sato*" target root file system packages.

QT Embedded: This configuration uses the Qt application framework.

In ELDK v5.5.3 this is represented by the "qte" cross tool chain
and the "qte*" target root file system packages.

In principle you can install ELDK v5.5.3 by just unpacking the provided tarballs.
There are however a few distinctive requirements that have to be kept in mind:

While ELDK v5.3 (and newer) can be installed in any directory,
for ELDK v5.2 and older, the cross tool chain packages are not
relocatable and can only be installed into their default
location, i. e. into the "/opt/eldk-5.5.3/" directory.
Note: To be able to do this, you need write permissions in the
"/opt/eldk-5.5.3/" directory. If needed, run for example the
command "sudo chmod 01777 /opt/eldk-5.5.3/".
Note 2: The installer attempts to be clever and runs "sudo"
where needed, after printing a respective warning message.

The root file system images can be installed anywhere,
but superuser (root) permissions are needed to install them
as they contain device files etc.,
and exact ownership and permissions of all files must be preserved.

At the moment, only one target configuration can be installed on
a host. This is again a consequence of the fact that the tools are not
relocatable. It is possible to install into another directory
but then you will have to make software 'think' that it is installed
into the default location, for example by using symbolic links or bind
mounts (globally visible for all users) or name spaces (may be
used on a per-process base), etc.
We intentionally leave this to the experienced user here

For the average user we recommend to use the install script which tries to hide
these complexities and to provide a simple user interface:

Select the SDK host architecture. Chose one of 'i686' or 'x86_64".
Defaults to "i686".
(at the moment only the 32 bit version of the packages is provided
on the FTP server)

-d dest_dir:

Destination defaults to "/opt/eldk-5.5.3"; you can override it
here but for ELDK v5.2 and older you will need to make
software 'think' that it is installed into the default location
(use symlink or namespaces or ...)
Please make sure to read the comments above.

-h:

Print help message.

-l:

List the SDK and RFS images that are available for the
selected target architecture.

-s sdk_images:

Select SDK image.
Chose one of 'gmae', 'qte', or '-' for none.
Defaults to "gmae".

Many low level software packages, like for example the U-Boot boot
loader or the Linux kernel, are (intentionally) implemented such
that they are mostly self-contained, i. e. they do not depend on
header files, system libraries or such of the development host or the
used tool chain - instead, they contain all needed code, header files
and libraries. This makes them largely independent from the actual
build environment.

To build these tools, only very few environment variables need to be
set correctly:
PATH:
defines in which directory the needed tools can be found
Example:

CROSS_COMPILE:
defines the common prefix of the cross development tools;
for example, the GNU C compiler is usually called by the name
"gcc", while the Power Architecture® cross compiler would
be run as "powerpc-linux-gcc". Thus the prefix would be
="powerpc-linux-".
Example:

$ export CROSS_COMPILE=powerpc-linux-

Note that while the "environment-setup-*" script correctly sets
PATH, it does not set ARCH nor CROSS_COMPILE.
However, it sets another environment variable, which can be used to
extract the needed information (TARGET_PREFIX). An automatic way
to set all needed environment variables for low level code like
U-Boot or Linux could be:

$ source /opt/eldk-5.5.3/powerpc/environment-setup-*

Here the /powerpc/ part is the critical information which selects
which tool chain configuration to chose (and of course the
/eldk-5.5.3/ part to select the release to use).
The rest can be done automatically:

When installing the QT Embedded configuration of the development
tools, the script also provides the needed definitions to build
software for the Qt application framework (i. e. variables like
QMAKESPEC, OE_QMAKE_QT_CONFIG, OE_QMAKE_CC etc.)

To make life a bit easier, especially when you have to work with
multiple architectures and tool chain versions, the
eldk-switch
tool was created. It can be used to easily switch the build
environment, and to provide a lot of other related information.

If you want to use ELDK release 5.5 to develop software for an ARMv7a
system, you just have to type:

$ eldk-switch -r 5.5 armv7a-hf
Setup for armv7a-hf (using ELDK 5.5)

Sometimes it is not necessary or not wanted to set all the variables
defined in the "environment-setup-*" script script, which is what
"eldk-switch" will do by default. You can use the "-m" option
to acchieve a minimally intrusive effect, i. e. to only set the
PATH, ARCH and CROSS_COMPILE environment variables.

WARNING: Be careful not to mix using "eldk-switch"
with and without the "-m" option. For example, if you use
"eldk-switch" without "-m" first to select - say - building for
Power architecture systems, and later use "eldk-switch" with "-m" to
switch to the ARM architecture, the second call will correctly define
a minimal set of settings for ARM, but it will not undo any of the
other settings made previously, so you will for example still have
envrionment variables like "CC=powerpc-linux-gcc" etc. set. This may
cause all kinds of nasty errors. So make it a habit to either always
or never use "-m"; don't mix usage.

Release 5.5.3 of our
Embedded Linux Development Kit (ELDK) is based on
Version "Yocto 1.5.3" (git release tag "yocto-1.5.3" resp. "dora-10.0.3")
of the Yocto Project.

The Yocto Project is an open-source collaboration project which is
driven by the Linux Foundation.
It targets x86, ARM, MIPS, and Power Architecture based systems.
The Poky platform builder is used for
development and building, which in turn is derived from and intimately
connected with the OpenEmbedded
project.