Xorg, ma che mi combini?

- How-To

Leggendo il forum di ArchLinux, come pure i vari messaggi d’aiuto inviati sul canale #archlinux, ci si può rendere subito conto che il rilascio del nuovo Xorg 1.5.3 ha portato prevalentemente crisi nel mondo ArchLinux e Linux in generale.

Questo fenomeno di panico generale è dovuto alla nuova feature di hotplugging, con la quale Xorg si occupa solamente di gestire l’output a video; l’input non viene più gestito dai vecchi driver, ma attraverso il nuovo driver evdev Xorg delega tutto ciò che riguarda mouse, tastiera e touchpad ad HAL.

In questo modo viene reso possibile il riconoscimento “a caldo” di parecchi dispositivi come tastiere o mouse particolari, ma di contro possiamo accorgerci di come una configurazione minimale risenta tantissimo di questa nuova peculiarità: le strade possibili sono due, dunque.

La prima consiste nell’aggiungere in coda al nostro xorg.conf le seguenti righe:

Section "ServerFlags"
Option "AutoAddDevices" "False"
EndSection

con le quali possiamo disabilitare l’hotplugging.

Dal canto mio, però, non posso che consigliare la seconda via, ovvero configurare per benino hal in quanto, essendo presente la funzione di hotplugging, non vedo motivi per non usarla; e seguendo questo semplice procedimento, ci accorgeremo che la configurazione di HAL per quanto riguarda l’input è relativamente semplice.

Andiamo ad editare /etc/hal/fdi/policy/10-keymap.fdi, con qualunque editor, sia esso gedit, nano, vi o emacs; all’interno di questo file, per ora vuoto, incolliamo tutto ciò:

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keymap">
<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
</match>

<match key="info.capabilities" contains="input.keys">
<merge key="input.xkb.rules" type="string">base</merge>

<!-- If we're using Linux, we use evdev by default (falling back to
keyboard otherwise).
<merge key="input.xkb.model" type="string">kbd</merge>-->
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.xkb.model" type="string">evdev</merge>
</match>
<merge key="input.xkb.layout" type="string">it</merge>
</match>
</device>
</deviceinfo>

Salviamo, riavviamo il sistema (per riavviare in modo facile sia HAL che Xorg), e andiamo a spiegare cosa dicono le righe appena incollate: quello proposto da me è semplicemente un file di esempio per far funzionare, almeno in partenza, la tastiera, senza incappare in brutti problemi di localizzazione.

Sia chiaro, quelle righe postate poco sopra non sono la soluzione a tutti i mali; anzi, è raccomandato da parte mia analizzarne il contenuto e ottimizzare la configurazione per quanto riguarda il proprio hardware.

Con il nuovo Xorg è cambiata anche la maniera di gestire il touchpad, che viene gestito sempre attraverso il nostro amatissimo/odiatissimo (fate vobis, dipende dai punti di vista) HAL. Anche per il touchpad bastano poche righe nell’apposito file /etc/hal/fdi/policy/11-x11-synaptics.fdi, anch’esso da editare con l’editor di testo puro che preferiamo. Le righe che renderanno il touchpad funzionante al meglio, con scrolling laterale abilitato e tap-click, sono queste:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<match key="info.product" contains="Synaptics TouchPad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Arbitrary options can be passed to the driver using
the input.x11_options property since xorg-server-1.5. -->
<!-- EXAMPLE:
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-->
</match>
<!--     <match key="info.product" contains="AlpsPS/2 ALPS">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="appletouch">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="bcm5974">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>-->
<!--
<merge key="input.x11_options.touchpadoff" type="string">0</merge>
<merge key="input.x11_options.shmconfig" type="string">on</merge>-->
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">2</merge>
<merge key="input.x11_options.TapButton3" type="string">3</merge>
<merge key="input.x11_options.protocol" type="string">event</merge>
<merge key="input.x11_options.vertedgescroll" type="string">true</merge>
<merge key="input.x11_options.horizedgescroll" type="string">true</merge>
<merge key="input.x11_options.RightEdge" type="string">5300</merge>
<merge key="input.x11_options.LeftEdge" type="string">1700</merge>
<merge key="input.x11_options.BottomEdge" type="string">4200</merge>
<merge key="input.x11_options.TopEdge" type="string">1700</merge>
<!--<merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge> -->
<merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
</match>
</device>
</deviceinfo>

Ovviamente, cancelliamo le righe che riguardano lo scrolling se non abbiamo un touchpad che supporta lo scrolling laterale.

E dopo la piccola guida su come raccapezzarsi nel nuovo metodo di input di Xorg, andiamo a dare anche qualche critica.

C’è chi amava la configurazione statica attraverso Xorg.conf, c’è chi odiava questo file pieno di righe incomprensibili ai più; io dico la mia, avendo avuto un rapporto con il file xorg.conf di tipo odi et amo.

