Ciao,
ho configurato una macchina virtuale per compilare c/c++ per il raspberry, ecco la guida :
# Configurazione Scratchbox2, qemu e un rootfs Raspberry Pi per compilare per il Raspberry Pi.
# Io ho utilizzato Debian 7.0 32 bit (naturalmente funziona su altre distribuzioni
# ma i comandi potrebbero essere leggermente diversi) installato dentro una VM Oracle
# con le guest-additions installate.
# Io per non avere problemi di spazio ho creato un disco virtuale da 20 giga,
# 8-10 dovrebbero bastare
# Questa guida sottointende che stai utilizzando la shell bash.
# La guida originale è di ShiftPlusOne e la potete trovare all'indirizzo
# http://pastebin.com/4Jp1WPTb
# Io l'ho tradotta ed adattata alle ultime versioni dei file.
# Funziona
# Installazione pacchetti necessari per installare Scratchbox2 e qemu più qualche extra utile.
sudo apt-get install build-essential mc openssh-server apache2 wget git subversion fakeroot \
realpath libsdl1.2-dev libncurses5 libncurses5-dev libcurl3 libcurl4-openssl-dev \
gftp autoconf libpixman-1-dev
# Creazione di una directory di lavoro temporanea
mkdir work ; cd work
# Scarichiamo Scratchbox2, qemu e un toolchain ( il toolchain si può buildare
# da soli , ma c'è uno già disponibile free ed usiamo quello )
git clone https://git.gitorious.org/scratchbox2/scratchbox2.git
git clone http://git.linaro.org/git-ro/qemu/qemu-linaro.git
# Installiamo il toolchain
mkdir $HOME/ARMDevelopmentTools
tar xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C $HOME/ARMDevelopmentTools
# Configuriamo , compiliamo ed installiamo scratchbox2
cd $HOME/work/scratchbox2
./autogen.sh
mkdir $HOME/ARMDevelopmentTools/Scratchbox2
make install prefix=$HOME/ARMDevelopmentTools/Scratchbox2
# Configuriamo, compiliamo ed installiamo qemu (linaro "fork").
# Opzioni di configurazione a parte --target-list dipendono
# dai vostri gusti/esigenze. Le seguenti sono quelle che ho utilizzato io
cd $HOME/work/qemu-linaro
mkdir $HOME/ARMDevelopmentTools/qemu-linaro
./configure --prefix=$HOME/ARMDevelopmentTools/qemu-linaro --target-list=arm-linux-user,arm-softmmu --audio-drv-list=alsa,sdl,oss --audio-card-list=ac97,sb16 --enable-mixemu
make && make install
# Aggiungiamo le linee seguenti al file $HOME/.bashrc con un editor qualsiasi
export PATH=$HOME/ARMDevelopmentTools/Scratchbox2/bin:$HOME/ARMDevelopmentTools/qemu-linaro/bin:$PATH
alias doch='sudo $(history -p !-1)'
# Creiamo la directory per tutti i file riguardanti Raspberry Pi
mkdir $HOME/RaspberryPiDevelopment
# Torniamo alla working directory
cd $HOME/work
# Scarichiamo il rootfs desiderato dalla pagina http://raspberrypi.org/downloads e
# copiamolo nella working directory.
# Es. wget http://<direct link you go from http://raspberrypi.org/downloads>
# Io ho scaricato 2013-02-09-wheezy-raspbian.zip
unzip 2013-02-09-wheezy-raspbian.zip
file 2013-02-09-wheezy-raspbian.img
# Avremo un output simile al seguente
2013-02-09-wheezy-raspbian.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192,
114688 sectors; partition 2: ID=0x83, starthead 165, startsector 122880, 3665920 sectors, code offset 0xb8
# Dobbiamo annotarci il valore dello startsector per la partizione 2 , che nel mio caso è 122880
# e moltiplicarlo per 512. Il mio valore quindi è 62914560
# Montiamo il rootfs come un loop device partendo dall'inizio della seconda partizione.
sudo losetup -o 62914560 /dev/loop0 2013-02-09-wheezy-raspbian.img
sudo mkdir /mnt/rootfs
sudo mount /dev/loop0 /mnt/rootfs
# Copiamo i files dal rootfs alla directory che useremo per il nostro Raspberry Pi
# Io ho usato il nome utente "raspberrypi" , in caso cambiatelo nei comandi chown e chgrp per il vostro userid e groupid
sudo mkdir $HOME/RaspberryPiDevelopment/.debian7_rootfs
sudo cp -v -r /mnt/rootfs/* $HOME/RaspberryPiDevelopment/.debian7_rootfs
sudo chown -R raspberrypi $HOME/RaspberryPiDevelopment/.debian7_rootfs
sudo chgrp -R raspberrypi $HOME/RaspberryPiDevelopment/.debian7_rootfs
sudo chmod -R 777 $HOME/RaspberryPiDevelopment/.debian7_rootfs
# Smontiamo il rootfs e cancelliamo il mountpoint
sudo umount /mnt/rootfs
sudo losetup -d /dev/loop0
sudo rmdir /mnt/rootfs
# Inizializziamo Scratchbox2
cd $HOME/RaspberryPiDevelopment/.debian7_rootfs
sb2-init raspberrypi_debian7 $HOME/ARMDevelopmentTools/arm-2011.03/bin/arm-none-linux-gnueabi-gcc
# Torniamo alla nostra directory di sviluppo e testiamo che tutto funzioni
cd ..
mkdir hello
vi hello.c
#include <stdio.h>
void main(){
printf("hello, moddingstudio ! \n");
}
sb2 gcc -o hello.arm hello.c
# Se tutto è andato bene usando il comando file hello.arm avremo il seguente output
hello.arm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
# Lanciamo hello.arm usando il comando sb2 ./hello.arm
sb2 ./hello.arm
hello, moddingstudio !