# HG changeset patch # User Rob Landley # Date 1294384501 21600 # Node ID 4c0a2018502cc66c80ea020f32f23db147db72a6 # Parent c93eb8e540152cedd1fbc374507391f7c3d124c1 Clean up old references to impactlinux.com, add a FAQ explaining why that site went away, and start the long and winding process of redoing documentation.hmtl. diff -r c93eb8e54015 -r 4c0a2018502c www/FAQ.html --- a/www/FAQ.html Mon Jan 03 02:08:33 2011 -0600 +++ b/www/FAQ.html Fri Jan 07 01:15:01 2011 -0600 @@ -38,6 +38,8 @@
  • Q: ./run-emulator.sh says qemu-system-mips isn't found, but I installed qemu. Why isn't this working?

  • Q: Do you care about windows?

  • + +
  • Q: What happened to impactlinux.com?

  • @@ -87,9 +89,9 @@

    To grab the latest development version of the build scripts out of the source control system, go to the -mercurial archive. +mercurial archive. If you don't want to install mercurial, you can grab a -tarball of the current code at +tarball of the current code at any time.

    @@ -574,7 +576,16 @@ act involving ceremonial headgear and animal sacrifice just to get it to fail the same way twice.

    +

    Q: What happened to impactlinux.com?

    +

    In 2007 Mark Miller and I set up a small Linux consulting company, +but after a couple years (and the recession at the end of the second +Bush administration) we went on to other things.

    + +

    I kept the project hosted on the impactlinux.com website (which was +higher bandwidth than landley.net), but Mark shut down the website in +2010 when the corporation expired. Due to a miscommunication, this caught +me by surprise, and the mailing list archives and subscribers were lost.

    diff -r c93eb8e54015 -r 4c0a2018502c www/about.html --- a/www/about.html Mon Jan 03 02:08:33 2011 -0600 +++ b/www/about.html Fri Jan 07 01:15:01 2011 -0600 @@ -152,7 +152,7 @@ -

    Development

    +

    Development

    @@ -183,15 +183,14 @@ dependencies. Each layer can be either omitted or replaced with something else. The list of layers is in the source README.

    -

    The project maintains a development repository +

    The project maintains a development repository using the Mercurial source control system. This includes RSS feeds for -each checkin -and for new releases.

    +each checkin +and for new releases.

    Questions about Aboriginal Linux should be addressed to the project's -mailing -list, or the IRC channel #edev on irc.freenode.org. The project -maintainer's blog often includes +maintainer (rob at landley dot net), who has a +blog that often includes notes about ongoing Aboriginal Linux development.

    diff -r c93eb8e54015 -r 4c0a2018502c www/documentation.html --- a/www/documentation.html Mon Jan 03 02:08:33 2011 -0600 +++ b/www/documentation.html Fri Jan 07 01:15:01 2011 -0600 @@ -1,41 +1,44 @@ -

    Documentation for Firmware Linux

    +

    Documentation for Aboriginal Linux


    -

    What is Firmware Linux?

    +

    What is Aboriginal Linux?

    -

    Firmware Linux is a toolkit for building custom virtual machines. +

    Aboriginal Linux is a toolkit for building custom virtual machines. It lets you boot virtual PowerPC, ARM, MIPS and other exotic systems on your x86 laptop, and do development in them.

    -

    The name "Firmware Linux" reflects FWL's origins as a tool for -embedded development. It provides an easy way to get started with -that, building your own code against uClibc and testing it on various -hardware platforms. But it has other uses as well, including -cross-platform regression testing, portability auditing, and toolchain -debugging.

    +

    The name "Aboriginal Linux" describes the project's goal of bootstrapping +a new Linux for a new target, doing all the cross compiling necessary to +transition to fully native development in the new environment. This new +Linux system can then be upgraded or replaced in-situ.

    -

    This documentation uses the name "Firmware Linux" (or abbreviation -"FWL") to refer to the build system, and calls -the output of the build a "system image". The build -system is implemented as a series of bash scripts and configuration -files which compile a Linux development environment for the specified -target system and package it into a bootable binary image.

    +

    Aboriginal Linux provides an easy way to get started with embedded +development. It also lets you build your own code against uClibc and +test it on various hardware platforms, and even perform +cross-platform regression testing or portability auditing.

    + +

    This documentation uses the name "Aboriginal Linux" +to refer to the build system consisting of a series +of bash scripts and configurationo files which download and compile software. +The output of that build system is referred to as a "system image". The build system +compiles a Linux development environment for the specified +target system, and packages it into a bootable binary system image.

    The base development environment is built from seven source packages: busybox, uClibc, gcc, binutils, make, bash, and the Linux -kernel. This is the smallest environment that can rebuild itself +kernel. This is the smallest and simplest environment that can rebuild itself entirely from source code, and thus the minimum a host system must cross compile in order to create a fully independent native development environment for a target.

    @@ -46,28 +49,28 @@ commodity PC hardware. You can then build and install additional packages (zlib, bison, openssl...) within the virtual machine's native development environment, without having to do any additional cross -compiling.

    +compiling. Several build control +images are provided to automate this task, and you're welcome to +create your own from those examples.

    -

    FWL currently includes full support for arm, mips, powerpc, x86, +

    Aboriginal Linux currently includes full support for arm, mips, powerpc, x86, x86-64 targets, and several other more exotic platforms; see the screenshots page for a complete list. The goal -for the FWL 1.0 release is to support every target QEMU can emulate in -"system" mode.

    +project is to support every target QEMU can emulate in "system" mode.

    -

    Firmware Linux is licensed under GPL version 2. Its component packages are +

    Aboriginal Linux is licensed under GPL version 2. Its component packages are redistributed under their respective licenses (mostly GPL and LGPL).

    Optional extras

    Intermediate stages of the build (such as the cross compiler and the -unpackaged root filesystem directory) may also be useful to Linux developers, +the raw root filesystem directory) may also be useful to Linux developers, so tarballs of them are saved during the build.

    -

    By default the build cross-compiles some optional extra packages (toybox, -distcc, uClibc++) and preinstalls them into the target filesystem. This is +

    By default the build cross-compiles some optional extra packages (distcc +and uClibc++) and preinstalls them into the target filesystem. This is just a convenience; these packages build and install natively within the -minimal development system image just fine.)

    +minimal development system image just fine.


    Using system images

    @@ -81,14 +84,14 @@

    system-image-*.tar.bz2

    System images boot a complete linux system under an emulator. Each -system-image tarball contains an ext2 root filesystem image, a Linux kernel -configured to run under the emulator QEMU, -and scripts launch the virtual system under the emulator in various +system-image tarball contains a squashfs root filesystem image, a Linux kernel +configured to run under the emulator QEMU, +and scripts to launch the virtual system under the emulator in various configurations.

    The steps to test boot a system image under QEMU are:

      -
    • install QEMU 0.12.4 or later
    • +
    • install QEMU
    • download the appropriate prebuilt binary tarball for the target you're interested in
    • extract it: tar -xvjf system-image-$TARGET.tar.bz2
    • @@ -100,18 +103,23 @@ the emulated Linux's /dev/console hooked to stdin and stdout of the emulator process. (I.E. the shell prompt the script gives you after the boot messages scroll past is for a shell running inside the emulator. This lets you pipe -the output of other programs into the emulator, and capture the emulator's -output.)

      +the output of other programs into the emulator, capture the emulator's +output with "tee", cut and paste in the terminal window, etc.)

      Type "cat /proc/cpuinfo" to confirm you're running in the emulator, then play around and have fun. Type "exit" when done.

      -

      Inside a system image, you generally wget source code from some URL and -compile it. (For example, you can wget the FWL build, extract it, and run it -inside one of its own system images to trivially prove it can rebuild itself.) -If you run a web server on your host's loopback interface, you an access it -inside QEMU using the special address "10.0.2.2". Example build scripts -are available in the /usr/src directory.

      +

      Inside a system image, you generally wget a source code package from a URL +and compile it. (You can even wget the Aboriginal Linux build scripts and +run them inside one of the system images to trivially prove the project +can rebuild itself.)

      + +

      Inside QEMU you can access the host system's loopback interface using the +special address "10.0.2.2". The build control images use this to run +busybox's FTP server on the host's loopack address, allowing the system +image to upload its results to the host at the end of the build. You can +also run web servers and ssh servers on the host's loopback, and the system +image can connect to them.

      Extra space and speed

      @@ -478,16 +486,7 @@
    • PREFERRED_MIRROR - Tells download.sh to try to download packages from this URL first, before falling back to the normal mirror list. -For example, "PREFERRED_MIRROR=http://impactlinux.com/fwl/mirror".

    • - -
    • USE_TOYBOX - Tells the host-tools.sh and mini-native.sh to -install the toybox implementation -of commands (where available) instead of the busybox versions. This is an -alternate (simpler) implementation of many commands.

      - -

      Currently FWL always uses the toybox "patch" command, because the busybox -version can't apply patches at offsets.

      -
    • +For example, "PREFERRED_MIRROR=http://landley.net/aboriginal/mirror".

    • USE_UNSTABLE - Lists packages to build alternate "unstable" versions for.

      @@ -727,7 +726,7 @@ source package to fetch. If this source tarball cannot be fetched from this location, the download function tries to download the file from a series of fallback mirrors (stored in the variable MIRROR_LIST, set in include.sh). -The primary mirror is http://impactlinux.com/firmware/mirror +The primary mirror is http://landley.net/aboriginal/mirror which should have every source tarball used by the build.

    • The package name is the filename at the end of URL minus any version diff -r c93eb8e54015 -r 4c0a2018502c www/news.html --- a/www/news.html Mon Jan 03 02:08:33 2011 -0600 +++ b/www/news.html Fri Jan 07 01:15:01 2011 -0600 @@ -10,7 +10,7 @@

      It's a month late, but Aboriginal Linux 1.0.1 is finally out, -based on hg commit +based on hg commit 1318, using Linux 2.6.36, uClibc 0.9.31, and BusyBox 1.18.0.

      Automated native build control images

      @@ -147,7 +147,7 @@ out to do. And thus:

      Aboriginal Linux 1.0 is out, -based on hg commit +based on hg commit 1238, using Linux 2.6.35, uClibc 0.9.31, and BusyBox 1.17.2.

      Yes, it's been over five months since the last release. I didn't want to @@ -389,7 +389,7 @@


      May 2, 2010

      The name of the project is changing from Firmware Linux to Aboriginal -Linux. The new URL is "http://impactlinux.com/aboriginal".

      +Linux. The new URL is "http://landley.net/aboriginal".

      Some reasons to move away from the old name are listed here, @@ -402,7 +402,7 @@


      March 29, 2010

      Version 0.9.11 is out, -based on hg commit +based on hg commit 1020. We're closing in on a 1.0 release, but not quite there yet.

      This version upgrades to Linux 2.6.33, uClibc 0.9.30.3, and BusyBox @@ -515,7 +515,7 @@

      February 2, 2010

      Version 0.9.10 is out, -based on hg +based on hg commit 966.

      Yeah, I know 1.0 is overdue for a release, here's a resync point @@ -551,7 +551,7 @@ time and instead autodetecting the presence of libgcc_s.so vs libgcc.a and behaving appropriately. A largeish cleanup/refactoring of the compiler build (described in -commit 944) +commit 944) added a new "native-compiler.sh" script, which handles building the improved "cross-compiler" tarball that includes thread support and uClibc++ and is statically linked against uClibc on the host. @@ -579,7 +579,7 @@


      December 8, 2009

      Version 0.9.9 is out, -based on hg commit 921.

      +based on hg commit 921.

      Just a checkpoint on the way to 1.0, which is still planned for around new years, but there's been some schedule slippage already.

      @@ -649,7 +649,7 @@

      November 7, 2009

      Version 0.9.8 is out, based on hg commit 876. (If you want to see all the changes in this release, -look at commits 810 through 876.)

      +look at commits 810 through 876.)

      This release is based on -mercurial version 807 +mercurial version 807 of the build scripts, and includes Linux 2.6.30.4 and BusyBox 1.14.3. No new uClibc release is out since last time.

      @@ -1179,7 +1179,7 @@

      August 6, 2008

      Version 0.9.0 is out -(changeset 378) +(changeset 378) and can rebuild itself under itself. (The packaging step still requires User Mode Linux to create ext2 images, which only works on x86 and x86-64 hosts. The next release should replace that with something more portable.) @@ -1232,7 +1232,7 @@


      June 6, 2008

      Version 0.4.0 is out -(changeset 345), +(changeset 345), with kernel 2.6.25.4 and the "distcc trick" working out of the box.

      The distcc trick accelerates a native build by calling out to the @@ -1265,7 +1265,7 @@


      January 29, 2008

      Version 0.3.1 is out -(changeset 275), with +(changeset 275), with kernel 2.6.24. The images are now tarballs each containing the ext2, zImage, and run script files. The run scripts now run qemu-setup.sh by default so /proc, /sys, /dev