====== FreeRunner OpenMoko Peek & Poke ======
===== Vibrazione e LED =====
Per leggere/impostare lo stato di **vibrazione** e **LED**:
/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
===== Carica batteria =====
Questo è uno dei modi per verificare la **[[http://wiki.openmoko.org/wiki/Category:Battery|modalità di carica dell batteria]]**:
cat /sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/chgmode
**''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:
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
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:
/usr/share/applications/
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:
/usr/share/applications/
/usr/share/matchbox/vfolders/
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:
apm -s
===== Bluetooth =====
Attivare o disattivare il **bluetooth**:
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"
===== Screen saver =====
Si utilizza **''xset(1)''** per vedere le impostazioni del salvaschermo, per disabilitarlo e per ripristinare i valori di default:
xset -q
xset s off
xset s default
===== Cambiare tema =====
Le impostazioni si cambiano con ''**gconftool**'' (GNOME configuration tool), tutto viene salvato in **''/home/root/.gconf/''**. Aclune impostazioni importanti si vedono con:
dbus-launch gconftool-2 -a /desktop/poky/interface
I temi disponibili sono in **''/usr/share/themes/''**, per impostarli:
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
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:
ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
echo "Europe/Rome" > /etc/timezone
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:
update-rc.d -f ntpclient remove
E lo sostituisce con una riga in **''/etc/crontab''** (deve essere installato il pacchetto **cron**):
*/15 * * * * root /sbin/ntpclient -s -i 20 -h pool.ntp.org
Dopo che l'ora di sistema è sincronizzata conviene allineare anche l'orologio hardware:
hwclock --utc --systohc
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:
/etc/init.d/hwclock.sh stop
hwclock: can't open '/dev/misc/rtc': No such file or directory
Per creare il link ad ogni bootstrap editare **''/etc/udev/links.conf''** e aggiungere:
D misc
L misc/rtc /dev/rtc
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):
user.info kernel: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
===== 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
export QTOPIA_NO_VIRTUAL_KEYBOARD=1
Controllare anche che **''/etc/enlightenment/default_profile''** contenga
E_PROFILE="-profile illume"
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: rm -rf .e/e/config/illume/
===== 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 =====
xrandr -o 0
xrandr -o 1
xrandr -o 2
xrandr -o 3