o-p&n, 'mo-( “)ko
DESCRIPTION
'O-p&n, 'mO-( “)kO. Χατζήμιχαηλ Φίλιππος Ευθυμίου Μαρία Μιχαήλ Γιώργος. Ιστορική Αναδρομή - Πληροφορίες. Κατασκευαστής: OpenMoko Inc Πρώτη Επίσημη Εμφάνιση: 9 Ιουλίου 2007 Μοντέλo: OpenMoko 1973 (2007) Τρέχων Μοντέλο (δεύτερο): OpenMoko FreeRunner (2008) Στόχοι Εταιρίας: - PowerPoint PPT PresentationTRANSCRIPT
'O-p&n, 'mO-( “)kO'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 memory256 MB integrated flash memory
(expandable with microSD)microSD up to 8GB
Internal GPS moduleBluetooth
802.11 b/g WiFi400Mhz ARM processor2 3D accelerometersTri-band GSM and GPRS
USB Host function 500mA power$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 managervnc..............
Κύρια Πλεονεκτήματα - Μειονεκτήματα
Δεν είναι σταθερό
Πολύ αργό 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>
Δημιουργούμε το αρχείο/etc/wpa_supplicant/wpa_supplicant.conf
με δεδομένα:
ctrl_interface=/var/run/wpa_supplicantctrl_interface_group=0
eapol_version=1ap_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 dhcpwpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
up route del default gw 192.168.0.200iface eth1 inet dhcp
...
σημείωση: Η γραμμή 'wpa-conf /etc/wpa...'πρέπει να ξεκίνα με Tab
Δυνατότητες – WiFi – Μη επίσημος οδηγός εγκατάστασης
Με την εντολή:
$ iwlist eth0 scaneth0 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.11adding dns 194.42.16.20adding dns 194.42.16.58
Πρέπει πάρετε παρόμοια αποτελέσματαγια να λειτουργεί σωστά
Δυνατότητες – WiFi - Μη επίσημος οδηγός εγκατάστασης (συνέχεια)
Δυνατότητες – Εύκολη Διαχείρηση/Εύρεση Εφαρμογών
Execution: opkg OPT<filename>OPT: install remove update
Execution: opkg install <filename>
Δυνατότητες – Συνδεσιμότητα Openmoko (VNC Server και ssh)
VNC ServerInstallation:
opkg install x11vnc
Execution:X11vnc
VNC ClientConnection:
vncviewer IP:0
SSH ServerInstallation:
Pre-Installed
Execution:No need
(on start daemon)
SSH ClientConnection:
ssh user@IP
Δυνατότητες – Bluetooth (Remoko & Remoko Server)
Installation & Info: ===> http://www.opkg.org/package_14.htmlhttp://www.opkg.org/package_15.html
Όλα τα *.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
+------------------------------------------------------+
Δυνατότητες – Εύκολη δημιουργία links (shortcuts) για οποιαδήποτε εφαρμογή
Δυνατότητες – Accelerometers
Όνομα Πακέτου:gwaterpas
Τόπος:Applications
Δεν χρειάζεται επιπρόσθετες ρυθμίσεις
Δυνατότητες – Advanced Text Editor (Leafpad)
Δυνατότητες – Εφαρμογές με χρήση της βιβλιοθήκης 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
Τα πιο κάτω έχουν εγκατασταθείαλλά δεν τα αξιοποιήσαμε:
description (execution command)
php (php)perl (perl)
mysql server/client/modules (mysql*)gcc (arm-angstrom-linux-gnueabi-gcc)
Java (jalimo)
Υπάρχουν αλλά δεν εγκαταστάθηκαν:
sqliteapache2
Δυνατότητες – FOSS Servers/Interpreters/Compilers
Στον φάκελλο/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Συντόμευση στην επιφάνεια εργασίας
#!/usr/bin/python
import etkimport 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 (συνέχεια)Δημιουργία παράθυρου με Python + ETK
start.bash
#!/bin/bashecho -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 1echo 1 > /sys/class/i2c-adapter/i2c-0/
..0-0073/neo1973-pm-gps.0/pwronstty -F /dev/ttySAC1 -echo
echo -e "\t[DONE]"sleep 1
echo -e "WiFi Start\c"iwconfig eth0 essid zephyros
ifup eth0echo -e "\t[DONE]"
sleep 1
stop.bash
#!/bin/bashecho -e "WiFi Down\c"
ifdown eth0echo -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 1echo -e "\t[DONE]"
sleep 1
Παράδειγμα – Πρόγραμμα Καταγραφής GPS trajectoryBash Scripts – Για εκκίνηση GPS daemon και σύνδεση WiFi (και τερματισμό τους)
<html><body>
<?phpif (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 trajectoryPHP Website – Για σκοπούς δοκιμής της εφαρμογής
Παράδειγμα – Πρόγραμμα Καταγραφής 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/
Σύγκριση ...
... (συνέχεια)
Bye Bye!!