Xorg

Il primo consiglio che ho trovato in rete è la personalizzazione del server X per sfruttare al meglio le opzioni della scheda video a disposizione e del touchscreen. Ecco una breve descrizione delle soluzioni che ho adottato.

Scelta del driver

Di default il server grafico installato con l'<em>instal.sh</em> è <em>fbdev</em>. È però possibile installare il più prestante <strong><em>xglamo</em></strong>:

aptitude install xserver-xorg-video-glamo

Quindi ricordiamoci di modificare <em>/etc/X11/xorg.conf</em> alla sezione <em>driver</em>:

Section "Device"
  Identifier      "Configured Video Device" <<BR>>
  Driver          "glamo" <<BR>>
EndSection

<p>Quando si utilizza <em>glamo</em> prestate attenzione alle seguenti:</p> <ul> <li>Per regolare la dimensione dei fonts inserire l'opzione <em>-dpi 96</em> nel desktop launcher. Ad esempio per <em>nodm</em> editare il file <em>/etc/default/nodm</em> con l'opzione:NODM_X_OPTIONS="-nolisten tcp -dpi 96"</li> <li>Sarà possibile usare xrandr per ruotare lo schermo.</li> <li>Non è possibile usare in <em>xorg</em> la direttiva "Option Rotate" per ruotare lo schermo.</li> </ul>

Right click

È possibile effettuare il <strong>right click</strong> simulando virtualmente il terzo tasto del mouse. In pratica, quando di terrà premuto a lungo lo schermo, il cellulare interpreterà il comando come se fosse il tasto destro del mouse. Invece un tap rapido sarà sempre interpretato come un click normale.
Per prima cosa installiamo il driver necessario:

aptitude install xserver-xorg-input-tslib

Quindi modifichiamo <em>/etx/X11/xorg.conf</em> abilitando il modulo:

Section "InputDevice"
         Identifier      "Configured Touchscreen"
         Driver          "tslib"
         Option          "CorePointer"           "true"
         Option          "SendCoreEvents"        "true"
         Option          "Device"           "/dev/input/event1"
         Option          "Protocol"              "Auto"
         Option          "Width"                 "480"
         Option          "Height"                "640"
         Option          "EmulateRightButton"    "1"
EndSection

Ed infine carichiamo il modulo necessario per interagire con le GTK al momento dell'avvio del server grafico editando il file <em>~/.xsession</em>:

export GTK_MODULES=libgtkstylus.so &

Per maggiori informazioni: <a href="http://gentoo.mindzoo.de/index.cgi/wiki/X">gentoo.mindzoo.de</a>, openmoko@mail-archive.

Ecco invece ora l'esempio dell'InputDevice section di xorg.conf di default:

cat /etc/X11/xorg.conf
Section "InputDevice"
        Identifier      "Configured Touchscreen"
        Driver          "tslib"
        Option          "CorePointer"           "true"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/input/event1"
        Option          "Protocol"              "Auto"
EndSection

Calibrazione schermo

In teoria non dovrebbe essere affatto necessario, però nel caso...

Editando manualmente i parametri in <tt>/etc/pointercal</tt>:

versione gta01:
echo -67 36365 -2733100 -48253 -310 45219816 65536 > /etc/pointercal

versione gta02:
echo  -67 38667 -4954632 -51172 121 46965312 65536 > /etc/pointercal

Oppure tramite una utility:

apt-get install libts-bin
TSLIB_CALIBFILE=/etc/pointercal TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CONSOLEDEVICE=none ts_calibrate

Infine è necessario riavviare l'<strong>x server</strong>.

Sospensione della scheda video

Di default è abilitato, come in quasi tutti i computer, la sospensione automatica della scheda video al fine del risparmio energetico. Se, come me, avete intenzione di utilizzare l'OpenMoko tramite il FSO-Freesmartframwork allora è possibile disattivarla siccome causa di possibili conflitti e superflua.

Per impostare i comandi manualmente utilizzare:

xset -display :0.0 q    <- per avere informazioni
xset -display :0.0 dpms 0 0 0    <- imposta a "infinito" il tempo di sospensione della scheda video
xset -display :0.0 -dpms       <- disabilita il dpms

Per rendere le modifiche permanenti inserirle all'interno dell'Xorg.conf come da esempio:

Section “ServerFlags”
Option “blank time” “0″
Option “standby time” “0″
Option “suspend time” “0″
Option “off time” “0″
Option “dpms” “false”
EndSection 

Fonti: randombugs.com

Orientamento dello schermo

Oltre alla possibilità di gestire l'orientamento dello schermo direttamente tramite le opzioni del DE (ad esempio se si utilizza illumen) è possibile utilizzare, anche coi i driver <em>glamo</em>, il seguente comando:

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

Per metodi più sofisticati (automatismi con il sensore di posizione, tasti, etc.) consiglio di riferirsi al <a href="http://wiki.openmoko.org/wiki/Rotate">wiki.openmoko.org</a>.

Display Manager

Considerate le dimensioni dello schermo ed il tipo di device, ho preferito piuttosto che utilizzare il solito kdm/gdm o un improbabile avvio da shell (manca la tastiera...) di eseguire l'avvio automatico all'ambiente grafico. Questo è possibile utilizzando quale <a href="http://en.wikipedia.org/wiki/X_display_manager_%28program_type%29#Some_implementations">Display Manager</a> <strong>nodm</strong>. Ovviamente rimane una critica riguardo alla sicurezza: cosa potrebbe accadere se il telefono dovesse finire nelle mani sbagliate? Al momento però si è optato per la semplicità.
Dopo averlo installato è necessario nel file di configurazione <em>/etc/default/nodm</em> definire i parametri di login, ad esempio:

# nodm configuration

# Set NODM_ENABLED to something different than 'false' to enable nodm
NODM_ENABLED=true

# User to autologin for
NODM_USER=pincopallo

# xinit program
NODM_XINIT=/usr/bin/xinit

# First vt to try when looking for free VTs
NODM_FIRST_VT='3'

# X session
NODM_XSESSION=/etc/X11/Xsession

# Options for the X server
NODM_X_OPTIONS='-nolisten tcp'

# If an X session will run for less than this time in seconds, nodm will wait an
# increasing bit of time before restarting the session.
NODM_MIN_SESSION_TIME=60

A questo punto permettiamo anche ad un utente normale (il nostro pincopallo) di avviare il server grafico. Per fare ciò dobbiamo abilitarlo tramite l'opzione di controllo presente in <em>etc/X11/Xwrapper.config</em>, modificandola nel seguente modo:

llowed_users=anybody

A questo punto rimane solo da personalizzare il Desktop Manager, ma per questo rinvio al capitolo successivo. Se avete fretta di avere un risultato immediatamente tangibile copiate pure lo script di avvio della sessione grafica come già presente in <em>/root</em>:

cp /root/.xsession home/pincopallo/
chown pincopallo:pincopallo home/pincopallo/.xsession

MyWiki: GTA/Xorg (last edited 2015-03-13 19:15:23 by risca)