[Aboriginal] Building a floppy rescue set like BG did? + "Android self-hosting" idea

Rob Landley rob at landley.net
Fri Mar 24 09:54:00 PDT 2017


On 03/24/2017 09:36 AM, Philip Rhoades wrote:
> Rob,
> On 2017-03-24 06:56, Rob Landley wrote:
>> On 03/14/2017 06:11 PM, Philip Rhoades wrote:
>>> Even if netcat works - I am still interested in building a floppy-booted
>>> AL system!
>>
>> You're not fitting the native toolchain on a floppy (the /usr/include
>> headers alone _compress_ to multiple megabytes), and if you skip the
>> native toolchain you might as well use the much simpler
>> https://github.com/landley/mkroot build.
> 
> 
> Thanks for that but see output below - although running make in the
> ./build/toybox-0.7.3 dir worked OK . .

Let's see, that would be...

> Error output:
>
> scripts/make.sh
> Generate headers from toys/*/*.c...
> Make generated/config.h from .config.
> generated/flags.h Compile
>
toybox......................................................................................................................................................../home/floppy_booted/toybox/airlock/ld:
> cannot find -lselinux
> /home/floppy_booted/toybox/airlock/ld: cannot find -lcrypto

Huh. What distro are you building this on? I'd like to try to reproduce
it here. In scripts/make.sh toybox does test builds to see which
libraries are there, and only adds the ones it can find to the link.
This implies that it's seeing different libraries at probe time than it
is at build time.

When I build here, I get:

scripts/make.sh
Generate headers from toys/*/*.c...
generated/newtoys.h Library probe.........
Make generated/config.h from .config.
generated/flags.h generated/globals.h generated/tags.h generated/help.h

Which is 3 more headers being generated at the end than yours showed.
This implies that something did a build in build/toybox-0.7.3 (filling
it with temporary files) and _then_ ran mkroot.sh?

Also, you deleted context: is this the airlock build or is it the target
build you're seeing this one? (It says "airlock" before the airlock
build.) Did you speciry a cross compiler? (Guessing no since the page of
"glibc doesn't support static linking!" warnings shouldn't happen with
basically any cross compiler, since none of them use glibc.)

(The airlock step is basically a smaller host-tools from aboriginal, I
merged it into toybox as "make install_airlock".)

>> I need to finish implementing the various targets' kernel builds, do a
>> proper release of that, write up better documentation for it (probably a
>> big README since github displays that), and get the control images to
>> run under it.
> 
> Right.

That's basically my todo list before I have big announcements, I've just
been distracted by a half-dozen other things. (Bug reports from toybox
in android, j-core.org stuff, so far this year I've had to fly to
portland, tasmania, tokyo, and san francisco. Add december and I was in
minneapolis and san diego.)

>> I also need to update the aboriginal linux website to say that the
>> project's concluded and mkroot is the successor. I keep starting a
>> writeup and it goes off into long explanations of the history and what I
>> was trying to accomplish and so on... I should just finish
>> http://landley.net/aboriginal/history.html
> 
> I think I have read that before but I will have another look to see if
> there is an updated version.

There is but it's not uploaded yet since it _also_ trails off
midsentence. :)

> Also, have you thought about updating your comments in a blog or
> something re Android from the "Embedded Linux Conference 2013"?  I find
> your "Android self-hosting" argument very compelling and interesting and
> wonder how you feel about the situation now after a few years have
> passed since you made that talk.

Android merged toybox at the start of 2015, it first shipped in Marshmallow:

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

The #2 contributor to toybox is Elliott Hughes, Android's toolbox and
bionic maintainer, who has committed to replacing toolbox entirely with
toybox:

http://lists.landley.net/pipermail/toybox-landley.net/2016-June/008484.html

He updates the toybox roadmap more often than I do:

  https://github.com/landley/toybox/commits/master/www/roadmap.html

Alas, I'm the bottleneck on finishing off toolbox, $DAYJOB and life have
been hugely distracting for the past ~8 months. (Trying to dig out of
that, but I need to be in San Diego again a week from monday...)

Still, let's try to track down the failure you're seeing with mkroot. I
want that to work for everybody. I haven't moved over the environment
variable whitelisting yet, although it's basically something like:

  [ ! -z "$TERM" ] && exec env -i "PATH=$PATH" "$0"

(Modulo "$TERM" being reliably set in the host environment and NOT set
by magic /etc/profile stuff that runs even for shell scripts. I dunno,
maybe $USER would be better? Tested to work with my bash on ubuntu !=
and this won't screw up on some obscure distro like RHELL 9...)

> Regards,
>
> Phil.

Rob

P.S. I'm not sure if I should get mkroot a new list, or move this one
over to a new name. At the moment there's not enough to see to take
action on either way. Working on it, but juggling 9 other things at the
same time...


More information about the Aboriginal mailing list