Vai al contenuto

Raspberry - Ambiente di Sviluppo C++


Vice

Messaggi raccomandati

Ciao , ordinato oggi il mostricciattolo asd, nel frattempo volevo configurare sul pc un ambiente di sviluppo applicazioni in c/c++ per Raspberry. Ho cercato un pò online e ci sono diverse guide per configurare una macchina virtuale con compilazione per ARM , sono un pò datate pero..

Se qualcuno si è gia cimentato nella creazione di tale macchina virtuale ( linux o windows ) usiamo questo topic per scambiare informazioni.

 

Ciao e buon smanettamento :D

Link al commento
Condividi su altri siti

Inviato (modificato)

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 !

Modificato da Vice
Link al commento
Condividi su altri siti

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...