diff options
authorDenys Vlasenko <>2011-12-18 23:17:33 (GMT)
committerDenys Vlasenko <>2011-12-18 23:17:33 (GMT)
commitb48f03c6b684d35c96a7522f024ad6c1579b5052 (patch)
parent2a3384be22d65bea2e9daf3b676ef30731c10604 (diff)
FAQ: add a new section about reporting reproducible bugs under qemu
Signed-off-by: Denys Vlasenko <>
1 files changed, 46 insertions, 0 deletions
diff --git a/FAQ.html b/FAQ.html
index a0b036d..a55c1d3 100644
--- a/FAQ.html
+++ b/FAQ.html
@@ -29,6 +29,7 @@ have additions/corrections to this document, we would love to add them.
<li><a href="#bugs">I think I found a bug in Busybox! What should I do?!</a></li>
<li><a href="#backporting">I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?</a></li>
<li><a href="#init">Busybox init isn't working!</a></li>
+<li><a href="#emu">I am observing a bug in BusyBox on an obscure platform. Help.</a></li>
<li><a href="#sed">I can't configure Busybox on my system</a></li>
<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></li>
<li><a href="#touch_config">sed "/CONFIG_FOO/s/.*/CONFIG_FOO=y/" -i .config; make; does not enable applet foo</a></li>
@@ -727,6 +728,50 @@ int main(int argc, char *argv)
<hr />
+<h2><a name="emu">I am observing a bug in BusyBox on an obscure platform. Help.</a></h2>
+ A good thing to do would be to explain in details how this bug can be reproduced
+ under emulation (such as qemu) by people who have only typical x86 machine at their
+ disposal. This makes it possible for other people to independently verify that bug
+ indeed exists, and work on fixes for it. Otherwise, they can only send you
+ suggestions what _you_ can do on _your_ system, which is MUCH slower process
+ (think "email round trip time" and "non-scalable").
+ Example of a recipe to reproduce a bug under qemu:
+<li>Download and unpack arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
+ to /usr/package/arm-2010q1 directory.
+<li>Add /usr/package/arm-2010q1/bin to $PATH.
+<li>Unpack pristine busybox-1.19.3 source tarball into an empty directory.
+<li>Build dynamic busybox binary using this cross-compiler:<pre>
+ make defconfig
+ make -j 4 CROSS_COMPILE=arm-none-linux-gnueabi-
+ make CROSS_COMPILE=arm-none-linux-gnueabi- install</pre>
+<li>Make ext2 image with the resulting binary:<pre>
+ dd if=/dev/zero of=image_ext2 bs=1M count=16
+ mke2fs -F image_ext2
+ mkdir dir
+ mount -o loop image_ext2 dir
+ cp -a _install/* dir</pre>
+<li>Add to image_ext2 dynamic loader and libraries from toolchain:<pre>
+ cp -a /usr/package/arm-2010q1/arm-none-linux-gnueabi/libc/lib dir</pre>
+<li>Unmount image_ext2:<pre>
+ sync
+ umount -d dir</pre>
+ and take zImage from there.
+<li>Start this kernel with this file system image under qemu:<pre>
+ qemu-system-arm -cpu arm1136-r2 -M versatilepb -nographic -no-reboot \
+ -hda image_ext2 \
+ -kernel zImage \
+ -append 'rw init=/bin/sh panic=1 PATH=/bin:/sbin root=/dev/sda console=ttyAMA0'</pre>
+<li>(give further description here how to trigger the bug)
+<hr />
<h2><a name="sed">I can't configure Busybox on my system</a></h2>
@@ -751,6 +796,7 @@ int main(int argc, char *argv)
mv busybox sed
export PATH=`pwd`:"$PATH"
<p>Then you can run "make defconfig" or "make menuconfig" normally.</p>