pcb-rnd knowledge pool
Autobuild: how to install your host system
autobuild_hreq by Tibor 'Igor2' Palinkas on 2020-11-30 | Tags: howto, autobuild, host, setup, install, installation |
Abstract: Setting up an autobuild host: what software to run on what hardware and what to install on it.
The easiest way to join the autobuild project is to use a preinstalled OS image we provide. Such preinstalled image contains all software required - once started in qemu, it automatically does what it should be doing.
In some cases, especially with proprietary host systems and/or exotic hardware natively running those systems (no qemu emulation), you may need to install the system. This pool node describes software requirements for different autobuild host types
Common requirements and system selection guide
At the end, the most important thing is to have an interesting architecture+OS+CC+libc combination to test on.
By far the most important is the libc : we have a lot of systems running GNU libc so yet another one, even if it's eating CPU cycles on some strange hardware, is much less interesting than an unusual libc. Best is proprietary libc shipped with UNIX systems. If your host system comes with a libc that is ansi/c89 compliant, please do not install GNU libc or BSD libc!
The second most interesting aspect is the C compiler : we have a lot of testing done by normal users with gcc and our code is typically c89 or at most c99, so we do not require anything new than 20 years old standards. If your host system comes with a C compiler that is ansi/c89 compliant, please do not install gcc!
The third interesting thing is the OS, the software environment. Most notably the basic shell tools: the shell itself, awk, grep, sed, and make. The same rule applies here: we have a lot of testing on common, GNU variants of these. If your host system comes with a POSIX shell, any kind of make, any implementation of awk/grep/sed, please do not install GNU or BSD or busybox variants!
Finally, in some real rare cases a bug is triggered only on an unusual architecture. The most common causes are handling the floating point environment differently (exceptions, roundings), differences in how vararg is implemented and differences in basic type sizes.
Conclusion: the most valuable test system is the one that (in order of importance from top to bottom):
- fulfills the minimum software requirement
- has the least amount of already known/tested-on software components (e.g gcc, glibc, GNU make)
- maybe runs on an unusual hardware (non-x86, non-arm)
Software requirements: common
- at least C89 compiler (see test program )
- at least C89 libc (see test program )
- make
- POSIX shell, awk, sed, grep, cp, mv, ln
Software requirements for a CEC host
- the common system requirements from above
- the system is running 24/7 and has stable internet connection all
- install libporty (the c99tree part is not required, don't mind if that fails to build): svn://svn.repo.hu/libporty/trunk
- install plumb: svn://svn.repo.hu/plumb
- check out and configure the autobuild: TODO
- make sure the autobuild script runs 24/7 (as a plain user)
Software requirements for a ST host
- the common system requirements from above
- check out and configure the autobuild-st: TODO
- you need to arrange a setup that starts the host in its time slot and stops (better yet suspends) it when the time slot ends, e.g.: TODO
Software requirements for a MS host
- the common system requirements from above
- check out and configure the autobuild-ms: TODO