Each $TARGET includes some or all of the following links. Click on the link name to get a description.
The following $TARGET families are available:
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
|||||
SH4SH4, 32-bit | ||
|
||
|
|||||
|
|||||
Screenshot - The boot messages produced by launching this system image under qemu (using the "run-emulator.sh" script included in each system image tarball), and then typing "cat /proc/cpuinfo" inside the emulated system.
Cross Compiler - A compiler which runs on a standard PC host (x86 or x86-64 Linux system) and produces output binaries for the specified $TARGET architecture (Linux binaries linked against uClibc). To use, extract the tarball and add its "bin" subdirectory to your $PATH, and then compile with $TARGET-cc as your compiler name, such as:
mips-cc root-filesystem-mips/usr/src/thread-hello2.c -lpthread -static -o hello
The "bin" subdirectory contains a bunch of tools prefixed with the $TARGET name followed by a dash, such as "powerpc-strip". The "lib" subdirectory contains shared libraries built for the target, including uClibc as the standard C library to link binaries against and uClibc++ as the standard C++ library. The "include" subdirectory contains the header files #included by programs.
Native Compiler - A compiler which runs on the $TARGET and produces output binaries which also run on the $TARGET.
You should be able to extract this inside an existing target system, add its "bin" directory to the $PATH, and use it as you would the cross compiler. (Except its binaries have no $TARGET- prefixes.)
Root Filesystem - A root filesystem for the target, suitable for chroot-ing into, containing the smallest/simplest Linux development environment capable of rebuilding itself from source code.
This system is based on busybox and uClibc, includes a native compiler toolchain (binutils, gcc, linux headers), additional development utilities (make, bash, distcc), and miscelaneous files and directories (such as some /etc files and an sbin/init.sh boot script).
System Image - A bootable linux kernel and filesystem image configured for use with the emulator QEMU.
The filesystem image contains the same set of files as the root filesystem tarball, this time packaged into a squashfs. It also has Linux kernel configured for qemu, and shell scripts to launch qemu to run this kernel with this filesystem image.
Basically you download this tarball, extract it, cd into the directory, and "./run-emulator.sh". This gives you a shell prompt inside the emulator, ala the above screen shots. Type "exit" when done.
Static Busybox Binary - Busybox implements hundreds of standard [LINK] command line utilities in a single binary, generally smaller than one megabyte.
Busybox is a "swiss army knife" binary, which behaves differently based on the name of its executable. This means that populating a directory of symlinks to the busybox binary can provide access to all these commands without requiring multiple copies of the binary.
This binary is statically linked against uClibc, so can be run independently on a target system, in a chroot environment, or via QEMU application emulation.
Static Dropbear Binary - Dropbear is a combination ssh server and client (and scp, and an encryption key generator) in a single executable (another "swiss army knife" binary) that weighs in at around 100k.
This binary is statically linked against uClibc for maximum portability.
Static Strace Binary - Strace is a debugging tool that runs a child process, sniffing all the child's system calls and printing a description of them to stderr, ala:
execve("/bin/false", ["false"], [/* 34 vars */]) = 0
brk(0) = 0x14ca000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb
e69a44000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
...
And so on. If a binary is failing or hanging, strace can give you an idea of what it's doing, at least when it interacts with the rest of the system.
This binary is statically linked against uClibc for maximum portability.