[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