[git commit] FAQ: add a new section about reporting reproducible bugs under qemu

Denys Vlasenko vda.linux at googlemail.com
Sun Dec 18 23:17:33 UTC 2011


commit: http://git.busybox.net/busybox-website/commit/?id=b48f03c6b684d35c96a7522f024ad6c1579b5052
branch: http://git.busybox.net/busybox-website/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 FAQ.html |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 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)
 </p>
 
 <hr />
+<h2><a name="emu">I am observing a bug in BusyBox on an obscure platform. Help.</a></h2>
+
+<p>
+    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").
+</p>
+<p>
+    Example of a recipe to reproduce a bug under qemu:
+<ul>
+<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>
+<li>Download http://www.landley.net/aboriginal/downloads/binaries/system-image-armv6l.tar.bz2
+    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)
+</ul>
+</p>
+
+<hr />
 <h2><a name="sed">I can't configure Busybox on my system</a></h2>
 
 <p>
@@ -751,6 +796,7 @@ int main(int argc, char *argv)
   mv busybox sed
   export PATH=`pwd`:"$PATH"
 </pre>
+</p>
 
 <p>Then you can run "make defconfig" or "make menuconfig" normally.</p>
 


More information about the busybox-cvs mailing list