Add qemu_multiarch_testing/
[oweals/busybox.git] / qemu_multiarch_testing / README
1 How to test build using Aboriginal Linux system images.
2
3 * Put a source tree into hdc.dir/.
4 For example, this should work:
5 git clone git://busybox.net/var/lib/git/busybox.git
6
7 * Run ./make-hdc-img.sh: it will generate ext2 image file,
8 hdc.img, from hdc.dir/* data. This requires root for loop mount.
9
10 * Download and unpack, or build from source and unpack
11 one or more system-image-ARCH directories into this directory
12 (the one which contains this README).
13
14 * Run: ./parallel-build-hdc-img.sh system-image-DIR1 system-image-DIR2...
15 (background it if you don't want to see "Waiting to finish" thing).
16 This runs build in several qemu virtual machines in parallel.
17
18 * Observe system-image-*.log file(s) with growing log of the build.
19
20 There is no automated detection of errors for now: you need to examine
21 logs yourself.
22
23 Log files will also contain uuencoded (or if all else fails, od -tx1'ed)
24 binary, if build was successful.
25
26 To debug a build problem in one of the sandboxes, change keep_hdb
27 to "keep_hdb=true" in parallel-build-hdc-img.sh
28 - this preserves system-image-ARCH/hdb.img after the build,
29 so you can go into system-image-ARCH and run
30 "HDB=hdb.img ./dev-environment.sh" to debug the problem.
31
32 You can also run "./parallel-build-hdc-img.sh -s system-image-ARCH"
33 - single mode, output is to screen and serial input is from keyboard.
34
35 If hdc.dir/bin/busybox-$ARCH exists, it will be used during build
36 to supply additional tools.
37
38 For me, the following system images worked:
39 system-image-armv4l
40 system-image-armv4tl
41 system-image-armv5l
42     od is buggy on arm*:
43     # echo Hello-hello-hello-hello | od -b
44     0000000 110 145 154 154 157 055 150 145 154 154 157 055 150 145 154 154
45     0000000 157 055 150 145 154 154 157 012
46     0000000
47 system-image-i686
48 system-image-mips
49 system-image-mipsel
50     od is buggy on mips[el]:
51     # echo Hello-hello-hello-hello | od -b
52     0000000 110 145 154 154 157 055 150 145 154 154 157 055 150 145 154 154
53     17767153361 157 055 150 145 154 154 157 012
54     0000000
55 system-image-x86_64
56
57 And these did not:
58 system-image-armv6l  - hang on "Uncompressing Linux... done, booting the kernel"
59 system-image-powerpc - hang early in kernel boot
60 system-image-sparc   - hang early in userspace
61 system-image-m68k    - my qemu doesn't like "-M q800"
62 system-image-mips64  - init dies "Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a"
63 system-image-sh4     - qemu segfaults early in kernel boot