Logitech Marble FX trackball with Xorg and Hal

After the recent upgrade in ArchLinux of xorg-server from 1.4.x to 1.5.x my thrusty Logitech Marble FX trackball did not work entirely. The trackball does not have a dedicated scroll wheel, but by pressing a button, and using the trackball, you can scroll both vertical and horizontal.

In order to get the emulated scroll working again you first have to update the evdev driver (the xf86-input-evdev package), as version 2.0.7 doesn’t support the needed options.
I use the xf86-input-evdev-git PKGBUILD from aur (which depends on xkeyboard-config-git) which works fine.
Once you have build the packages and installed them (remove the conflicting packages by using pacman -Rd packagename) you will have to create a Hal fdi file, I created “/etc/hal/fdi/policy/11-x11-mouse.fdi” containing:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.mouse">
      <match key="info.product" contains="PS2++ Logitech Mouse">
        <merge key="input.x11.Protocol" type="string">ExplorerPS/2</merge>
        <merge key="input.x11_options.Buttons" type="string">7</merge>
        <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
        <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
        <merge key="input.x11_options.EmulateWheel" type="string">True</merge>
        <merge key="input.x11_options.EmulateWheelButton" type="string">8</merge>
        <merge key="input.x11_options.EmulateWheelInertia" type="string">30</merge>
        <merge key="input.x11_options.Emulate3Buttons" type="string">False</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Now shutdown X, restart hal and X and the emulated scroll whell should work just fine. I have the following output in my “/var/log/Xorg.0.log”:

(II) config/hal: Adding input device PS2++ Logitech Mouse
(**) PS2++ Logitech Mouse: always reports core events
(**) PS2++ Logitech Mouse: Device: "/dev/input/event3"
(II) PS2++ Logitech Mouse: Found 4 mouse buttons
(II) PS2++ Logitech Mouse: Found x and y relative axes
(II) PS2++ Logitech Mouse: Configuring as mouse
(**) Option "Emulate3Buttons" "False"
(II) PS2++ Logitech Mouse: Forcing middle mouse button emulation off.
(**) Option "EmulateWheel" "True"
(**) Option "EmulateWheelButton" "8"
(**) Option "EmulateWheelInertia" "30"
(**) Option "YAxisMapping" "4 5"
(**) PS2++ Logitech Mouse: YAxisMapping: buttons 4 and 5
(**) Option "XAxisMapping" "6 7"
(**) PS2++ Logitech Mouse: XAxisMapping: buttons 6 and 7
(**) PS2++ Logitech Mouse: EmulateWheelButton: 8, EmulateWheelInertia: 30, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "PS2++ Logitech Mouse" (type: MOUSE)

4 Responses to “Logitech Marble FX trackball with Xorg and Hal”

  1. Geert Says:

    glad I found your notes. Now I can scroll again :-)

  2. Henrik Says:

    Glad I could help

  3. Jarle Says:

    This fix seems to have stopped working as of Ubuntu 10.04. Any help to get it back working again is greatly appreciated!

  4. Henrik Says:

    I don’t run Ubuntu, but it might have something to do with Ubuntu 10.04 removing hal, so I think you have to go back to old school Xorg.conf :)

Leave a comment

(required)
(required) (will not be published)

(Comment moderation is in use. Please do not submit your comment twice)