ReBootstrap

From Funtoo Linux
Revision as of 22:49, 30 December 2011 by Landley (Talk)

Jump to: navigation, search

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:

  1. Start from an LFS build, plus necessary stuff for Portage to run.
  2. Create a package.provided file for the local LFS system so that Portage doesn't complain of unsatisfied /var/db/pkg entries.
  3. 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

  1. 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.
  2. 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:

  1. 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)
  2. If package.provided is not working, simply copy /var/db/pkg from an existing stage3 for a massive injection of fake package information.
Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff