# Hal und Lirc IR Remote Control

## R.Aven

Ich habe sie tder Umstellung auf HAL/evdev das Problem, dass sich der X-Server immer alle input devices einheimst. Was heißt, dass ich meinen DVB Stick nicht mehr als Fernbedienung nutzen kann, da diese als Tastatur erkannt wird.

Nach einigem Lesen bin ich auf folgende Lösung gestoßen:

```
<?xml version="1.0" encoding="utf-8"?>

<deviceinfo version="0.2">

    <device>

            <match key="info.product" string="IR-receiver inside an USB DVB receiver">

                <merge key="info.ignore" type="bool">true</merge>

            </match>

    </device>

</deviceinfo>

```

Dies als *.fdi in /etc/hal/fdi/policy abgespeichert und via "hal-find-by-capability --capability input | xargs -I{} hal-device {}" geschaut, ob der entsprechende Eintrag übernommen wurde. Supi dachte ich mir, bis ich mittels "xinput list" festellen durfte, dass die Fernbedieung weiterhin als Eingabegerät erkannt wurde:

```
# xinput list

[...]

"IR-receiver inside an USB DVB receiver"   id=5   [XExtensionKeyboard]

   Num_keys is 248

   Min_keycode is 8

   Max_keycode is 255

```

```
# hal-find-by-capability --capability input | xargs -I{} hal-device {}

udi = '/org/freedesktop/Hal/devices/usb_device_7ca_8150_200025202442000_logicaldev_input'

  input.device = '/dev/input/event6'  (string)

  linux.subsystem = 'input'  (string)

  linux.device_file = '/dev/input/event6'  (string)

  info.ignore = true  (bool)

  input.product = 'IR-receiver inside an USB DVB receiver'  (string)

  input.x11_options.XkbModel = 'evdev'  (string)

  info.subsystem = 'input'  (string)

  input.x11_options.XkbLayout = 'de'  (string)

  info.product = 'IR-receiver inside an USB DVB receiver'  (string)

  info.udi = '/org/freedesktop/Hal/devices/usb_device_7ca_8150_200025202442000_logicaldev_input'  (string)

  info.addons.singleton = { 'hald-addon-input' } (string list)

  input.originating_device = '/org/freedesktop/Hal/devices/usb_device_7ca_8150_200025202442000'  (string)

  info.category = 'input'  (string)

  linux.sysfs_path = '/sys/class/input/input14/event6'  (string)

  info.capabilities = { 'input', 'input.keys', 'button' } (string list)

  input.xkb.rules = 'base'  (string)

  info.parent = '/org/freedesktop/Hal/devices/usb_device_7ca_8150_200025202442000'  (string)

  input.xkb.model = 'evdev'  (string)

  input.xkb.layout = 'de'  (string)

  input.xkb.variant = ''  (string)

  linux.hotplug_type = 2  (0x2)  (int)

  input.x11_driver = 'evdev'  (string)

```

Das Problem scheint in der standardmäßigen 10-x11-input.fdi Konfiguration zu liegen, die trotz des ignore Eintrages evdev nutzt, um das Gerät ins System einzubinden:

```
cat 10-x11-input.fdi

<?xml version="1.0" encoding="utf-8"?>

<deviceinfo version="0.2">

  <device>

    <!-- Mice -->

    <match key="info.capabilities" contains="input.mouse">

      <!-- Set driver to "evdev" if on Linux, otherwise use "mouse" -->

      <merge key="input.x11_driver" type="string">mouse</merge>

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

        <merge key="input.x11_driver" type="string">evdev</merge>

      </match>

      <!-- Logitech devices -->

      <match key="@input.originating_device:usb.vendor_id" int="0x46d">

        <!-- MX Revolution (and others) -->

        <match key="@input.originating_device:usb.product_id" int_outof="0xc50e;0xc518;0xc51a">

          <!-- Fix tilt wheel directions -->

          <merge key="input.x11_options.RelHWHEELOptions" type="string">invert</merge>

        </match>

      </match>

    </match>

    <match key="info.capabilities" contains="input.mouse">

      <merge key="input.x11_driver" type="string">mouse</merge>

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

        <merge key="input.x11_driver" type="string">evdev</merge>

      </match>

    </match>

    <match key="info.capabilities" contains="input.keys">

      <!-- Set driver to "evdev" if on Linux, otherwise use "keyboard" -->

      <merge key="input.x11_driver" type="string">keyboard</merge>

      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"

             string="Linux">

        <merge key="input.x11_driver" type="string">evdev</merge>

        <merge key="input.x11_options.XkbModel" type="string">evdev</merge>

      </match>

      <!-- Choose layout -->

      <merge key="input.xkb.layout" type="string">de</merge>

      <merge key="input.x11_options.XkbLayout" type="string">de</merge>

    </match>

  </device>

</deviceinfo>

```

Weiß jemand evtl Rat oder kann mir einen Hinweis geben, wie ich verhindern kann, dass die Standardeingabekonfiguration auf das IR Device angewendet wird?

Bin über jeden noch so kleinen Strohhalm dankbar, da ich seit nunmehr Ewigkeiten versuche das Dingen zum Laufen zu bewegen.

----------

## furanku

Guck mal ob Dir die Umstellung auf inputlircd hilft.

----------

## R.Aven

 *furanku wrote:*   

> Guck mal ob Dir die Umstellung auf inputlircd hilft.

 

Hmm, im verlinkten Beitrag wird exakt mein Problem beschrieben. Sieht also vielversprechend aus. Werde es morgen einmal ausprobieren. Danke.

----------

