Difference between revisions of "ReBootstrap"

From Funtoo Linux
Jump to: navigation, search
(Add "what is aboriginal linux" hunk.)
(Fluff out new section a bit, switch = with == markup.)
Line 1: Line 1:
 
This page documents the effort to bootstrap Funtoo Linux using Aboriginal Linux.
 
This page documents the effort to bootstrap Funtoo Linux using Aboriginal Linux.
  
= What is Aboriginal Linux?
+
= What is Aboriginal Linux? =
  
Aboriginal Linux's motto is "we cross compile so you don't have to".
+
Aboriginal Linux's motto is "we cross compile so you don't have to".  It replaces cross compiling with native compiling under an emulator (generally QEMU).  Funtoo can use it to natively create stage 1/2/3 root filesystems on an arbitrary target, which greatly simplifies adding support for new architectures and regression testing existing architectures.
  
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.
+
Aboriginal Linux creates a simple native development environment for each type of target hardware, building the smallest self-contained Linux system capable of rebuilding itself entirely from source code.  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.
+
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.  You can wget, configure, make, and install additional source packages inside the emulator.
  
Its web page is at "http://landley.net/aboriginal".
+
Aboriginal Linux's web page is at "http://landley.net/aboriginal" and a long presentation about it is available at "http://landley.net/aboriginal/downloads/presentation.pdf".
  
= The plan of attack is as follows:
+
= The plan of attack is as follows: =
  
 
# Start from an LFS build, plus necessary stuff for Portage to run.
 
# Start from an LFS build, plus necessary stuff for Portage to run.

Revision as of 22:58, 30 December 2011

This page documents the effort to bootstrap Funtoo Linux using Aboriginal Linux.

Contents

What is Aboriginal Linux?

Aboriginal Linux's motto is "we cross compile so you don't have to". It replaces cross compiling with native compiling under an emulator (generally QEMU). Funtoo can use it to natively create stage 1/2/3 root filesystems on an arbitrary target, which greatly simplifies adding support for new architectures and regression testing existing architectures.

Aboriginal Linux creates a simple native development environment for each type of target hardware, building the smallest self-contained Linux system capable of rebuilding itself entirely from source code. 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. You can wget, configure, make, and install additional source packages inside the emulator.

Aboriginal Linux's web page is at "http://landley.net/aboriginal" and a long presentation about it is available at "http://landley.net/aboriginal/downloads/presentation.pdf".

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