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

Philip Rhoades phil at pricom.com.au
Mon Mar 5 15:56:00 PST 2018


Rob,


On 2018-03-06 09:55, Rob Landley wrote:
> On 03/04/2018 11:53 PM, Philip Rhoades wrote:
>> Rob,
>> 
>> I am just replying to something from a year ago for a potential 
>> restart - it
>> appears that things are making slow progress with mkroot? - is it 
>> worth me
>> testing this stuff out again from scratch?
>> 
>> Regards,
>> 
>> Phil.
> 
> I hope mkroot just got unblocked. I switched jobs to something with 
> more defined
> hours (so I have evenings and weekends when I'm NOT working) in 
> January, and
> migrated the aboriginal mailing list to mkroot this past weekend.
> 
> The restart from aboriginal to mkroot happened because somebody did an 
> external
> toolchain builder that actually gives usable native compilers, which is 
> the
> missing part of bootlin/buildroot/crosstool/ellcc/android ndk...
> 
> The old last gplv2 releases were getting progressively more out of date 
> even
> before the kernel moved its compiler requirements (the last gplv2 
> release was
> 4.2.1, now it's gcc 4.5 ala
> http://lkml.iu.edu/hypermail/linux/kernel/1802.1/02253.html) Making the 
> old
> tools build new software was constant work, which I didn't have time to 
> keep up
> with.
> 
> I'm still spread thinner than I like, but moving forward again.


However, that all sounds positive - I will keep watching and jump back 
in when it seems appropriate.

Regards,

Phil.


> Rob
> 
>> On 2017-03-25 04:56, Philip Rhoades wrote:
>>> Rob,
>>> 
>>> 
>>> On 2017-03-25 03:54, Rob Landley wrote:
>>>> 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?
>>> 
>>> 
>>> Fedora 25 x86_64
>>> 
>>> 
>>>> 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.
>>> 
>>> 
>>> Right.
>>> 
>>> 
>>>> 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?
>>> 
>>> 
>>> I just deleted the created dirs and ran the script again to be sure
>>> that it wasn't a different result from manually running the make in
>>> between running the script twice but I got the same problem . . so I
>>> am definitely just running "mkroot.sh" in an otherwise empty
>>> directory.
>>> 
>>> 
>>>> 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.)
>>> 
>>> 
>>> Attached is the full output - does that help?
>>> 
>>> 
>>>> (The airlock step is basically a smaller host-tools from aboriginal, 
>>>> I
>>>> merged it into toybox as "make install_airlock".)
>>> 
>>> 
>>> Right.
>>> 
>>> 
>>>>>> 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.)
>>> 
>>> 
>>> Tasmania!  If I had known you were in Oz it would have been good to 
>>> catch up . .
>>> 
>>> 
>>>>>> 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. :)
>>> 
>>> 
>>> No worries . .
>>> 
>>> 
>>>>> 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/
>>> 
>>> 
>>> Will check it out.
>>> 
>>> 
>>>> 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
>>> 
>>> 
>>> Ditto.
>>> 
>>> 
>>>> He updates the toybox roadmap more often than I do:
>>>> 
>>>>   https://github.com/landley/toybox/commits/master/www/roadmap.html
>>> 
>>> 
>>> Ditto again . .
>>> 
>>> 
>>>> 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...)
>>> 
>>> 
>>> No worries . .
>>> 
>>> 
>>>> 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"
>>> 
>>> 
>>> Aha!  Before I was running the script in a tmux tab and getting the
>>> results that I have attached.  I just tried running the line above in
>>> the tmux tab and the tab disappeared! - so I tried opening a new 
>>> xterm
>>> with no tmux and running the script from there and got a different
>>> result:
>>> 
>>> toybox-0.7.3/www/
>>> toybox-0.7.3/www/about.html
>>> toybox-0.7.3/www/cleanup.html
>>> toybox-0.7.3/www/code.html
>>> toybox-0.7.3/www/design.html
>>> toybox-0.7.3/www/ext2.html
>>> toybox-0.7.3/www/faq.html
>>> toybox-0.7.3/www/footer.html
>>> toybox-0.7.3/www/header.html
>>> toybox-0.7.3/www/index.html
>>> toybox-0.7.3/www/license.html
>>> toybox-0.7.3/www/news.html
>>> toybox-0.7.3/www/oldnews.html
>>> toybox-0.7.3/www/roadmap.html
>>> toybox-0.7.3/www/status.html
>>> toybox-0.7.3/www/toycans.png
>>> cc -o kconfig/conf kconfig/conf.c kconfig/zconf.tab.c 
>>> -DKBUILD_NO_NLS=1 \
>>>     -DPROJECT_NAME=\"ToyBox\"
>>> ccache: error: Could not find compiler "cc" in PATH
>>> kconfig/Makefile:65: recipe for target 'kconfig/conf' failed
>>> make: *** [kconfig/conf] Error 1
>>> 
>>> 
>>>> (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...)
>>> 
>>> 
>>> Well not exactly RHELL 9 but still Fedora 25 . . I think the last RH 
>>> I
>>> used was 5.2 (ie a still "free" version before RHE).
>>> 
>>> 
>>>> 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...
>>> 
>>> 
>>> I am in a similar position but I am interested in making more 
>>> progress
>>> with this stuff whenever I can so I will just try things whenever you
>>> have time to look at it and can suggest something.
>>> 
>>> Regards,
>>> 
>>> Phil.
>>> _______________________________________________
>>> Aboriginal mailing list
>>> Aboriginal at lists.landley.net
>>> http://lists.landley.net/listinfo.cgi/aboriginal-landley.net
>> 

-- 
Philip Rhoades

PO Box 896
Cowra  NSW  2794
Australia
E-mail:  phil at pricom.com.au


More information about the mkroot mailing list