290 likes | 400 Vues
'O-p&n, 'mO-( “)kO. Χατζήμιχαηλ Φίλιππος Ευθυμίου Μαρία Μιχαήλ Γιώργος. Ιστορική Αναδρομή - Πληροφορίες. Κατασκευαστής: OpenMoko Inc Πρώτη Επίσημη Εμφάνιση: 9 Ιουλίου 2007 Μοντέλo: OpenMoko 1973 (2007) Τρέχων Μοντέλο (δεύτερο): OpenMoko FreeRunner (2008) Στόχοι Εταιρίας:
E N D
'O-p&n, 'mO-( “)kO Χατζήμιχαηλ Φίλιππος Ευθυμίου Μαρία Μιχαήλ Γιώργος
Ιστορική Αναδρομή - Πληροφορίες Κατασκευαστής: OpenMoko Inc Πρώτη Επίσημη Εμφάνιση: 9 Ιουλίου 2007Μοντέλo: OpenMoko 1973 (2007) Τρέχων Μοντέλο (δεύτερο): OpenMoko FreeRunner (2008) Στόχοι Εταιρίας: Παραγωγή του πρώτουOpen Source / Linux BasedSmartPhone(Hardware AND Software) Επιτρέπει στον χρήστη να έχειαπόλυτοέλεγχο πάνωστο λειτουργικό και τις εφαρμογές Σημαντικές προδιαγραφές συσκευής: High resolution touch screen2.84” - 480x640 pixels 128MB SDRAM memory 256 MB integrated flash memory(expandable with microSD) microSD up to 8GB Internal GPSmodule Bluetooth 802.11 b/gWiFi 400Mhz ARM processor 2 3Daccelerometers Tri-band GSM and GPRS USB Host function 500mApower $299 Σημαντικές προδιαγραφές λογισμικού: GNU/Linux O.S – Dev. Tools 100% FOSS (Free and Open Source Software)
Κύρια Πλεονεκτήματα - Μειονεκτήματα Αρκετά φθηνό (Δωρεάν) Open source( software & hardware ) Κτισμένο απόFree and Open Source Software Cross-platform SDK Εύκολη ανάπτυξη εφαρμογών:Xρήσηδημοφιλών τεχνολογιών=>ευκολότερο, γρηγορότερο και πιο οικείο Χαμηλές απαιτήσεις σε υλικό || Ευέλικτο Υποστήριξη από μεγάλη κοινότητα(OpenMoko Wiki, forum, docs, bugzilla) Πολύ πλούσιο APΙ Πλήρης έλεγχος με πολλές δυνατότητες Υποστηρίζει: Python MySQL Perl Php sh/bash c/c++ QT Java erlang πληθώρα από εφαρμογές και δυνατότητες του Debian Linux όπως package manager vnc .. ... .... .....
Κύρια Πλεονεκτήματα - Μειονεκτήματα Δεν είναι σταθερό Πολύ αργό boot sequence Δεν είναι τόσο καλά σχεδιασμένο για κινητό τηλέφωνο Αρκετά από τα πακέτα της κοινότηταςOpenmoko δεν αναβαθμίζονται Παίρνει αρκετό χρόνο (3min+) και ακόμα περισσότερο όταν υπάρχει η SD κάρτα για να πάρει τις πρώτες πληροφορίες GPS Κάποιες εφαρμογές είναι εγκατεστημένεςσαν “light version” έτσιμειονεκτούνσε δυνατότητες σε σύγκριση με τιςαυθεντικές εκδόσεις - Το Suspend και το resume διακόπτουν τον partition table της SD κάρτας - Πολλές SIM κάρτες δεν δουλεύουν - Κακή απόδοση και αργή ταχύτητα bus του Glamo GPU του - Κακές χαμηλές συχνότητες ανταπόκρισης ήχου με χαμηλής αντίστασης ακουστικά - Η μπαταρία του δεν είναι ικανοποιητική - Δεν μπορεί να ξεκινήσει με μη φορτισμένη ή χωρίς μπαταρία - Όταν ολοκληρωθεί η φόρτιση της μπαταρίας αποφορτίζεται ακόμα και όταν είναι κλειστό
Εγκατάσταση - Τι χρειάζεται να ανακτήσω για να μπορέσω να κάνω ανάπτυξη εφαρμογών στο OpenMoko FreeRunner Για την σύνδεση: Λειτουργικό:LinuxΕπιπρόσθετο Λογισμικό: Δεν χρειάζεται Λειτουργικό:WindowsΕπιπρόσθετο Λογισμικό: - NeoRndis.inf – Device Drivers Descriptor Για να δώσεις την ικανότηταστο λειτουργικό να αξιοποιήσει το USBσαν μέσο δικτύου - Putty - Για application layer διασύνδεση Επιπρόσθετο Υλικό: Σύρμα USB (Type A Male to Type Mini-B Male) Εκτενής Οδηγίες Σύνδεσης: http://wiki.openmoko.org/wiki/USB_Networking
Εναλλακτικά Παραδείγματα Hello Murloc – Python , Python + ETK(Enlightenment Foundation Libraries) Editor Used: vi <filename> Execution: python <filename>
Δυνατότητες – WiFi – Μη επίσημος οδηγός εγκατάστασης Δημιουργούμε το αρχείο/etc/wpa_supplicant/wpa_supplicant.conf με δεδομένα: ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=1 ap_scan=1 fast_reauth=1 # Open: network={ ssid="murloc" key_mgmt=NONE priority=5 } Στο αρχείο/etc/network/interfaces κάτω από την γραμμή # Wired or wireless interfacesτο μορφοποιούμε ως εξής: ... # Wired or wireless interfaces iface eth0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf up route del default gw 192.168.0.200 iface eth1 inet dhcp ... σημείωση: Η γραμμή 'wpa-conf /etc/wpa...'πρέπει να ξεκίνα με Tab
Δυνατότητες – WiFi - Μη επίσημος οδηγός εγκατάστασης (συνέχεια) Με την εντολή: $ iwlist eth0 scan eth0 Scan completed : Cell 01 - Address: 00:0B:FD:4A:71:89 ESSID:"zephyros" Mode:Master Frequency:2.472 GHz … Quality=34/94 Signal level=-61 dBm Noise level=-95 dBm Encryption key:off Extra:bcn_int=100 ... Μπορούμε να δούμε τα ονόματακαι πληροφορίες των διαθέσιμων access points.Κρατούμε ένα όνομα για τοεπόμενο βήμα. Εδώ κρατάμε το zephyros. Ακολούθως εκτελέστε τα πιο κάτω: $ iwconfig eth0 essid "zephyros" $ ifup eth0 sed: unrecognized option `--quiet' BusyBox v1.9.1 (2008-09-04 08:23:57 CST) Usage: sed [-efinr] pattern [files...] WPA: Configuring Interface ... udhcpc (v1.9.1) started Sending discover... Sending select for 10.16.5.107... Sending select for 10.16.5.107... Sending discover... Sending select for 10.16.5.107... Lease of 10.16.5.107 obtained, ... adding dns 194.42.16.11 adding dns 194.42.16.20 adding dns 194.42.16.58 Πρέπει πάρετε παρόμοια αποτελέσματα για να λειτουργεί σωστά
Δυνατότητες – Εύκολη Διαχείρηση/Εύρεση Εφαρμογών Execution: opkg OPT<filename> OPT: install remove update Execution: opkg install <filename>
Δυνατότητες – Συνδεσιμότητα Openmoko (VNC Server και ssh) VNC Server Installation: opkg install x11vnc Execution: X11vnc VNC Client Connection: vncviewer IP:0 SSH Server Installation: Pre-Installed Execution: No need (on start daemon) SSH Client Connection: ssh user@IP
Δυνατότητες – Bluetooth (Remoko & Remoko Server) Installation & Info: ===> http://www.opkg.org/package_14.html http://www.opkg.org/package_15.html
Δυνατότητες – Εύκολη δημιουργία links (shortcuts) για οποιαδήποτε εφαρμογή Όλα τα *.desktop files βρίσκονται στο φάκελο /usr/share/applications/ και τα icons (64x64 png files) βρίσκονται στο φάκελο /usr/share/pixmaps. Παράδειγμα του murloc.desktop: +------------------------------------------------------+ [Desktop Entry] Encoding=UTF-8 Name=murloc Comment=Bring murloc up TryExec=/home/root/george/hello/rwl01.py Exec=/usr/root/george/hello/rwl01.py Icon=murloc Terminal=false Type=Application Categories=Application;Utilities; SingleInstance=true StartupNotify=true +------------------------------------------------------+
Δυνατότητες – Accelerometers Όνομα Πακέτου: gwaterpas Τόπος: Applications Δεν χρειάζεται επιπρόσθετες ρυθμίσεις
Δυνατότητες – Εφαρμογές με χρήση της βιβλιοθήκης QT (Trolltech Inc) Execution: Click b/g>Applications Execution: Click b/g>Applications
Δυνατότητες – Εύκολη Αλλαγή των Ρυθμίσεων του Openmoko Execution: Click b/g>Configuration > Conf. Panel Execution: Click Screen > Resolution
Δυνατότητες – FOSS Servers/Interpreters/Compilers Τα πιο κάτω έχουν εγκατασταθείαλλά δεν τα αξιοποιήσαμε: description (execution command) php (php) perl (perl) mysql server/client/modules (mysql*) gcc (arm-angstrom-linux-gnueabi-gcc) Java (jalimo) Υπάρχουν αλλά δεν εγκαταστάθηκαν: sqlite apache2
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory Συντόμευση στην επιφάνεια εργασίας Στον φάκελλο/usr/share/applications τοποθετήσαμε το αρχείο murloc.desktop με τα εξής περιεχόμενα: +-----------------------------------------+ [Desktop Entry] Encoding=UTF-8 Name=Murloc GPS TryExec=/home/root/george/prog/MurlocGPS.py Comment=Execute Murloc GPS Exec=/home/root/george/prog/MurlocGPS.py Icon=dialer/Dialer Terminal=false Type=Application Categories=Network;WebBrowser; +-----------------------------------------+
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory Δημιουργία παράθυρου με Python + ETK #!/usr/bin/python import etk import commands icon = etk.Image() icon.set_from_file..('/home/root/george/prog/tux.png') def exit(target): etk.main_quit() def update(target): p = `commands.getoutput..('head -n 18 /dev/ttySAC1.. | grep -v ^$ | grep GPGLL | tee coord.txt')` p = p.replace('GPGLL,','') pos1 = p.find(',N') f = p[:pos1] pos2 = p.find(',E') f2 = p[pos1+3:pos2] dynamicLabel.text=f+"N "+f2+"E" commands.getstatusoutput("wget.. \"http://xeirwn.bytefreaks.net/openmoko/ ..?longitude="+f+"&latitude="+f2+"\"")
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory (συνέχεια) Δημιουργία παράθυρου με Python + ETK exitB = etk.Button(label="Bye Bye") exitB.on_clicked(exit) updateButton = etk.Button..(label="Update Position") updateButton.on_clicked(update) staticLabel = etk.Label..(text="Your Current GPS position is:",.. alignment=(0.5, 0.5)) dynamicLabel = etk.Label..(text="Press the Button Below!!",.. alignment=(0.5, 0.5)) box = etk.VBox() box.append(exitB, etk.VBox.START,.. etk.VBox.FILL, 0) box.append(icon, etk.VBox.START,.. etk.VBox.FILL, 0) box.append(staticLabel, etk.VBox.START,.. etk.VBox.FILL, 0) box.append(dynamicLabel, etk.VBox.START,.. etk.VBox.FILL, 0) box.append(updateButton, etk.VBox.START,.. etk.VBox.FILL, 0) w = etk.Window(title="Murloc GPS",.. size_request=(300, 300), child=box) w.on_destroyed(lambda x: etk.main_quit()) w.show_all() etk.main()
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory Bash Scripts – Για εκκίνηση GPS daemon και σύνδεση WiFi (και τερματισμό τους) start.bash #!/bin/bash echo -e "GPS Start" echo "GPS_DEV=..\"/dev/ttySAC1\"" > /etc/default/gpsd /etc/init.d/gpsd restart echo 0 > /sys/class/i2c-adapter/..i2c-0/0-0073/neo1973-pm-gps.0/pwron sleep 1 echo 1 > /sys/class/i2c-adapter/i2c-0/..0-0073/neo1973-pm-gps.0/pwron stty -F /dev/ttySAC1 -echo echo -e "\t[DONE]" sleep 1 echo -e "WiFi Start\c" iwconfig eth0 essid zephyros ifup eth0 echo -e "\t[DONE]" sleep 1 stop.bash #!/bin/bash echo -e "WiFi Down\c" ifdown eth0 echo -e "\t[DONE]" sleep 1 echo -e "GPS Down\c" /etc/init.d/gpsd stop echo 0 > /sys/class/i2c-adapter/..i2c-0/0-0073/neo1973-pm-gps.0/pwron sleep 1 echo -e "\t[DONE]" sleep 1
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory PHP Website – Για σκοπούς δοκιμής της εφαρμογής <html> <body> <?php if (isset($_GET["longitude"])..&& isset($_GET["latitude"])) { echo "Current Time " ...$_SERVER['REQUEST_TIME'] ..."Coordinates: Longitude " . ..$_GET["longitude"] . "Latitude " ...$_GET["latitude"] . "!<br/>"; $file=fopen("cookies.txt","a") or..$file=fopen("cookies.txt","x"); fwrite($file,"Time " ...$_SERVER['REQUEST_TIME'] ..." Longitude " . $_GET["longitude"] ..."Latitude " . $_GET["latitude"] . "\n" ); fclose($file); } ... ... else { echo "Welcome Murloc!<br />"; echo "Following the GPS..Trajectory Log:<br /><br />"; $file=fopen("cookies.txt","r") or..$file=fopen("cookies.txt","x"); while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); echo "Bye Bye Bob<br />"; } ?> </html>
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectory Αποτέλεσμα Εκτέλεσης
Συμπεράσματα - Η ίδια η εταιρεία αποτρέπει την αγορά τουγια χρήση ως κινητό τηλέφωνο - Μπορεί να προσφέρει τρομερές δυνατότητες στους developers - Ευέλικτο και ευπροσάρμοστο σύστημα - Ο χρήστης μπορεί να έχει απόλυτο έλεγχοπάνω στο λειτουργικό και τις εφαρμογέςτου συστήματος
Ευχαριστούμε!!! Ερωτήσεις??? Όπως... Ποιο είναι το μέλλον της εταιρείας?
Βιβλιογραφία http://www.openmoko.com/ http://downloads.openmoko.org/ http://wiki.openmoko.org/wiki/ http://wiki.openmoko.org/wiki/Debian http://wiki.openmoko.org/wiki/EFL_Documentation http://wiki.openmoko.org/wiki/Neo_FreeRunner_GPS http://wiki.openmoko.org/wiki/WiFi_support_in_OpenMoko http://www.opkg.org/ http://www.opkg.org/packages/ http://en.wikipedia.org/wiki/Openmoko http://unixarea.de/openmoko.txt http://www.ukuug.org/events/openmoko/ http://seecsopenmobile.wordpress.com/ http://www.linuxdevices.com/files/article072/index.html http://www.linuxdevices.com/articles/AT9423084269.html http://www.linuxdevices.com/news/NS2986976174.html http://www.angstrom-distribution.org/repo/?pkgname=apache2 http://www.linuxtogo.org/gowiki/OpenMoko/QuestionsAndAnswers http://lews-info.blogspot.com/2008/07/open-source-openmoko-phone.html http://www.slideshare.net/improbulus/openmoko-free-your-mobile http://aprs.gids.nl/nmea/
The Murloc Says Bye Bye!!