1 Star2 Stars3 Stars4 Stars5 Stars

Xorg 1.6 e HAL

Mi è stato chiesto perché tenessi commentata l’opzione AutoAddDevices nel file xorg.conf . Beh perché non ho avuto problemi con l’integrazione tra X e HAL (Hardware Abstraction Layer): è stato sufficiente traslare le opzioni che avevo all’interno di xorg.conf in un file XML di policy per HAL.

È più facile a farsi che a dirsi in questo caso! Vi mostro come esempio la mia configurazione del touchpad. In Xorg.conf avevo le seguenti opzioni:

Section "InputDevice"
 Driver         "synaptics"
 Identifier     "Touchpad"
 #Option        "CorePointer"
 Option         "Device"        "/dev/psaux"
 Option         "Protocol"      "auto-dev"
 #Option            "LeftEdge"      "1700"
 Option         "RightEdge"     "5300"
 #Option            "TopEdge"       "1700"
 #Option            "BottomEdge"    "4200"
 Option         "FingerLow"     "25"
 Option         "FingerHigh"    "30"
 Option         "MaxTapTime"    "180"
 Option         "MaxTapMove"    "220"
 Option         "VertScrollDelta" "100"
 Option         "MinSpeed"      "0.06"
 Option         "MaxSpeed"      "0.18"
#Option         "AccelFactor" "0.0010"
 Option     "AccelFactor"   "0.0050"   
 Option         "SHMConfig"     "on"
 Option         "Repeater"      "/dev/ps2mouse"
 Option     "HorizEdgeScroll" "false"  
 Option     "VertEdgeScroll" "true"
 #Option        "GrabEventDevice" "true"
EndSection

che sono diventate, né più né meno, il file /etc/hal/fdi/policy/11-x11-synaptics.fdi :

< ?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
    </match>
    <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 key="input.x11_options.AlwaysCore" type="string">true</merge>
       <merge key="input.x11_options.RightEdge" type="string">5300</merge>
       <merge key="input.x11_options.SHMConfig" type="string">on</merge>
       <merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
       <merge key="input.x11_options.HorizEdgeScroll" type="string">false</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>
    </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>
  </device>
</deviceinfo>

In sostanza, a parte direttive specifiche, le opzioni che a suo tempo avevo abilitato nel file di configurazione del server X sono diventate nodi di tipo stringa del file XML. In questo modo ho, per esempio, lo scrolling orizzontale disabilitato, funzionalità che trovo scomoda alquanto. Per maggiore chiarezza, facendo riferimento proprio al caso di scrolling orizzontale, quella che era

Option      "HorizEdgeScroll" "false"

è diventata

<merge key="input.x11_options.HorizEdgeScroll" type="string">false</merge>

E di qui si può procedere con le altre personalizzazioni.

Qual è il vantaggio dell’integrazione con HAL? Qualcuno dice “Nessuno, semplicemente sono state spostate le configurazioni dei device di xorg in un file XML”…
Penso invece che sia un grande passo in avanti per la modularità e l’integrazione tra le diverse componenti, inoltre, se la periferica viene riconosciuta correttamente (e accade per buona parte delle periferiche di input) non è necessario toccare neanche un singolo file di configurazione, a meno di non aver necessità di impostazioni particolari: infatti nella mia configurazione di HAL, molte delle opzioni non sono state necessarie perché riconosciute correttamente in automatico.

Ora vi saluto e spero di non aver scritto troppe cavolate :)

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>