[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Prebuilt binaries for various targets.
From: Rob Landley <rob () landley ! net>
Date: 2010-03-30 19:38:23
Message-ID: 201003301438.24915.rob () landley ! net
[Download RAW message or body]
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
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic