Home Tecnica Programmazione Aggiungere programmi all'N900 con Maemo SDK

In evidenza

SMAU a Bologna con Research to Business

SMAU a Bologna con Research to Business

Il 6 e 7 giugno il Roadshow Smau Business torna a far tappa al Padiglione 33 della Fiera di Bologna e...
Gli articolisti del Portale

Gli articolisti del Portale

Abbiamo deciso di dare più visibilità a tutti coloro che hanno pubblicato articoli per noi, questo perché...
SMAU festeggia il suo quinto anno nel NordEst a Padova

SMAU festeggia il suo quinto anno nel NordEst a Padova

Il 18 e 19 aprile al padiglione 5 di Padova Fiere si terrà la prossima tappa di SMAU Business Roadshow. All'evento...
SMAU risale l’Italia e arriva a Roma

SMAU risale l’Italia e arriva a Roma

Il 21 e 22 marzo nella Nuova Fiera di Roma si terrà la prossima tappa di SMAU Business Roadshow. L'evento...

Bandi di Concorso

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Avviso per incarico ad ingegnere informatico alla Provincia di Bergamo

Nell'ambito del progetto denominato "SOS badanti: la rete provinciale di sportelli per assistenti e collaboratori familiari” nell'ambito del programma "SAP - Servizi alla Persona" è stato pubblicato la Provincia di Bergamo ha pubblicato l'avviso per il reclutamento di una unità per incarico di...

21 Mag 2012 - Letture:1

Esperto di servizi e tecnologie cloud al Digit PA

Procedura comparativa per il conferimento di un incarico di collaborazione coordinata e continuativa per un profilo senior di “Esperto di servizi e tecnologie cloud”, nell’ambito del progetto europeo “Open Dai” presso l' Ente nazionale per la digitalizzazione della Pubblica Amministrazione...

18 Apr 2012 - Letture:34

Selezione per addetto servizi informatici all'Autorità Portuale di Brindisi

