User Tools

Site Tools


doc:appunti:hardware:freerunner_peek_poke

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:hardware:freerunner_peek_poke [2009/05/07 12:46] – created niccolodoc:appunti:hardware:freerunner_peek_poke [2009/08/19 23:02] (current) niccolo
Line 1: Line 1:
 ====== FreeRunner OpenMoko Peek & Poke ====== ====== FreeRunner OpenMoko Peek & Poke ======
  
 +===== Vibrazione e LED =====
 +
 +Per leggere/impostare lo stato di **vibrazione** e **LED**:
 +<code>
 +/sys/devices/platform/neo1973-vibrator.0/leds/neo1973:vibrator/brightness
 +/sys/devices/platform/gta02-led.0/leds/gta02-aux:red/brightness
 +/sys/devices/platform/gta02-led.0/leds/gta02-power:blue/brightness
 +/sys/devices/platform/gta02-led.0/leds/gta02-power:orange/brightness
 +</code>
 +
 +===== Carica batteria =====
 +
 +Questo è uno dei modi per verificare la **[[http://wiki.openmoko.org/wiki/Category:Battery|modalità di carica dell batteria]]**:
 +<code>
 +cat /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/chgmode
 +</code>
 +
 +**''play-only''** indica i 100 mA, **''fast''** i 500 mA.
 +
 +In genere il FreeRunner attinge solo **100 mA** dall'alimentazione esterna, in accordo agli standard. Purtroppo questo è meno di quanto consuma in condizioni operative ad es. con GPS acceso e programma di navigazione. Se collegato ad una porta //smart USB// oppure al suo alimentatore può negoziare **500 mA** oppure **1000 mA**.
 +
 +Si può **forzare l'alimentazione** a 500 mA o a 1000 mA via software. Ovviamente se il sistema elettrico non supporta questa intensità di corrente si rischia di danneggiare tutto:
 +
 +<code>
 +cat /sys/class/i2c-adapter/i2c-0/0-0073/usb_curlim
 +echo 500 > /sys/class/i2c-adapter/i2c-0/0-0073/force_usb_limit_dangerous
 +cat /sys/class/i2c-adapter/i2c-0/0-0073/usb_curlim
 +</code>
 +
 +La negoziazione viene ripetuta tutte le volte che si collega o scollega una fonte di alimentazione. Con Om2008.9 l'icona **//fast charge// a froma di saetta** avverte se sono stati attivati i 500 o 1000 mA.
 +
 +Il programma [[http://hdr.meetr.de/neo/openmoko/battery/|battery]] recensito sul [[http://wiki.openmoko.org/wiki/Forcing_fast_charge_mode#The_battery_package|wiki]] è utile per monitorare lo stato della batteria e della carica. La versione 20080721 non funziona con i kernel >= 2.6.28, è necessaria una versione modificata del sorgente **{{.freerunner:battery.py}}**.
 +
 +===== Menu programmi =====
 +
 +Per aggiungere una voce all'elenco dei **programmi disponibili** bisogna aggiungere un file **.desktop** in:
 +<code>
 +/usr/share/applications/
 +</code>
 +
 +Gli **applicativi** e le **categorie** mostrate da **matchbox** (l'interfaccia per avviare i programmi utilizzata in OpenMoko 2007.2) si configurano con opportuni file **''.desktop''**, **''.directory''** e **''Root.order''** contenuti in:
 +
 +<code>
 +/usr/share/applications/
 +/usr/share/matchbox/vfolders/
 +</code>
 +
 +Le voci che possono essere indicate in un file .desktop dovrebbero essere conformi allo [[http://standards.freedesktop.org/desktop-entry-spec/latest/|standard freedesktop]]. Tra le più utili troviamo:
 +
 +^ Name            | Nome visualizzato sotto l'icona.  |
 +^ Exec            | Comando da eseguire con eventuali argomenti.  |
 +^ Path            | Working directory dell'applicazione.  |
 +^ Icon            | Icona da usare, non è necessario né il path né l'estensione.  |
 +^ Terminal        | Se //true// il programma viene eseguito in una finestra terminale.  |
 +
 +===== Suspend mode =====
 +
 +È possibile mettere il Neo in **suspend mode**. Dovrebbe trattarsi di **suspend to RAM** (CPU e RAM vengono messi in modalità basso consumo), non di suspend to disk (ibernazione). Ad ogni modo il resume avviene in circa 2 secondi ad esempio all'arrivo di una chiamata:
 +
 +<code>
 +apm -s
 +</code>
 +
 +===== Bluetooth =====
 +
 +Attivare o disattivare il **bluetooth**:
 +
 +<code>
 +BT_POW='/sys/bus/platform/devices/neo1973-pm-bt.0/power_on'
 +BT_RESET='/sys/bus/platform/devices/neo1973-pm-bt.0/reset'
 +
 +# Enable Bluetooth
 +echo "1" > "$BT_POW"
 +echo "0" > "$BT_RESET"
 +
 +# Disable Bluetooth
 +echo "0" > "$BT_POW"
 +echo "1" > "$BT_RESET"
 +</code>
 +
 +===== Screen saver =====
 +
 +Si utilizza **''xset(1)''** per vedere le impostazioni del salvaschermo, per disabilitarlo e per ripristinare i valori di default:
 +
 +<code>
 +xset -q
 +xset s off
 +xset s default
 +</code>
 +
 +===== Cambiare tema =====
 +
 +Le impostazioni si cambiano con ''**gconftool**'' (GNOME configuration tool), tutto viene salvato in **''/home/root/.gconf/''**. Aclune impostazioni importanti si vedono con:
 +
 +<code>
 +dbus-launch gconftool-2 -a /desktop/poky/interface
 +</code>
 +
 +I temi disponibili sono in **''/usr/share/themes/''**, per impostarli:
 +
 +<code>
 +dbus-launch gconftool-2 --type string --set /desktop/poky/interface/theme Moko
 +dbus-launch gconftool-2 --type string --set /desktop/poky/interface/gtk_key_theme Moko
 +</code>
 +
 +Con **Om2008.9** - che usa Enlightenment - si può installare il pacchetto **''illume-config''**. Una funzione offerta (l'unica?) è l'aggiunta di un applet ''qwerty'' in alto a sinistra per attivare/disattivare una tastiera abbastanza comoda. Il file **''/etc/enlightenment/default_profile''** contiene il profilo usato, anche i seguenti link aggiornati con ''update-alternatives'' determinano il tema:
 +
 +  * **''/usr/share/enlightenment/data/themes/illume.edj''**
 +  * **''/usr/share/enlightenment/data/init/illume_init.edj''**
 +
 +===== Orologio e sincronizzazione NTP =====
 +
 +Per impostare correttamente l'ora di sistema devono esistere i file **''/etc/localtime''** e **''/etc/timezone''**, il primo è un link al file **''/usr/share/zoneinfo/Europe/Rome''**, mentre il secondo contiene il nome della zona. Ecco come impostare i due file:
 +
 +<code>
 +ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
 +echo "Europe/Rome" > /etc/timezone
 +</code>
 +
 +Per sincronizzare la data di sistema con un server NTP conviene installare il pacchetto **ntpclient**. Il demone rimane in esecuzione ed ogni 600 secondi contatta un server NTP. La configurazione del server NTP da uilizzare e dell'intervallo di check si effettua in **''/etc/init.d/ntpclient''**.
 +
 +L'implementazione di ''ntpclient'' ha **due gravi limitazioni**:
 +
 +  - Indicando un nome DNS invece di un indirizzo IP come server NTP, potrebbe fallire la risoluzione DNS all'avvio del servizio (ad esempio per mancanza di connettività). In tal caso **il demone non parte**.
 +  - Se l'ora di sistema differisce troppo dall'ora NTP il demone ''ntpclient'' non aggiusta l'ora di sistema, nonostante l'opzione **''-l''**. Bisogna in tal caso usare l'opzione **''-s''** che effettua l'impostazione e termina.
 +
 +A causa di queste limitazioni è inutile avere il demone sempre in esecuzione, nonostante che parta rapidamente e consumi poche risorse. Si disabilita l'avvio automatico del demone:
 +
 +<code>
 +update-rc.d -f ntpclient remove
 +</code>
 +
 +E lo sostituisce con una riga in **''/etc/crontab''** (deve essere installato il pacchetto **cron**):
 +<file>
 +*/15 * * * *       root   /sbin/ntpclient -s -i 20 -h pool.ntp.org
 +</file>
 +
 +Dopo che l'ora di sistema è sincronizzata conviene allineare anche l'orologio hardware:
 +
 +<code>
 +hwclock --utc --systohc
 +</code>
 +
 +Il programma **''hwclock''** accede al device **''/dev/misc/rtc''**, che non esite in OM2008.12 (esiste ''/dev/rtc''). Facendo lo stop del servizio (che serve in pratica a salvare l'ora di sistema nell'orologio hardware) si vede infatti il messaggio di errore:
 +
 +<code>
 +/etc/init.d/hwclock.sh stop
 +hwclock: can't open '/dev/misc/rtc': No such file or directory
 +</code>
 +
 +Per creare il link ad ogni bootstrap editare **''/etc/udev/links.conf''** e aggiungere:
 +
 +<file>
 +D misc
 +L misc/rtc      /dev/rtc
 +</file>
 +
 +Esiste anche il pacchetto **ntpdate**, ma se durante il boot la connessione internet non c'è, si nota una lunga e fastidiosa pausa prima del timeout.
 +
 +Si potrebbe associare l'esecuzione del comando al rilevamento di una connessione internet valida. Purtroppo non va bene associarla all'azione **up** dell'interfaccia **usb0**, perché questa viene comunque configurata al boot, si potrebbe intercettare il seguente evento del kernel (collegamento cavetto USB):
 +
 +<file>
 +user.info kernel: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
 +</file>
 +
 +===== Tastiera illume Terminal =====
 +
 +Per avere la tastiera Illume si devono installare i pacchetti
 +
 +  * **illume-config-illume**
 +  * **illume-keyboards-default**
 +  * **illume-keyboards-numbers**
 +  * **illume-keyboards-terminal**
 +  * **illume-theme-illume**
 +
 +Si disabilita la tastiera Qtopia editando **''/etc/X11/Xsession.d/89qtopia''** impostando
 +
 +<file>
 +export QTOPIA_NO_VIRTUAL_KEYBOARD=1
 +</file>
 +
 +Controllare anche che **''/etc/enlightenment/default_profile''** contenga
 +
 +<file>
 +E_PROFILE="-profile illume"
 +</file>
 +
 +I layout tastiera disponibili sono in ''/usr/lib/enlightenment/modules/illume/keyboards/''. Per avere **Terminal** come tastiera predefinita:
 +
 +  * Rinominare Default.kdb in Alphanumeric.kbd
 +  * Creare un link simbolico Default.kbd -> Terminal.kbd
 +  * Rimuovere la configuration cache di Enlightenment: <code>rm -rf .e/e/config/illume/</code>
 +
 +===== Tastiera predittiva in italiano =====
 +
 +A seconda che si usi la tastiera **Qtopia** oppure quella **Illume** (migliore!) i dizionario delle parole si trova in directory diverse:
 +
 +  * **''/usr/lib/enlightenment/modules/illume/dicts/Italian.dic''** per Illume
 +  * **''/opt/Qtopia/etc/dict/it_IT/words.dawg''** per Qtopia
 +
 +Per scegliere la tastiera italiana con Illume bisogna **cliccare nell'angolo in alto a sinistra** della tastiera, per Qtopia invece si edita il file ''/opt/Qtopia/etc/default/Trolltech/locale.conf''.
 +
 +Maggiori informazioni su [[http://wiki.openmoko.org/wiki/Keyboard_Debate|Keyboard Debate]].
 +
 +===== Rotazione dello schermo =====
 +
 +<code>
 +xrandr -o 0
 +xrandr -o 1
 +xrandr -o 2
 +xrandr -o 3
 +</code>
doc/appunti/hardware/freerunner_peek_poke.1241693189.txt.gz · Last modified: 2009/05/07 12:46 by niccolo