Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Linux & Mobile Computing Stefano Sanna http://www.gerdavax.it Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Iniziamo con i ringraziamenti... :-) LSLUG & LUGRoma, Ninux.org & TORLUG, gli sponsor per l'organizzazione dell'evento TORLUG, per avermi gentilmente invitato :-) GULCh (Gruppo Utenti Linux Cagliari), il mio gruppo di nascita :-) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Agenda Il mercato dei dispositivi mobili e il ruolo di Linux Dispositivi Linux-based Compaq ipaq (con sostituzione firmware) Nokia 770 Internet Tablet Motorola A780, E680, A1200 MING Trolltech Greenphone Sviluppo C/C++ Python Java ME Mono Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Il mercato dei dispositivi mobili e il ruolo di Linux Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Il mercato dei dispositivi mobili Il mercato dei dispositivi mobili (telefoni cellulari, PDA, navigatori) è in forte crescita Numerosi sistemi operativi: Sistemi proprietari (Nokia OS, Motorola...) Symbian OS Microsoft Windows Mobile Palm OS Linux Savaje OS Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Un mercato in continua crescita (1) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Un mercato in continua crescita (2) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Mercato smartphone 1' trimestre 2005 Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Dispositivi Linux-based Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Dispositivi Linux-based Nativi: Sharp Zaurus Motorola E680, A780, A1200 MING Nokia 770 Internet Tablet Trolltech Greenphone (imminente!) Custom: Helio (http://tuxmobil.org/pda_linux_helio.html) Palm (VR Linux, ) ipaq (e altri PDA equipaggiati con Windows Mobile)... UMPC? Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Sharp Zaurus E' stato uno dei primi PDA equipaggiati con Linux Prima installazione standard commerciale di Personal Java! Coetaneo dell'ipaq, era equipaggiato con Qtopia, il desktop enviroment sviluppato da Trolltech su QtEmbedded Principali limiti Distribuzione scadente (molto difficile trovarlo...) Incompatibile con periferiche e accessori ipaq (che a quel tempo conosceva la sua diffusione in continua crescita) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Linux su ipaq E' senza dubbio il modo più economico per sperimentare Linux in configurazione extreme-mobile: per meno di 200 euro è possibile acquistare su ebay un palmare completo di accessori (expansion pack PCMCIA, PCCard wifi e Bluetooth, cavi) su cui fare qualche esperimento Familiar Linux è una distribuzione basata su Debian sviluppata per i palmari ipaq 36xx, 38xx, 39xx Modelli più recenti sono supportati solo parzialmente http://familiar.handhelds.org Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
OPIE e GPE Sono due potenti desktop (anzi, palmtop!) environment progettati per palmari con interfaccia pen-based Sono basati rispettivamente su KDE e GNOME Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Installazione Linux Familiar L'installazione del sistema operativo consiste in quattro fase: backup bootloader originale backup immagine Windows CE installazione bootloader Linux installazione distribuzione Avvertenze: la batteria deve essere carica e il PDA alimentato il processo di installazione non deve essere mai interrotto (l'ipaq può diventare inutilizzabile) i backup del sistema originale devono essere conservati gelosamente Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Metodi di installazione Con la base di sincronizzazione (cradle) USB o seriale: ActiveSync (Windows) SynCE (Linux) Vie rete Ethernet Wireless LAN Memoria locale Compact Flash su adattatore PCMCIA/CF Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Installazione via Compact Flash Riduce il rischio di errore dovuto a crash del PC host o di interruzione della connessione (seriale o network) Più costosa (occorre lo slot di espansione CF/PCCard e la memoria CF) Occorre comunque avere sempre l'alimentazione esterna! Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Backup totale e installazione Bootloader Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Primo avvio All'avvio viene mostrato l'arm Bootloader che permette di: Dirigire l'output di console su seriale o USB Effettuare il boot via CompactFlash Effettuare il boot dalla FlashROM Riprogrammare la FlashROM Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Installazione: preliminari Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Installazione Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Nokia 770 Primo rappresentante degli Internet Tablet! E' equipaggiato con la piattaforma Maemo, un Linux environment (2.6) basato su componenti standard open source e specializzato per dispositivi mobili E' un PDA progettato per l'accesso a servizi Internet (ma non ha funzionalità telefoniche!) E' un player per la riproduzione di contenuti multimediali A breve sara' uno spettacolare navigatore satellitare Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Specifiche Dimensioni e peso: 141 x 79 x 19 mm, 230g CPU: Texas Instruments OMAP 1710 (ARM9, 220MHz) Display: TFT 800x480 65K colori RAM: 128MB RS-MMC: 64MB (in dotazione) Connettività: USB, Bluetooth 1.2, Wifi b/g Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Nokia 770 e gli altri PDA Pro Schermo SUPERBO! Web Browser e client email di qualità desktop Facilità d'uso Supporto della community: SDK gratuito! Contro E' una piattaforma nuova: le applicazioni disponibili sono ancora poche Nessun funzionalità telefonica (non è nella sua filosofia!) A quando la versione con 256-512MB? Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Maemo Middleware: composto quasi interamente da componenti open source Linux esistenti quali glibc, bluez bluetooth stack, standard linux networking (ppp, autoip, openobex, iptables, wlan), Xserver, Xml parser, D-BUS Molti componenti son stati modificati rispetto alla versione standard per soddisfare i vincoli posti dai dispositivi handheld Hildon Application Framework: basato sulle principali tecnologie Gnome quali widgets GTK+, motore di theming, Pango per la localizzazione, Gconf e gnome VFS Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Nokia 770: risorse nel web Il sito ufficiale Nokia: http://www.nokia.com/770 La community ufficiale: http://www.maemo.org http://repository.maemo.org http://garage.maemo.org Blog: http://www.itopen.it/nokia770forum/ http://www.internettablettalk.com/ http://nokia770.com/... usate Google! :-) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Motorola A1200 E' uno spettacolare telefono cellulare basato su Qtopia Caratteristiche: CPU Intel Xscale 310MHz Touch-screen 240x320 Bluetooth Fotocamera 2Mpx Runtime Java ME Player MP3, Radio FM Non è in vendita in Europa!!! E' l'ultimo di una fortunata serie di cellulari Linuxbased: E680, A780, A760, ROCK E2... Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Trolltech Trolltech è famosa per il framework Qt, una potente libreria grafica alla base di progetti commerciali e completamente open source come KDE Qtopia equipaggia numerosi dispositivi, quali Sony Mylo, Sharp Zaurus, Motorola A780, Motorola A1200 e numerosi terminali venduti nel mercato asiatico Due edizioni: Qtopia PDA Edition Qtopia Phone Edition http://www.trolltech.com Numeri importanti: 4 milioni di device equipaggiati con Qtopia 150mila sviluppatori specializzati Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Trolltech Qtopia Piattaforma full-customizable per realizzare potenti soluzioni PDA e di telefonia cellulare basate su Linux Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
In arrivo il Greenphone! Hardware CPU Intel XScale 312 MHz PXA270 64MB RAM & 128MB Flash LCD QVGA touch-screen + keypad Broadcom BCM2121 GSM/GPRS baseband processor Mini-SD card slot, Bluetooth, porta Mini-USB Software Linux kernel 2.4.19 Qtopia Phone Edition 4.1.4 Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Il Software Development Kit Greenphone SDK Professional Components Qtopia Greenphone device + Full Qtopia P.E. source Platform binaries and header files Commercial license, Access to Trolltech support Greenphone SDK Light Components Qtopia Greenphone device + applications source code Platform binaries and header files Commercial license, No access to Trolltech support Greenphone Community SDK Components Qtopia Greenphone device + applications source code Platform binaries and header files License to develop open source software Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Sviluppo Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Sviluppo Il mondo Linux vive grazie alle community di sviluppatori: la disponibilità di strumenti completi e di facile utilizzo è condizione indispensable per avere una ricca dotazione di applicazioni, utility, driver, esperienze e supporto per gli utenti Quattro linguaggi/ambienti principali: C/C++ (nativa): Familiar, Maemo, EZX, Greenphone Python: Familiar, Maemo (Series 60?) Java ME: EZX MONO: Maemo Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
C/C++ Come in ambiente desktop, sviluppare in C/C++ permette di avere massima integrazione con il sistema operativo e con le funzionalità offerte dall'hardware Acquisire dimestichezza con l'ambiente nativo è talvolta molto oneroso... Familiar, Maemo, Qtopia hanno ambienti di sviluppo ufficiali e ben documentati. Con buona volontà si possono realizzare applicazioni complesse e guadagnare esperienza riutilizzabile in ambito desktop I device Motorola non hanno (per ora) supporto ufficiale allo sviluppo: hacking e progetti indipendenti per SDK sono le uniche risorse (molte inaccessibili o censurate...) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
opensource@motorola Malgrado non abbia (ancora) reso disponibile un tool di sviluppo per applicazioni native per i propri telefoni cellulari basati su Linux, Motorola ha lanciato un portale dedicato ai progetti open source originali e alla distribuzione delle versioni modificate del kernel e delle altre applicazioni installate sui dispositivi: Sono presenti anche risorse per Java ME, compreso l'interessantissimo testing framework Gatling. Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Python Python è un ottimo linguaggio di programmazione, utilizzato con entusiasmo da milioni di programmatori! Ha numerosi vantaggi, utili anche nel mondo mobile: velocità di sviluppo, sintassi semplice, ampia disponibilità di librerie, semplicità di binding di librerie native Primi esperimenti: Python per PalmOS e Windows CE Python in ambito mobile ha avuto realmente successo grazie a Maemo e a Python per Series 60 Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Python su Maemo Con il rilascio di Maemo 2.0 programmare in Python è ancora più semplice! L'ambiente è corredato da una ricca libreria: Python 2.4.2 e moduli, Numerical Python 23.8, Pygame 1.6, PyGTK 2.6.3, Python Hildon 0.8.6, Python GStreamer 0.10.4, Python Bluez 0.6.1, Python D-Bus 0.61, Python Osso 0.1, Python XML 0.8.4 Ecco i passi essenziali: installazione python (dal repository ufficiale) installazione xterm (dal repository ufficiale) VIA! http://pymaemo.sourceforge.net/ Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Remote programming Programmare sulla tastiera virtuale del 770 può essere scomodo: l'ideale sarebbe poter utilizzare direttamente il PC! Cosa occorre: connettere il 770 via wifi installazione dropbear (client e server SSH2) diventare root: da xterm: dbclient root@127.1 (pass: rootme) trovare l'ip locale (ifconfig wlan0) dal PC desktop: ssh root@ip_770 iniziare a programmare! :-) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Shell remota Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
File-transfer immediato L'installazione di dropbear permette il controllo remoto pressochè completo del dispositivo e facilita il trasferimento file: Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Remote programming Lo script è eseguito immediatamente sul device Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Python for Series 60 Nokia distribuisce un porting del runtime Python per i telefoni cellulari Series 60 basati su Symbian http://opensource.nokia.com/projects/pythonfors60/index.html Python per Series 60 possiede numerosi aspetti interessanti: prototipazione rapida, rapidissima! ampia libreria per accesso a Bluetooth, messaging, estensioni multimediali, networking buona comunità di sviluppatori dedicati (specializzati nello sviluppo di mobile application) e bacino potenziale enorme (tutti gli sviluppatori Python!) offre la console Bluetooth per il remote programming: Linux è davvero l'ambiente ideale! :-) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Predisposizione RFCOMM serial port server Il runtime Python installato sul telefonino si connette via Bluetooth ad un servizio del Serial Port Profile Sul PC Linux è necessario: attivare una porta rfcomm server, in ascolto su un canale predefinito: rfcomm listen NUMERO_PORTA NUMERO_CANALE pubblicare il servizio in ascolto attraverso l'utility sdptool: sdptool add --channel=numero_canale SP minicom sarà l'interfaccia verso il telefono cellulare attraverso il device /dev/rfcomm3 Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Remote programming Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Mono E' un progetto sostenuto da Novell per lo sviluppo di una implementazione open source e multipiattaforma del framework.net Supporta diversi linguaggi di programmazione e fornisce il binding per la libreria GTK (GTK#) Esiste(va) un porting per Maemo, ma purtroppo è compatibile solo con la prima versione della piattaforma; la versione per Maemo 2.0 è in fase di sviluppo Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Sviluppo Java ME Java ME è la tecnologia leader per lo sviluppo di applicazioni per dispositivi mobili: circa 1 miliardo di terminali nel mondo sono equipaggiati con una VM!!! Inizialmente Linux era tra le piattaforme meglio supportate: Sun Wireless Toolkit Nokia Developer's Suite for J2ME Improvvisamente qualcosa è cambiato: Il Wireless Toolkit 2.3beta e 2.5beta esiste solo per Windows Nokia, dopo la versione 2.2, non ha più rilasciato un toolkit per Linux (nel mentre: 2.3, 3.0, 4.0, Carbide.j...) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Curiosità... Motorola fornisce un SDK Java ME per i propri cellulari Linux-based: purtroppo è disponibile solo per Windows!!! Nokia, fortemente impegnata a sostenere Java, non ha rilasciato un runtime per il Nokia 770!!! Il Java Community Process rilascia le Reference Implementation per la configurazione CDC solo in ambiente Linux!!! Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Netbeans e Mobility Pack Attualmente lo strumento più indicato per lo sviluppo Java ME è Netbeans con Mobility Pack (anche la versione 6.0 attualmente in fase di sviluppo è compatibile con Linux) Supporto CLDC/MIDP garantito dal Wireless Toolkit 2.2 embedded In arrivo il supporto CDC (ma manca il Toolkit for CDC di Sun...) http://www.netbeans.org Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
IBM WebSphere Everyplace Micro Environment Potente ambiente di sviluppo basato sulla piattaforma Eclipse che offre supporto allo sviluppo CLDC/MIDP e CDC/PP Fornisce anche i runtime environment per le due configurazioni per Linux x86!!! Runtime scaricabili gratuitamente (evaluation): http://www.ibm.com/software/wireless/weme/ Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Conclusioni Linux si conferma una scelta tecnologica di altissimo livello anche in ambito mobile: mercato in crescita ricca dotazione di ambienti, linguaggi, dispositivi possibilità di riutilizzare competenze sul core del sistema operativo da e verso il mercato mobile Gli strumenti non bastano: ci vogliono buone idee! Spesso le idee si arenano a causa di strumenti inadeguati: Linux può essere, ancora una volta, una opportunità per le community per guidare la crescita e l'evoluzione del mercato. Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
GRAZIE! :-) Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre
Licenza Linux & Mobile Computing (Versione 1.0) (C) 2006 Stefano Sanna (gerdavax@tiscali.it) è garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della Licenza per Documentazione Libera GNU, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation. Una copia della licenza in lingua italiana è disponibile presso: http://www.softwarelibero.it/gnudoc/fdl.it.html Realizzato in ambiente Linux con OpenOffice 2.0.2 Porzioni di questa presentazione (Maemo) sono (C) 2005 Francesco Cabras e Stefano Sanna & GULCh Porzioni di questa presentazione (Linux ipaq) sono (C) 2003 Stefano Sanna & GULCh Tutti i marchi commerciali sono di proprietà dei rispettivi titolari e sono stati citati in questa presentazione a solo scopo illustrativo. Linux & Mobile Computing Stefano Sanna Linux Day 2006, Roma 28 Ottobre