Avviso di selezione pubblica per titoli e prova orale per l’assunzione di n. 1 “addetto ai servizi informatici”, a tempo pieno ed determinato triennale, previo periodo di prova, da inquadrare nell’Area Amministrativa. (Inquadramento al III Livello del C.C.N.L. dei Lavoratori...

12 Feb 2012 - Letture:435

Concorso pubblico per informatico alla Corte dei Conti

E' indetto un concorso pubblico, per   esami,   per   il reclutamento di tre unità di informatici da inquadrare nella III area, fascia retributiva F1, da destinare agli Uffici della Corte dei Conti con sede in Roma. Requisiti: laurea triennale in scienze e...

05 Feb 2012 - Letture:306

Istruttore informatico L.68/1999 al Comune di Potenza

Concorso pubblico, per esami, per la copertura di n. 2 posti di Istruttore Informatico, categoria C, posizione economica C1, a tempo pieno e indeterminato, con riserva assoluta alle categorie dilavoratori di cui all'art. 1 della legge n. 68/1999 (norme per...

21 Gen 2012 - Letture:244

Senior Business Consultant presso Lombardia Informatica

Selezione per figura Senior Business Consultant presso Lombardia Informatica. Il collaboratore dovrà fornire consulenza strategica e di business sulle tematiche verticali della Socio-Sanità. Requisiti di ammissione: Laurea in Ingegneria, Economia e Commercio o Scienze dell’Informazione; Percorsi di formazione professionale in ambito sanitario e socio-sanitario, su...

11 Gen 2012 - Letture:284

Bando progetto TAG (Toscana Area Giovani) per giovani talenti digitali

UPI Toscana ha indetto un avviso pubblico per la selezione di 20 giovani (2 per ciascuna delle 10 province della Toscana), da impiegare come formatori all'interno del Progetto TAG (Toscana Area Giovani). Il bando è finalizzato a valorizzare al meglio i...

03 Gen 2012 - Letture:271

I più attivi

Dati e punteggi dell'ultimo anno

Giovanna Casamassima Giovanna Casamassima
47 articoli
16,501 punti totali
Rodolfo Giometti Rodolfo Giometti
49 articoli
5,153 punti totali
Vittorio D'Aversa Vittorio D'Aversa
33 articoli
3,445 punti totali
Fulvio Lucchetti Fulvio Lucchetti
9 articoli
0,279 punti totali
Luigi Carbone Luigi Carbone
10 articoli
0,262 punti totali

Ci hanno visitato

Oggi:1283
Ieri:2110
Totali (14/04/09):1170458

I nostri numeri

Articoli pubblicati: 552
Iscritti al portale: 768
Iscritti all'Elenco: 184
Iscritti ML Discussioni: 351
Iscritti ML Articoli: 30
Iscritti ML Lavoro: 166
 

ASUS U36SD il notebook in soli 19mm

La concorrenza al più blasonato della “mela” si fa agguerrita specie nell'ultimo...

Sviluppare codice per Arduino dalla command line

Arduino Uno è un micro controllore basato su CPU ATmega328; si alimenta via alim...

SL4A e il drone parla più lingue

Chi come me non ama Java si sentirà a disagio volendo programmare una qualsiasi ...

Virtualizzazione di Windows XP o altri SO su Ubuntu con Qemu

I pc odierni sono sempre più potenti e molto spesso sotto sfruttati, la virtua...

I dati e le loro anomalie nascoste

La motivazione per questo articolo nasce dalla crescente problematica di gestion...

Google +1: il «nemico» del «mi piace» di Facebook

Il tanto atteso nemico del "mi piace" targato Facebook è arrivato, il colosso de...

Implementare una LIM con Linux

Come promesso rieccomi qui per illustrare come realizzare una LIM (che ricordo s...

Come creare un NFS server ridondante

Quelli che mi conoscono sanno che il mio ambito lavorativo è nei sistemi embedde...

Cloud Money

Discorrendo con un collega di cloud computing, si è finito, come al solito, a pa...

Socat: quando i dati passano via rete

Lavorando coi sistemi embedded molte volte mi capita di dovermi arrangiare su di...

Boxee Box: la TV facile di D-Link

Grazie alla D-Link possiamo presentare un nuovo gioiello della tecnologia: il me...

LIM: la lavagna multimediale con il wiimote

LIM sta per Lavagna Interattiva Multimediale, ed è un progetto che, tramite l'...

Boot from SAN

Intendiamoci, non è l’ultima briciola tecnologica caduta da un banchetto alla NA...

L'SMS autoprodotto!

Tempo fa sulla mailing list di CFI ho provato a lanciare l'idea di effettuare un...

Verificare spazio su disco su UNIX

Nella gestione si sistemi informativi capita spesso di accedere a postazioni ser...

NBTempo: una GUI per le timeline

Svolgendo alcuni casi in cui serviva creare delle timeline per verificare l'att...

Anomalie di partizionamento hard disk: un esperienza personale

Nonostante le decine di installazioni delle varie distribuzioni Linux eseguite s...

Lion desktop: finalmente una distribuzione mirata alle aziende!

Chi è abituato a lavorare con Linux, ed in particolare ha provato a lavorare con...

Come ti controllo i tassi di interesse con Linux

In questi giorni sto cercando di fare una surruga per il mutuo di casa mia. Tra ...

Linutop4 PC

Il produttore francese Linutop, con sede a Parigi, ha annunciato il nuovo modell...

Disattivare il controllo account utente in Windows 7 e Vista

Il controllo account utente è quel particolare servizio progettato per aumentare...

(in)sicurezza informatica

L'incremento nell'uso del computer ha portato con se una diversa concezione di s...

IPhone recupero file: un gioco di squadra!

Un giorno l'amico Armando Buzzanca mi chiama perchè deve recuperare una no...

Generare un file pieno di 0xff

Per generare in file da 16Kbyte pieno di zeri su di un sistema UNIX/GNU-Linux si...

Il NAS D-Link DNS-343

Grazie alla D-Link azienda produttrice di apparecchiature di rete e non solo v...

Cifratura wireless: TKIP vs AES

Una delle domande più frequenti di chi intende implementare una rete Wireless è...

Installare strace su Android

Quando si programma è importante avere buoni tool di debug e uno dei più importa...

Multistrap: come ti creo un rootfs Debian dal nulla

Una volta c'era debootstrap, un tool fantastico che permetteva di creare un root...

Gimp, OpenOffice & C. su N900? Semplice con Debian!

Che Maemo fosse versatile me ne sono accorto subito, ma l'idea di poter installa...

Geexbox: la mini distro MediaCenter Linux

Geexbox è un piccolo ma potente sistema operativo orientato alla riproduzione di...

Maemo extras: ancora più applicazioni per l'N900

Finalmente, grazie a Nokia, abbiamo a disposizione un esemplare dell'N900 su c...

Autenticarsi con la pen drive

La pen drive è ormai diventata come il cellulare, impossibile non averla, ma sie...

Cluster VMWARE

In questo articolo vediamo come realizzare un cluster di macchine virtuali con u...

SUN Wiki Publisher: scrivere facilmente su Wikipedia

Personalmente uso parecchio Mediawiki (il motore di Wikipedia); lo ritengo un ot...

Forno a microonde: analisi emissioni EME

Nell'immaginario collettivo c'è una forte paura per i danni che posso generare s...

Tenere i servizi sotto controllo con Monit

In questi giorni mi è capitato di dover risolvere un problema per un mio cliente...

Come saltare il proxy «blocca-tutto» aziendale

Mi capita spesso, ma non sempre, di andare da dei miei clienti e non potermi con...

"Impronte digitali" anche per le macchine fotografiche

Da www.hwupgrade.it: Una ricerca della Binghamton University ha messo a punto u...

Demolinux: l'automazione industriale con Linux

Qualche tempo fa il mio ex istituto superiore mi aveva chiesto di fare una picco...

Android: se non hai il telefono usa l'emulatore!

In questi giorni sto valutando di comprare un cellulare basato su Linux. Inizial...

Code Smells

Sempre più spesso il codice ha un cattivo odore. Sei sicuro di non scrivere cod...

Universal USB Installer 1.8.04 e Ubuntu Linux 10.10

Rilasciata il 10.10(.2010) la nuova versione di Ubuntu Linux (la data corrispond...

Il telefono… la tua voce!

Era lo slogan pubblicitario della Telecom di un po’ di anni fa. Certo, al concet...

Kameleon: oltre i limiti della virtualizzazione

Negli ultimi anni la potenza dei computer e la loro capacità è aumentata in modo...

Backup mail server: quando il mail server non è raggiungibile

Se avete il mail server in proprio potrebbe succedere che questo non sia raggiun...

Openembedded: la distribuzione «ristretta» per Linux

Quando le risorse di un sistema sono limitate non è possibile usare una distribu...

PyGTK su N900

Come programmatore avere un cellulare che in pratica è un computer (oramai il 10...

Cloud Computing: cos'è veramente?

Da qualche tempo si sente sempre più parlare di Cloud Computing. Sembra che ques...

Sicurezza informatica: safety, dependability, security

La sempre maggiore diffusione delle tecnologie ha profondamente rivoluzionato la...

Il settore danneggiato e l'acquisizione forense

Se si deve acquisire un hard disk in maniera forense, ossia con tutti i crismi n...

Snom 870: il telefono con Linux

Definirlo solo telefono è sicuramente riduttivo, infatti lo Snom 870 è sicuramen...

Installazioni di Linux su sistemi non convenzionali

Un'ottica convenzionale vede l'informatica come un insieme di applicazioni e sis...

Installare Linux su una USB key: ecco come!

L’installazione  e l'avvio di una distribuzione Linux Live da un supporto U...

Arduracing: come realizzare una robot-car intelligente con Arduino

Arduracing è un progetto realizzato con Arduino in collaborazione con il Lucccal...

XMount finalmente liberi di virtualizzare!

Cosa succede dopo che abbiamo acquisito un disco in bitstream su file immagine? ...

Architettura di una trading room

La trading room o sala mercati è il luogo dove vengono effettuate le operazioni ...

Perché cross compilare quando si può compilare nativamente?

Lavorando con architetture diverse mi trovo spesso a dover utilzzare uno stesso ...

Aggiungere programmi all'N900 con Maemo SDK

Abbiamo già visto come sia facile installare nuove applicazioni sul Nokia N900, ...

Odroid: la piattaforma di gioco libera

Si chiama Odroid ed e basata su Android, è la prima piattaforma di gioco interam...

Generare un file da 10GB in 2 millisecondi!

Chi ha a che fare con le macchine virtuali o deve generare delle immagini di fil...

Aggiungere programmi all'N900 con Maemo SDK Stampa E-mail
(1 voto, media 5.00 di 5)
Area Tecnica - Programmazione
Scritto da Rodolfo Giometti   
Venerdì 26 Novembre 2010 12:45
Articolo letto 1764 volte

maemo-developerAbbiamo già visto come sia facile installare nuove applicazioni sul Nokia N900, in particolare come sia facile aggiungere tool per programmare; abbiamo già visto infatti come si installa python e PyGTK.

Ora però scendiamo ancora più nel dettaglio e vediamo come si può programmare direttamente in C in modo da sfruttare al massimo la potenza di calcolo dell'N900 e per accedere a tutte le funzionalità del sistema operativo.

Per fare questo il modo migliore è usare l'SDK di Maemo. Vediamo come si installa e come si usa.

L'installazione che eseguirò qui è valida per Ubuntu a 32bit (se avete un'altra configurazione vedete qui). La prima modalità di installazione è quella tramite una apposita GUI che fa tutto da sola; è inutile che vi dica che questo è il metodo più facile di installare l'SDK!

Prima di tutto scarichiamoci, in una directory ad hoc, la GUI di installazione:

$ mkdir maemo5-sdk && cd maemo5-sdk/
$ wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py
--2010-11-21 18:12:37--  http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py
Resolving repository.maemo.org... 77.67.20.64, 77.67.20.57
Connecting to repository.maemo.org|77.67.20.64|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 153290 (150K) [text/x-python]
Saving to: `maemo-sdk-install-wizard_5.0.py'

100%[======================================>] 153,290     60.1K/s   in 2.5s

2010-11-21 18:12:40 (60.1 KB/s) - `maemo-sdk-install-wizard_5.0.py' saved [153290/153290]

Quindi diamogli i permessi di esecuzione ed eseguiamola come root:

$ chmod a+x maemo-sdk-install-wizard_5.0.py
$ sudo ./maemo-sdk-install-wizard_5.0.py

Se avete fatto tutto bene otterrete una finestra del tipo riportato nella figura qui sotto.

maemo-sdk-ss01

Cliccate su Next e rispondete alle domande (banali) che vi verranno chieste, alla fine otterrete la schermata di riepilogo come riportato in figura.

maemo-sdk-ss02

Se quanto riportato vi aggrada premete Install e la procedura di installazione partirà. Vi avverto che quest'ultima sarà un po' lunga (circa 30 minuti a seconda della velocità della vostra rete), ma una volta finito l'SDK sarà pronto all'uso!

Se, invece, dovreste incontrare problemi o non riuscite ad installare l'SDK (a me, ad esempio, ha dato errore...) potete utilizzare il secondo metodo, quello da linea di comando. Anche in questo caso le modalità di installazione valgono per sistemi basati su Debian/Ubuntu (ancora, se avete un altro vedete qui).

Prima di tutto occorre aggiungere la linea:

deb http://scratchbox.org/debian/ hathor main

al file /etc/apt/sources.list e quidi far aggiornare i repository del sistema:

$ sudo bash -c "echo 'deb http://scratchbox.org/debian/ hathor main' >> /etc/apt/sources.list"
$ sudo apt-get update

Poi installiamoci scratchbox:

$ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-qemu scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-perl scratchbox-toolchain-host-gcc scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486  scratchbox-devkit-svn scratchbox-devkit-git scratchbox-devkit-apt-https

Una volta finito aggiungiamo il nostro username come utente scratchbox:

$ sudo /scratchbox/sbin/sbox_adduser giometti yes
$ newgrp sbox

e poi facciamo login:

$ /scratchbox/login

You dont have active target in scratchbox chroot.
Please create one by running "sb-menu" before continuing


Welcome to Scratchbox, the cross-compilation toolkit!

Use 'sb-menu' to change your compilation target.
See /scratchbox/doc/ for documentation.

[sbox-NO-TARGET: ~] >

Ora dobbiamo installarci i tool di sviluppo sia per la piattaforma X86 (quella del nostro PC), sia per la piattaforma ARM (quella dell'N900). Procediamo un passo alla volta configurando scratchbox e scaricandoci i file che ci servono per continure l'installazione:

> sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none
> sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb
> wget http://repository.maemo.org/stable/fremantle/armel/maemo-sdk-rootstrap_5.0_20.2010.36-2_armel.tgz http://repository.maemo.org/stable/fremantle/i386/maemo-sdk-rootstrap_5.0_20.2010.36-2_i386.tgz

Una volta definiti i target di lavoro (ARM e X86) possiamo iniziare ad installare il software che ci serve per lo sviluppo. Iniziamo con la piattaforma X86:

> sb-conf se FREMANTLE_X86
> sb-conf rs maemo-sdk-rootstrap_5.0_20.2010.36-2_i386.tgz
> sb-conf in -edFL
> apt-get update
> fakeroot apt-get install maemo-sdk-debug

Fatto questo dobbiamo recarci a questo link della Nokia per accettare i termini di licenza del software proprietario che ci serve (questa è la parte che mi piace di meno, avrei preferito che fosse tutto software libero... n.d.r.). Una volta finito dovremmo ottenere un codice da utilizzare nel solito file /etc/apt/sources.list come segue:

> echo 'deb http://repository.maemo.org/ fremantle/codice nokia-binaries' >> /etc/apt/sources.list

Semplicemente sostituite alla stringa codice il codice che la Nokia vi ha dato una volta accettati i termini di licenza.

Aggiorniamo i repository e quindi installiamo i pacchetti che ci servono:

> apt-get update
> fakeroot apt-get install nokia-binaries nokia-apps

Alla fine ridefiniamo la directory opt:

> rm -rf /targets/FREMANTLE_X86/opt
> mkdir /targets/FREMANTLE_X86/opt

Poi ripetiamo gli stessi passi per la piattaforma ARM:

> sb-conf se FREMANTLE_ARMEL
> sb-conf rs maemo-sdk-rootstrap_5.0_20.2010.36-2_armel.tgz
> sb-conf in -edFL
> apt-get update
> fakeroot apt-get install maemo-sdk-debug
> echo 'deb http://repository.maemo.org/ fremantle/codice nokia-binaries' >> /etc/apt/sources.list
> apt-get update
> fakeroot apt-get install nokia-binaries nokia-apps
> rm -rf /targets/FREMANTLE_ARMEL/opt
> mkdir /targets/FREMANTLE_ARMEL/opt

Fatto! Ora passiamo ad un semplice test; usiamo, per semplicità, il classico programmino «Ciao Mondo!» in C:

#include <stdio.h>

int main(int argc, char *argv[])
{
        printf("Ciao Mondo!\n");

        return 0;
}

Salviamolo nel file test.c e quindi compiliamolo per X86:

> sb-conf se FREMANTLE_X86
> make test
cc     test.c   -o test
> file test
test: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
> ./test
Ciao Mondo!

Funziona (come ovvio), ora però compiliamo per ARM:

> sb-conf se FREMANTLE_ARMEL
> rm test
> make test
cc     test.c   -o test
> file test
test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
> ./test
Ciao Mondo!

Bingo! Funziona anche questo... notate che il file è compilato per ARM ma gira ugualmente sul PC perché scratchbox utlizza QEMU per emulare il codice ARM.

Ora non ci resta che provarlo sull'N900. Basta passarlo sul cellulare con scp e quindi eseguirlo:

> scp test Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. :
Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. 's password:
test                                          100% 5075     5.0KB/s   00:00    
> ssh Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo.
Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. 's password:


BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso30+0m5) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Nokia-N900:~# ./test
Ciao Mondo!

Facile no? :)

 
 

In primo piano

Simons Voss: un mondo senza chiavi

Simons Voss: un mondo senza chiavi

Il sistema di gestione e di controllo degli accessi 3060 si presenta come un’alternativa con enormi vantaggi...
Pubblicità mirata dei prodotti

Pubblicità mirata dei prodotti

Hai un prodotto o un servizio da pubblicizzare? Fallo su consulenti-ict.it! Pubblicizzare un prodotto...
Recensioni sul Portale

Recensioni sul Portale

Hai un prodotto hardware/software o un libro riguardante uno dei temi dell'ICT? Vuoi farlo conoscere...

Offerte di lavoro

Visualizza Topic »

Eventi

Non ci sono eventi in programma
Maggio 2012
D L M M G V S
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
Giugno 2012
D L M M G V S
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Sondaggi

busyCaricamento Sondaggio...