Openmoko

1,478 views

Published on

simple presentation about Openmoko for LinuxDay2008

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,478
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Openmoko

  1. 1. NeoFreerunner
  2. 2. Caratteristiche hardware #1 Size and Weight 120.7 x 62 x 18.5 mm 133 grams Display Touch Screen 2.8quot; VGA (480x640) VGA Screen Speed ARM9 @ 400 MHz 2D/3D Graphics Acceleration GSM Tri band 850/1800/1900 MHz Tri band 900/1800/1900 MHz
  3. 3. Caratteristiche hardware #2 Power Removable 1200 mAh battery Memory 128MB SDRAM 256MB NAND Flash microSD Slot Input and Output Input and Output 2.5 mm audio jack GPS external connector
  4. 4. Caratteristiche hardware #3 Hardware Highlights Wi-Fi (802.1 1b/g) AGPS GPRS (2.5G not EDGE) Bluetooth 2.0 3axis Motion Sensors (2) Software Highlights Openmoko GNU/Linux-based 100% FOSS on CPU GNU/Linux development tools
  5. 5. Package Contents
  6. 6. Unboxing #1
  7. 7. Unboxing #2
  8. 8. Unboxing #3
  9. 9. Unboxing #4
  10. 10. Unboxing #5
  11. 11. Unboxing #6
  12. 12. Setting up the hardware
  13. 13. Buttons and Connectors
  14. 14. Distributions om2007.2 (GTK) om2008.9 (GTK + QT) FSO (FreeSmartphone.Org) SHR FDOM QT Extended (ex qtopia) Debian Gentoo Android ?!?
  15. 15. Features by distributions FSO Debian No BlueTooth No Finger Friendly No Accellerometers No Accellerometers No PIM om2007.2 QT Extended No Accellerometers No GPRS No Accellerometers
  16. 16. Dialer
  17. 17. TangoGPS e Minimo Browser
  18. 18. qtmail per gestire gli sms
  19. 19. Settings e Illume Config
  20. 20. Il boot e il Terminale
  21. 21. TangoGPS e openstreetmap.org è uno dei gps piu' diffusi (in ambito Linux) non è un navigatore usa le mappe di openstreetmap ha una comunità di utenti può usare le mappe di google maps è stabile sull'openmoko usa gpsd l'utente disegna le mappe di openstreetmap puoi condividere i tuoi tracciati gps puoi modificare eventuali errori nelle mappe aggiornamenti delle mappe in tempo reale (o quasi)
  22. 22. TangoGPS
  23. 23. Openstreetmap.org #1
  24. 24. Openstreetmap.org #2
  25. 25. Openstreetmap
  26. 26. Google Maps
  27. 27. Developer Developer Developer... Sviluppare software per l'Openmoko...
  28. 28. Linguaggi di programmazione Principali Python C/C++ Altri Perl Bash script Java BrainFuck Mono un po' quello che ti pare
  29. 29. Toolchain La toolchain precompilata fornisce: Compilatore gcc per la crosscomplile Script per la configurazione delle variabili di ambiente Script per facilitare configurazione sorgenti Script per la creazione di pacchetti opkg per l' installazione delle varie librerie necessarie
  30. 30. Installare la toolchain Scarichiamo la toolchain per architetture i686: $ wget http://downloads.openmoko.org/toolchains/openmoko-i686- arm-linux-gnueabi-toolchain.tar.bz2 oppure per X86_64: $ wget http://downloads.openmoko.org/toolchains/openmoko-i686- arm-linux-gnueabi-toolchain.tar.bz2 Scompattiamo il pacchetto in / : #cd / #tar -xjvf ~/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2
  31. 31. Esempio di ultilizzo della toolchain Grazie alla toolchain si possono portare software non ancora disponibili sul Neo Freerunner , per esempio un programma che si può compilare con la triade ./configure & make & make install si compila con le seguenti istruzioni: $ . /usr/local/openmoko/arm/setup-en $ om-conf <directory sorgenti programma> $ cd <directory sorgenti programma> $ make $ cd .. $om-make-ipkg <directory sorgenti programma>
  32. 32. Facile, no? No! Molte volte bisogna modificare gli script per la configurazione del programma e i Makefile dello stesso.
  33. 33. Porting di Powertop Powertop è un programma sviluppato da Intel grazie al quale possiamo sapere chi consuma la batteria del nostro portatile o in questo caso il nostro cellulare.
  34. 34. Procuriamoci powertop Prima di tutto scarichiamo i sorgenti di powertop : $ wget http://www.lesswatts. org/projects/powertop/download/powertop-1.10.tar.gz Scompattiamo il pacchetto: $ tar -xvzf powertop-1.9.tar.gz E ora analiziamo il Makefile
  35. 35. Modifichiamo il Makefile BINDIR=/usr/bin LOCALESDIR=/usr/share/locale MANDIR=/usr/share/man/man1 WARNFLAGS=-Wall -W -Wshadow CFLAGS?=-O1 -g ${WARNFLAGS} CC?=gcc [...] powertop: $(OBJS) Makefile powertop.h $(CC) ${CFLAGS} $(OBJS) -lncursesw -o powertop @(cd po/ && $(MAKE))
  36. 36. Modifichiamo il Makefile BINDIR=/usr/bin LOCALESDIR=/usr/share/locale MANDIR=/usr/share/man/man1 WARNFLAGS=-Wall -W -Wshadow CFLAGS?=-O1 -g ${WARNFLAGS} CC?=arm-angstrom-linux-gnueabi-gcc [...] powertop: $(OBJS) Makefile powertop.h $(CC) ${CFLAGS} $(OBJS) -lncurses -o powertop @(cd po/ && $(MAKE))
  37. 37. Installiamo le librerie necessarie Diventiamo root e inizializziamo le variabili di ambiente: # . /usr/local/openmoko/arm/environment-setup Installiamo le librerrie mancanti: # opkg-target install ncurses-dev
  38. 38. Crosscompiliamo Powertop Inizializziamo le variabili di ambiente: $ . /usr/local/openmoko/arm/setup-en Compiliamo il programma: $ cd powertop-1.10 $ make
  39. 39. Creiamo il pachetto ipkg/opkg Ora invece di dare il classico make install : $ cd .. $ om-make-ipkg powertop-1.10/ Questo produrra il pachetto pronto per essere installato sul nostro telefono: powertop-1.10_0.1_armv4t.ipk
  40. 40. Risultato finale:
  41. 41. Un esempio di sviluppo in Python Scopo: avere sul desktop del telefono un'icona per lanciare e fermare il demone gpsd . Strumenti: Python ssh vi Gimp Risultato: gpsdcontrol (ver 0.2)
  42. 42. Per lanciare o fermare gpsd bisogna lanciare: /etc/init.d/gpsd start|stop Per accendere l'antenna gps bisogna scrivere 0 o 1 dentro il file: /sys/class/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron I dati per definire l'icona stanno in: /usr/share/applications/gpsdcontrol.desktop La PNG dell'icona (80x80 pixel) sta in: /usr/share/pixmaps/gpsdcontrol.png
  43. 43. Il pacchetto finale sarà composto da 3 file: /usr/bin/gpsdcontrol.py /usr/share/pixmaps/gpsdcontrol.png /usr/share/applications/gpsdcontrol.desktop 1. l'eseguibile 2. la PNG dell'icona 3. il file per la definizione dell'icona sul desktop
  44. 44. # cat /usr/share/applications/gpsdcontrol.desktop [Desktop Entry] Name=gpsd start Comment=gpsd start and stop script Encoding=UTF-8 Version=1.0 Type=Application Exec=gpsdcontrol.py Icon=gpsdcontrol Terminal=False Categories=GTK;Application;PIM SingleInstance=true StartupNotify=true
  45. 45. root@saponettofono:~# cat /usr/bin/gpsdcontrol.py #!/usr/bin/python # # Start & Stop gpsd service from openmoko desktop # # Carlo Minucci 2008 - GPL # gecco@napodano.com http://minucci.net import string import os f = open(quot;/usr/share/applications/gpsdcontrol. desktopquot;, quot;rquot;) file_content = f.read() pezzi = string.split(file_content, 'n') f.close() state = string.split(pezzi[1], ' ') state = state[1]
  46. 46. f = open(quot;/usr/share/applications/gpsdcontrol. desktopquot;, quot;wquot;) if state == quot;startquot;: f.write (quot;quot;quot;[Desktop Entry] Name=gpsd stop Comment=gpsd start and stop scriptquot;quot;quot;) os.system(quot;/etc/init.d/gpsd startquot;) os.system(quot;echo 1 > /sys/class/i2c-adapter/i2c- 0/0-0073/neo1973-pm-gps.0/pwronquot;) elif state == quot;stopquot;: f.write (quot;quot;quot;[Desktop Entry] Name=gpsd start Comment=gpsd start and stop scriptquot;quot;quot;) os.system(quot;/etc/init.d/gpsdcontrol stopquot;) os.system(quot;echo 0 > /sys/class/i2c-adapter/i2c- 0/0-0073/neo1973-pm-gps.0/pwronquot;)
  47. 47. f.write (quot;quot;quot; Encoding=UTF-8 Version=1.0 Type=Application Exec=gpsdcontrol.py Icon=gpsdcontrol Terminal=False Categories=GTK;Application;PIM SingleInstance=true StartupNotify=truequot;quot;quot;) f.close()
  48. 48. Risultato:
  49. 49. Configurare un repository #1 Come tutte le distro anche OpenMoko ha un gestore di pacchetti basato sui repository: si chiama opkg . E' derivato da ipkg con alcune modifiche marginali. I file di configurazione dei repository sono dentro /etc/opkg Per aggiungere un nuovo feed basta creare un file con dentro le informazioni del repositori: root@saponettofono:~# cat /etc/opkg/gecco-feed.conf src/gz daily-gecco http://minucci.net/file/opkg
  50. 50. Configurare un repository #2 Inoltre va aggiunta l'apposita stringa al file /etc/opkg/arch.conf root@saponettofono:~# cat /etc/opkg/arch.conf arch all 1 arch any 6 arch noarch 11 arch arm 16 arch armv4t 21 arch fic-gta02 26 arch neo1973 31 arch om-gta02 36 arch gecco 40
  51. 51. Usare opkg opkg update (aggiorna la lista dei pacchetti) opkg upgrade (aggiorna tutti i pacchetti aggiornabili) opkg list (da la lista di tutti i pacchetti disponibili) opkg list_installed (da la lista dei pacchetti installati) opkg install nomepacchetto (installa il pacchetto) opkg install http://nomesito. org/dir/nome_0.1_all.opk (installa il pacchetto da un percorso di rete) opkg install ../tmp/nome_0.1_all.opk (installa il pacchetto da un percorso locale) opkg remove nomepacchetto (rimuove il pacchetto)
  52. 52. Difetti noti Su om2008 l'eventuale installzione di gsmd conflitta con qpe e non si riesce più a telefonare. Su om2008 installando pulseaudio o un synth vocale diverso da flite disabilita l'audio. Su om2008 a volte se accendi il telefono col cavo usb poi non funzionano i messaggi. Devi riavviare Su om2008 se lo mandi in sospensione col wifi attivo, poi devi disattivarlo riavviare il telefono altrimenti il wifi non funziona Il volume va regolato via ssh con alsamixer Se imposti il suspend automatico a volte si inceppa Se accendi il wifi dopo averlo messo in carica non funziona
  53. 53. Conclusioni domanda: quot;Io per lavoro uso spesso il telefono, mi consigliate l'acquisto dell'Openmoko?quot; risposta: quot;No!quot;
  54. 54. Community La community di openmoko sembra molto attiva. Ecco alcuni riferimenti: http://wiki.openmoko.org http://planet.openmoko.org/ http://forum.telefoninux.org/ http://lists.openmoko.org/mailman/listinfo/ http://docs.openmoko.org/trac/ http://projects.openmoko.org/
  55. 55. Ringraziamenti: openmoko.com openmoko.org eshopen.com google.it openstreetmap.org google documents flickr.com forum.telefoninux.org fanolug.org minucci.net

×