I mentioned this to Denys, but here's a more general note: Prebuilt binaries for bunch of different targets (arm, mips, powerpc, sparc, etc), statically linked against current uClibc-stable. Just download them to your target system, set the executable bit, and try them out:
http://busybox.net/downloads/binaries/1.16.1 You can also test run them under qemu's application emulation mode, ala: qemu-mips ./busybox-mips ls -l (If you're using ubuntu and have qemu but not qemu-mips, you need to install "qemu-kvm-extras" because the ubuntu developers have confused kvm with qemu. Personally, I just built it from source...) Note that to for "qemu-ppc" to work with static binaries, you need this patch: http://git.qemu.org/qemu.git/commit/?id=7983f435e5306a4b17e1edcb408ba64b33e9c88f Which should be in the qemu 0.12.4 release, which isn't out yet. If you want to play with similar statically linked strace and dropbear binaries (and strace is _very_ useful for debugging busybox), you can grab them from http://impactlinux.com/fwl/downloads/binaries That directory also contains busybox-based system images that you can boot up under qemu's system emulation (qemu-system-$ARCH instead of qemu-$ARCH) as a virtual arm/mips/ppc system. Just extract the appropriate system-image-$ARCH tarball and use either the "./run-environment.sh" script (to boot up a simple read-only busybox+uClibc filesystem with a tmpfs on /home) or "./dev- environment.sh" (create a 2 gigabyte ext2 image, feed that in as the emulated system's /dev/hdb, mount that on the emulated system's /home for some persistent scratch space you can compile packages in). If you'd like to build your own non-x86 busybox binaries from source, you can either build them natively under the above system images (they contain native development tools), or you can cross compile them with the cross- compiler-$ARCH tarballs (at the same URL, above). Extract the cross compiler tarball, add its "bin" subdirectory to your $PATH, and then build with CROSS_COMPILE set to the toolchain prefix, for example: make defconfig make CROSS_COMPILE=armv4tl- Note the trailing dash, it's part of the prefix, to yield "armv4tl-cc" and similar. If you want a static binary, do this: make defconfig LDFLAGS="--static" make CROSS_COMPILE=mipsel- (Dynamically linked binaries should run fine under the qemu system emulation using the system images mentioned above, but are a bit of a pain to run on the host system with qemu application emulation because you have to install shared libraries somewhere the emulator can find them. I generally don't bother on the host, and just use system emulation for that.) By the way, if you want to do a "flat" install of busybox (all the symlinks it supports in the same directory as the busybox executable, so there's only one directory to add to your $PATH), try this: make busybox.links mkdir output cp busybox output for i in $(sed 's...@.*/@@' busybox.links) do ln -s busybox output/$i done Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