Apprezzo molto il nuovo metodo di input. In questo periodo mi sto occupando della diffusione di GNU/Linux verso l’utenza di massa, e questo non è esattamente il modo giusto per portare il pinguino nelle case degli italiani: una delle cose di cui l’utente medio è spaventato è l’editing dell’xorg.conf, o di altri file. Diciamo pure che ritengo queste nuove modifiche molto neutrali, da questo punto di vista, nel senso che il niubbo completo non troverebbe molta differenza tra il non capire nulla di xorg.conf e il non capire nulla dei file di configurazione di HAL. Credo che però sviluppando una buona GUI che si occupi di togliere, inserire e cambiare le linee nei due file che abbiamo editato precedentemente, possa essere un buon passo per far avvicinare l’utente medio al mondo del pinguino, senza dover per forza fargli usare una riga di comando.

Un plauso speciale a tutti coloro che scrivono di ArchLinux e che sono aggregati sul Planet, i quali hanno analizzato la nuova struttura di Xorg prima di me, hanno tratto le debite conclusioni e fatto qualche simil-guida. Da tutti i loro post ho preso spunto per scrivere il mio, che in qualche modo è solo una somma di cose già dette, più qualche piccola aggiunta personale.

  • http://www.polslinux.wordpress.com paolo

    io invece ero per il classico xorg.conf!

    mi sta un po’ qua sto metodo….anche perchè il mio touchpad non è più quello di una volta :(

  • http://www.polslinux.wordpress.com paolo

    io invece ero per il classico xorg.conf!

    mi sta un po’ qua sto metodo….anche perchè il mio touchpad non è più quello di una volta :(

  • http://pierloz.com pierluigi

    eh, dopo aver rinviato il “pacman -Syu” per qualche giorno, 48 ore fa mi son deciso a mettere da parte la pigrizia e combattere con questo nuovo xorg.

    Vabbè, ho buttato mezz’ora di sonno per passare alla configurazione con hotplug, funziona circa come prima.
    Il touchpad ha una sensibilità un po’ diversa.
    Copiare i valori che avevo in precedenza nei nuovi file di hal non è servito a molto, anzi ho dovuto ritoccarli.

    Pazienza, mi son detto, l’evoluzione passa per un po’ di fatica :)

  • http://pierloz.com pierluigi

    eh, dopo aver rinviato il “pacman -Syu” per qualche giorno, 48 ore fa mi son deciso a mettere da parte la pigrizia e combattere con questo nuovo xorg.

    Vabbè, ho buttato mezz’ora di sonno per passare alla configurazione con hotplug, funziona circa come prima.
    Il touchpad ha una sensibilità un po’ diversa.
    Copiare i valori che avevo in precedenza nei nuovi file di hal non è servito a molto, anzi ho dovuto ritoccarli.

    Pazienza, mi son detto, l’evoluzione passa per un po’ di fatica :)

  • http://dottorblaster.it/ Bl@ster

    @paolo: Mah, a me non ha fatto nè bene nè male. Devo rifinire anche il file della tastiera, che ora come ora alcune funzioni speciali, anche se funzionanti, fanno una sorta di doppio mestiere.

    @pierluigi: Certamente, comunque io nel post non l’ho detto ma penso che poi con l’andar del (poco) tempo chi rimane senza hotplugging sarà escluso da parecchie feature ;)
    Adesso Xorg può abusare di hal :P

  • http://www.dottorblaster.it Bl@ster

    @paolo: Mah, a me non ha fatto nè bene nè male. Devo rifinire anche il file della tastiera, che ora come ora alcune funzioni speciali, anche se funzionanti, fanno una sorta di doppio mestiere.

    @pierluigi: Certamente, comunque io nel post non l’ho detto ma penso che poi con l’andar del (poco) tempo chi rimane senza hotplugging sarà escluso da parecchie feature ;)
    Adesso Xorg può abusare di hal :P

  • telperion

    Ma gli costava tanto inserire un programmino da shell che generava, previo input a domande e lettura dell’xorg.conf, i necessari file .fdi per le periferiche in uso?
    A volte mi sembra che a qualcuno manchi …
    Io comunque disattivo hotplugging per me di nessuna utilità, la tastiera e il mouse quelli sono, e non ho alcuna necessità di attaccarne altri a caldo.
    Boh boh e triplo boh.

    Ah anche un tool decente (a riga di comando) per configurare risoluzione e frequenze del monitor non farebbe poi cosi schifo.

  • telperion

    Ma gli costava tanto inserire un programmino da shell che generava, previo input a domande e lettura dell’xorg.conf, i necessari file .fdi per le periferiche in uso?
    A volte mi sembra che a qualcuno manchi …
    Io comunque disattivo hotplugging per me di nessuna utilità, la tastiera e il mouse quelli sono, e non ho alcuna necessità di attaccarne altri a caldo.
    Boh boh e triplo boh.

    Ah anche un tool decente (a riga di comando) per configurare risoluzione e frequenze del monitor non farebbe poi cosi schifo.