Openmamba sdk

Da Wiki :: openmamba.
Jump to navigation Jump to search

openmamba SDK

Si tratta di una particolare distribuzione di openmamba orientata allo sviluppo su architetture alternative rispetto a quella supportata di base, ovvero x86 per PC con processori i586 compatibili. Questa pagina contiene istruzioni generiche e comuni a tutte le piattaforme hardware supportate. Prima di poter utilizzare openmamba sdk consultare le istruzioni specifiche per la piattaforma hardware scelta tra ARM, PowerPC e x86_64.

Accesso al sistema

Modalità reale

Se il sistema viene eseguito sulla piattaforma hardware reale oppure utilizzando qemu in system mode questo deve essere avviato secondo le istruzioni specifiche per la piattaforma attraverso l'esecuzione del kernel ed utilizzando il root filesystem forniti. Il sistema SDK è configurato all'avvio per l'accesso automatico come utente root.

Modalità chroot

Il sistema può essere utilizzato in modalità chroot, ovvero accedendo al filesystem di root dal sistema ospite (normalmente un PC) grazie all'utilizzo di qemu in modalità utente.

Questo è possibile grazie alla possibilità di associare i binari per ciascuna architettura all'emulatore qemu corrispondente usando il filesystem virtuale /proc/sys/fs/binfmt_misc. Se si utilizza openmamba 2 ed è installato qemu, il sistema è già pronto per l'emulazione user mode e supporta le seguenti architetture:

$ ls /proc/sys/fs/binfmt_misc
arm    m68k  mips64    mipsel   mipsn32el  register  status   windowsPE
armeb  mips  mips64el  mipsn32  ppc        sparc     windows  x86_64

Per accedere al sistema in modalità chroot è sufficiente eseguire il comando:

sudo chroot /mnt/openmamba-sdk-root

Il comando restituirà un prompt di una shell eseguita all'interno del sistema in /mnt/openmamba-sdk-root. Questa "magia" è possibile grazie alla presenza dell'emulatore qemu compilato staticamente nella cartella /usr/bin del root filesystem dell'SDK.

Utenti e sicurezza

Il sistema SDK dispone di un utente preconfigurato denominato sdk che dispone dei privilegi necessari per la pacchettizzazione e la gestione del sistema, in quanto fa parte dei gruppi sysadmin e packager. La password preimpostata sia per l'utente sdk che per l'utente root è "sdk". Si noti che il sistema è configurato per agevolare lo sviluppo a discapito della sicurezza, pertanto non se ne consiglia l'utilizzo su reti pubbliche a meno che non si abbia la piena consapevolezza di cosa si sta facendo.

Configurazione della rete

Per effettuare una configurazione permanente dell'accesso alla rete fare riferimento alla configurazione delle interfacce di rete creando un apposito file (ad esempio ifconfig.eth0) nella cartella /etc/sysconfig/network-devices. Per ottenere immediatamente un indirizzo se nella rete è disponibile un server dhcp eseguire il comando:

dhclient eth0

Gestione dei pacchetti di sistema

Come nel sistema per PC di openmamba milestone2, per è disponibile il tool SMART Package Manager per l'installazione di pacchetti e per l'aggiornamento del sistema. Prima di procedere con l'utilizzo di autodist e autoport è opportuno aggiornare la lista di pacchetti eseguendo il comando sudo smart update:

[sdk@ppc-sdk SPECS]$ sudo smart update
Caricamento cache in corso...
Aggiornamento cache in corso...                ############################################################### [100%]

Scaricamento informazioni per "branch of devel repository containing big games [unstable]"...                       
-> http://www.openmamba.org/pub/openmamba/devel-games/base/release                                                  
release                                       ############################################################### [ 16%]
-> http://www.openmamba.org/pub/openmamba/devel-games/base/release.ppc                                              
release.ppc                                   ############################################################### [ 33%]
-> http://www.openmamba.org/pub/openmamba/devel-games/base/pkglist.ppc.bz2                                          
pkglist.ppc.bz2                               ############################################################### [ 50%]
                                                                                                                     
Scaricamento informazioni per "base development repository [unstable]"...
-> http://www.openmamba.org/pub/openmamba/devel/base/release                                                        
release                                       ############################################################### [ 66%]
-> http://www.openmamba.org/pub/openmamba/devel/base/release.ppc                                                    
release.ppc                                   ############################################################### [ 83%]
-> http://www.openmamba.org/pub/openmamba/devel/base/pkglist.ppc.bz2                                                
pkglist.ppc.bz2                               ############################################################### [100%]

Aggiornamento cache in corso...                ############################################################### [100%]

I canali hanno 258 pacchetti nuovi .
Salvataggio cache in corso...

[sdk@ppc-sdk SPECS]$ 


Configurazione di autospec

Per utilizzare i tool per lo sviluppo autospec, autodist e autoport è necessario creare un file di configurazione di autospec che contenga le impostazioni per il repository e copiarla nella cartella /home/sdk/.autospec. Per maggiori dettagli consultare le istruzioni per l'uso di autospec.

Utilizzo di autoport

Se tutto è configurato correttamente è possibile eseguire il comando autoport per effettuare il porting di pacchetti presenti nel repository:

[sdk@ppc-sdk SPECS]$ autoport -r devel-makedist ncurses
Build platform is ppc-openmamba-linux-gnu
Target platform is ppc-openmamba-linux-gnu
==========
Step 1
Scheduled jobs: ncurses

ncurses: prepare(OK) port(OK) install(OK)