ts-7000
[Top] [All Lists]

[ts-7000] qemu & native arm compilation

To:
Subject: [ts-7000] qemu & native arm compilation
From: Christopher Friedt <>
Date: Sun, 22 Jul 2007 11:48:48 +0200
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/
 

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU