Skip to content
kaiwan edited this page Dec 25, 2014 · 9 revisions

SEALs - "Simple Embedded Arm Linux system" Custom kernel + root filesystem for an "embedded" QEMU/ARM-32 Linux system.

How to use this project:

Steps:

  1. Familiarize yourself with the embedded Linux build environment, prerequisites (GNU toolchain), etc. (read through the "Kernel / embedded" links below).

  2. **Install all required components **before starting to use these scripts:

  • x86-to-ARM toolchain (see download links below) (remember to change the PATH env variable to point to the toolchain bin/ folder)
  • busybox middleware component
  • QEMU (particularly, qemu-system-arm)
  • mkfs.ext4
  • libncurses5-dev package

You can use your distro's package manager software to install all packages (typically apt-get / dpkg on Debian/Ubuntu/Mint or yum on Fedora).

3. The SEALs - "Simple Embedded Arm Linux system" - build scripts:

1_build_QEMU_ARM_initrd.sh : very simplistic build script. Builds only a ARM Linux kernel, simple initrd-based root filesystem: static busybox, no shared libraries.

2_build_QEMU_ARM_sdcard.sh : much enhanced version of above 1_build_QEMU_ARM.sh ARMv7 ARM Linux kernel, enhanced root filesystem: dynamic busybox, shared libraries, init & etc files/scripts, device nodes, etc. We now use an ext4 filesystem, formatted upon a non-volatile SDcard as the root filesystem! Use this script by default

3_build_QEMU_ARM_initrd.sh : in addition to what 2build does, also: Populates the root filesystem with a fully built 'valgrind' for ARMv7. This increases space usage by the initrd image by ~85 MB! Note that valgrind will only work when you use the ARM v7 cpu variant.

Resources / Links Please refer these links for detailed info; in fact, the scripts were developed using these resources extensively!

Kernel / embedded : http://balau82.wordpress.com/2012/03/31/compile-linux-kernel-3-2-for-arm-and-emulate-with-qemu/ [OLD LINK]: http://balau82.wordpress.com/2010/03/22/compiling-linux-kernel-for-qemu-arm-emulator/ Busybox: http://balau82.wordpress.com/2010/03/27/busybox-for-arm-on-qemu/

Many thanks to Balau for the knowledge and inspiration! :)

x86-to-ARM Toolchain download: http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/ Eg. link to direct download: http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.bin

-Kaiwan N Billimoria kaiwan-at-kaiwantech-dot-com http://kaiwantech.in

Clone this wiki locally