~vcs-imports/busybox/trunk

« back to all changes in this revision

Viewing changes to qemu_multiarch_testing/README

  • Committer: Denys Vlasenko
  • Date: 2015-10-05 07:04:04 UTC
  • Revision ID: git-v1:12efcf3285a75d197704d2eef23824b3e4f11e66
Add qemu_multiarch_testing/

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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