[Aboriginal] Can Aboriginal Linux be used to create a Debian rootfs

Rob Landley rob at landley.net
Thu Oct 29 22:08:07 PDT 2015


On 10/29/2015 08:07 PM, Brendan Simon (eTRIX) wrote:
> Hi.  Just stumbled across Aboriginal Linux and it looks like an great
> project :)
> 
> I am trying to create a Debian rootfs for an embedded system that uses
> Dual ARM A9 cores (Xilinx Zynq SoC).
> 
> I'm currently trying to use multistrap (from the Emdebian project) and
> am now trying moved to brickstrap (a fork of polystrap which is a fork
> of multistrap).  Brickstrap does everything in userspace via proot and
> uses QEMU for the final configuration phase.
> 
> I was wondering if it is possible to use Aboriginal Linux to do some or
> all of this?  i.e. create a Debian rootfs from debian binary packages.
> Would it be simpler?

In theory, yes. In practice, it's a big todo item as explained here:

  http://landley.net/aboriginal/about.html#hairball

For Debian I've been vaguely looking at:

  https://wiki.debian.org/HelmutGrohne/rebootstrap

But haven't made a whole lot of progress. If I was sitting down to do it
now, I'd try bootstrapping in a musl-libc build rather than a uClibc
build but getting toybox to 1.0 is taking up my attention these days
because this:

  http://landley.net/aboriginal/about.html#selfhost

Turned into my CELF 2013 talk:

  outline: http://landley.net/talks/celf-2013.txt
  video: http://youtu.be/SGmtP5Lg_t0

Which led to:

  https://lwn.net/Articles/629362/

And now there's:


http://www.theverge.com/2015/10/29/9639950/google-combining-android-chromeos-report

So getting toybox to 1.0 is my highest priority todo item right now.
That said, I'm working on an aboriginal linux release right now and hope
to get it out this weekend. (I don't want to be _three_ kernel versions
behind, that would be embarassing.)

> multistrap uses apt and can workout all the package dependencies, create
> a rootfs.  That's why I like it.

There's two ways to create a root filesystem:

1) Download source, compile, and install it.

2) Download prebuilt binaries and install them.

Most of the distro bootstrapping I've tried doesn't cleanly separate
these, they want some prebuilt binary packages (which aren't statically
linked and depend on host libraries that aren't there).

> Is Aboriginal Linux capable of doing what I want?
> Is it ready or is it a way of supporting that kind of usage?

I've built Linux From Scratch 6.8 under it, and even automated the process:

  http://landley.net/aboriginal/control-images

(Although you might have to rebuild the control image from
http://landley.net/hg/control-images because somebody sent me a bug
report that their bootstrap was calling #!/bin/ash for something. I
thought I'd fixed it when I switched to hush and uploaded the right
binary, but maybe I missed something...)

However, LFS 6.8 packages are too old to build with musl-libc, because
they have #ifdef/#else staircases checking for specific library versions
and they #error at the end if they can't recognize which libc you're
running. I'm partway through an upgrade to LFS 7.7 but I'm kinda buried
in todo items at the moment...

Anyway, what the LFS builds shows is that the build environment is
powerful enough to build debian, but the remaining problem is "can I
build a debian chroot under gentoo or fedora". Using binary packages
(basically untarring .deb files into a common directory), sure. Actually
building them from source, the build scripts tend to have assumptions
about what's already installed (as described on the hairball page).

That said, if you actually try to do this, I'd be interested in
participating. Post partial progress here and I can try to help debug...

(Myself, I've never worked out how to set up my own debian repository so
I can populate it with packages I built myself. That's an important step
in creating a debian built with musl repo, let alone debian built with
musl for sh4...)

> Thanks, Brendan.

Rob



More information about the Aboriginal mailing list