Table of Contents

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 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 battery recensito sul 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 battery.py.

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 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:

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:

  1. 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.
  2. 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

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:

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:

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 Keyboard Debate.

Rotazione dello schermo

xrandr -o 0
xrandr -o 1
xrandr -o 2
xrandr -o 3