Overview

IPlinux is a Debian-inspired embedded GNU/Linux distribution, consisting of two main parts: host tools, facilitating processing of packages for target system, and target packages, destined to be run on the target devices.

IPlinux is not self-hosted due to it's embedded nature. Host tools use Debian (currently Lenny) for operation. Development environment is contained in chroot, so you can create and use it with any Linux distribution on i386 or x86-64 system. It is also possible to build host tools for other architectures in case anyone is interested.

Logical view

Bootstrapping tool

iplinux-bootstrap tool is the only IPlinux tool designed to run outside of the development environment. This tool creates beforementioned development environment and installs necessary packages into it.

Host tools

IPlinux host tools are diverse due to the wide spectre of performed functions, including

  • building cross toolchains (toolchain-package),
  • building target packages (${arch}-cross-toolchain, dpkg, dpkg-dev, pbuilder, cdbs-iplinux),
  • building root filesystems (cross-shell),
  • managing the packages' repository (udak),
  • automating building the packages (ubuild).

Host tools are packaged according to the Debian guidelines. If a particular tool is a modified Debian package, the changes are kept minimal to ease synchronization with Debian.

Target packages

Target packages are compiled for every supported target architecture (and for host architectures too, to support the CrossShell trick).

Target packages do not follow Debian guidelines, but the IPlinux ones?.

Physical view

git

The IPlinux packages source code resides in git repositories. Debian-like source packages are replaced with GPG-signed tags in repositories, even for host tools.

Packages are built by the git-buildpackage tool.

APT

Built packages are added to an APT pool. There are several APT components in repository:

  • host/tools — host tools component
  • host/cross — auxiliary component, containing cross-packages. Such packages contain libraries and header files usable by the cross-toolchain to link against during cross-compilation. Cross-packages are generated by the dpkg-cross tool.
  • other components — target packages

rootfs

Target packages from an APT pool can be installed into rootfs (this includes running the installation scripts via the CrossShell trick). rootfs is usually wrapped in some device-specific container and uploaded/flashed/installed to the device.

Installed system will contain the dpkg package manager (and optionally apt), so it can be updated/upgraded if the hardware allows it.