Sunday, February 27, 2011

Cross compiling BusyBox for the Nvidia Tegra 2

The Motorola Xoom tablet is powered by an Nvidia Tegra 2, Dual-Core ARM Cortex A9 processor and runs Android 3.0, Honeycomb. There are no third party UI replacements or additions.

The below instructions are for cross compiling a statically linked BusyBox binary for an Nvidia Tegra 2 tablet.

linux host ~$ wget http://busybox.net/downloads/busybox-1.18.3.tar.bz2
linux host ~$ wget http://www.busybox.net/downloads/busybox-1.18.3.tar.bz2.sign
linux host ~$ http://busybox.net/~vda/vda_pubkey.gpg
linux host ~$ gpg --check-sigs vda.linux
linux host ~$ gpg --verify busybox-1.18.3.tar.bz2.sign
linux host ~$ sha1sum busybox-1.18.3.tar.bz2
linux host ~$ md5sum busybox-1.18.3.tar.bz2
linux host ~$ bzip2 -cd busybox-1.18.3.tar.bz2 | tar xf -
linux host ~$ cd busybox-1.18.3
linux host ~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
linux host ~$ make CFLAGS=--static LDFLAGS=--static ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
linux host ~$ adb remount
linux host ~$ adb push busybox /system/xbin/busybox
linux host ~$ adb shell chmod 0755 /system/xbin/busybox
linux host ~$ adb shell
linux host ~$ cd /system/xbin
linux host ~$ ./busybox --install -s /system/xbin
linux host ~$ cd /mnt/sdcard
linux host ~$ echo "export PATH="export PATH=/system/xbin:/sbin:/vendor/bin:/system/sbin:\
  /system/bin" > profile
linux host ~$ echo "ENV=/mnt/sdcard/profile /system/xbin/ash" > /system/bin/alsh
linux host ~$ chmod 0755 /system/bin/alsh
linux host ~$ alsh
linux host ~$ uname -ia
linux host ~$ Linux localhost 2.6.36.3-g2a65edc #1 SMP PREEMPT Mon Feb 7 15:24:33 PST 2011
  armv7l GNU/Linux

No comments:

Post a Comment