ReBootstrap
This page documents the effort to bootstrap Funtoo Linux using Aboriginal Linux.
= What is Aboriginal Linux?
Aboriginal Linux's motto is "we cross compile so you don't have to".
It creates a simple native development environment for each type of target hardware, building the smallest self-contained Linux system capable of rebuilding itself from source. This requires seven packages: linux, uClibc, busybox, binutils, gcc, make, and bash.
The resulting system can then boot under the emulator QEMU (or on appropriate hardware, if available) to provide a native development environment, eliminating the need for any further cross compiling.
Its web page is at "http://landley.net/aboriginal".
= The plan of attack is as follows:
- Start from an LFS build, plus necessary stuff for Portage to run.
- Create a package.provided file for the local LFS system so that Portage doesn't complain of unsatisfied /var/db/pkg entries.
- Use Portage to build a stage1 tarball to /tmp/stage1root.
At this point, Funtoo has been bootstrapped and we can extend this approach to bootstrap Funtoo on any architecture.
Prerequisites
- A smaller Portage tree to not eat up so much filesystem space. This has now been implemented. The script /root/git/funtoo-overlay/funtoo/scripts/generate-system-tree.py can be used to generate a system-only Portage tree.
- A package.provided list of a current Funtoo system. This can be found at /root/git/funtoo-overlay/funtoo/scripts/stage3-provided.txt.
Update
The approach above didn't seem to correctly provide needed dependencies. Options at this point:
- Bundle up what we have as a stage3 and see if Metro's steps are more successful at using it as a stage3 (we were trying simple emerge commands rather than the explicit metro steps for testing)
- If package.provided is not working, simply copy /var/db/pkg from an existing stage3 for a massive injection of fake package information.