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:
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 :
<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
è diventata
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 :)





More about me...