Hi again everyone,
Instead of cross-compiling these days, I've started using Qemu for
native arm compilation. A cross compiler is still necessary to build the
kernel unless you use a pre-compiled one, like this:
http://vaiprime.visibleassets.com/~cfriedt/zImage-versatile-2.6
There is 1 shortcoming: it's generally not as fast as cross-compilation.
There are, however several more benefits:
* no limitations on RAM except what your system has free (for
compilations that take HUGE amounts of ram, like jikes compiling the
classpath)
* no oddities when it comes to pkg-config dependencies
* odd arch-dependent autoconf / automake things can be dealt with easier.
If anyone here would like to start compiling software this way, you will
need an arm kernel that works w/ Qemu (versatile PB), and a root
filesystem. I'm using Gentoo's stage3 root filesystem for the arm
Following the 'tinygentoo' methodology, I've built a gnu userland,
uclibc userland, and am working now on a gnueabi userland, all using
stock ebuilds, or slightly modified ebuilds in my own portage overlay.
I've built several packages with ease, ranging from wireless tools, to
libc's.
If anyone would be interested in collaborating on a good howto for
cross-development of this nature, particularly using gentoo's portage /
ebuild system, I'm sure I could get the gentoo-embedded people to post
soemthing on their site.
My Qemu command is here:
qemu-system-arm -kernel zImage-versatile-2.6 -m 256 -M versatilepb
-append "root=/dev/nfs nfsroot=192.168.7.1:/usr/gentoo_root,port=2049
ip=192.168.7.2:192.168.7.1:192.168.7.1:255.255.255.0:qemu" -net
nic,macaddr=52:54:00:12:34:56,model=smc91c111 -net nic,vlan=0 -net
tap,vlan=0,ifname=tap0,script=./qemu-ifup
qemu-ifup looks like this:
================================================
#!/bin/sh
if [ "$(/sbin/ifconfig | grep $1)" != "" ]; then
echo "shutting down old device $1"
sudo ifconfig $1 down
sleep 1
tunctl -d $1
sleep 1
fi
tunctl -t $1
sleep 1
sudo /sbin/ifconfig $1 up 192.168.7.1
================================================
My kernel .config is here:
http://vaiprime.visibleassets.com/~cfriedt/config-versatile-2.6
On the first boot, you should always add 'init=/bin/sh' to append above
so that you can get around the default root password.
~/Chris
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|