[Aboriginal] Funtoo

Rob Landley rob at landley.net
Wed Sep 7 19:20:10 PDT 2011


Since I can't find the funtoo mailing list (just web forums), here's my first
guess at what I need to add to their wiki so drobbins can use it:

Aboriginal Linux bootstraps new targets by creating the smallest, simplest
native development environment capable of rebuilding itself from source code.
This new system can then boot either on real hardware or under the emulator
QEMU, to build and install additional packages natively on the target.

Quick start:

  Run "./build.sh" without any arguments to see the list of available targets,
  then run it again with a target name as its argument.  When it finishes, the
  "build" directory will contain the results, packaged up into a series of
  tarballs.  The ultimate result is the system-image tarball.  For example:

    ./build.sh armv5l
    cd build/system-image-armv5l
    ./run-emulator.sh
    cat /proc/cpuinfo
    exit

  (Note that run-emulator.sh assumes the full version of QEMU is installed.)

  If you don't want to build system images from source, you may download them
  from http://landley.net/aboriginal/downloads/binaries

Using system images as a development environment under QEMU:

  The run-emulator.sh script boots QEMU in a minimal configuration, providing
  the kernel and (read-only) root filesystem with a serial console (connected
  to qemu's stdin/stdout), a virtual network connection (masqueraded), and
  the default amount of memory allocated by QEMU (often 128 megs).  The init
  script (sbin/init.sh) will run dhcp and set up /proc and /sys, and mount
  tmpfs instances on /tmp and /home to provide writeable space.

  The dev-environment.sh script is a wrapper around run-emulator.sh which
  boots QEMU as a development environment.  It adds a second disk image
  (ext3 formatted, 2 gigabytes large, mounted on /home) to provide persistent
  writeable space, and allocates 256 megs of memory.  In addition, if
  distccd and the appropriate cross compiler are in the $PATH, it configures
  distcc to call out to the cross compiler on the host, moving the heavy
  lifting of compilation outside of the emulator (and taking advantage of SMP)
  without reintroducing the complexity of cross compiling.

  The native-build.sh script is a wrapper around dev-environment.sh which
  drives an automated build.  It takes a filesystem image as its argument,
  which is provided to qemu as a third disk image, and mounted on /mnt by
  sbin/init.sh.  If /mnt/init exists, the init script will run that instead
  of launching a shell script.  This can optionally use the /sbin/setup-chroot
  script to copy the root filesystem into the writeable space under /home if
  the build needs a writeable filesystem to install packages into.  For more
  information see http://landley.net/aboriginal/control-images

Bootstrapping Funtoo:

  Funtoo is creating a new Aboriginal Linux control image
  "bootstrap-funtoo.hdc", intended to extend the Aboriginal Linux development
  environment into a usable Metro seed.  This involves natively building
  Python and installing a Portage repository.

  The metro build needs to become host-agnostic: capable of running on
  whatever type of system the current host is, using the existing native
  toolchain (at least for Stage 1).  Then getting Gentoo running on a new
  system just involves adding a new Aboriginal Linux target, and then
  running metro in the result to produce a Stage 3 tarball.



More information about the Aboriginal mailing list