[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