# Hal + de keymap: wie bloß? [SOLVED]

## EasterParade

Hallo,

nach langem und zähem Ringen inkl. zahlreicher Mißgeschicke hat jetzt der neue xorg-server + hal Einzug gehalten.

Aber hal liest wohl das .fdi nicht.

Da hier ja anzunehmenderweise jeder dt. Tastatur Layout hat, weiss eventuell jemand Rat.

Zunächst dies: hal und dbus laufen (default runlevel); an der xorg.conf so lange gefeilt, bis der Unsinn lief; input devices sind dort nicht mehr gelistet.

Xorg.0.log

```
SNIP

(II) config/hal: Adding input device   USB Multimedia Keyboard

(II) LoadModule: "evdev"

(II) Loading /usr/lib64/xorg/modules/input//evdev_drv.so

(II) Module evdev: vendor="X.Org Foundation"

        compiled for 1.5.3, module version = 2.1.3

        Module class: X.Org XInput Driver

        ABI class: X.Org XInput driver, version 2.1

(**)   USB Multimedia Keyboard: always reports core events

(**)   USB Multimedia Keyboard: Device: "/dev/input/event4"

(II)   USB Multimedia Keyboard: Found 1 mouse buttons

(II)   USB Multimedia Keyboard: Found keys

(II)   USB Multimedia Keyboard: Configuring as keyboard

(**)   USB Multimedia Keyboard: YAxisMapping: buttons 4 and 5

(**)   USB Multimedia Keyboard: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200

(II) XINPUT: Adding extended input device "  USB Multimedia Keyboard" (type: KEYBOARD)

(**) Option "xkb_rules" "evdev"

(**) Option "xkb_model" "evdev"

(**) Option "xkb_layout" "us"

(II) config/hal: Adding input device   USB Multimedia Keyboard

(**)   USB Multimedia Keyboard: always reports core events

(**)   USB Multimedia Keyboard: Device: "/dev/input/event3"

(II)   USB Multimedia Keyboard: Found keys

(II)   USB Multimedia Keyboard: Configuring as keyboard

(II) XINPUT: Adding extended input device "  USB Multimedia Keyboard" (type: KEYBOARD)

(**) Option "xkb_rules" "evdev"

(**) Option "xkb_model" "evdev"

(**) Option "xkb_layout" "us"

(II) config/hal: Adding input device Razer Razer Diamonback Optical Mouse

(**) Razer Razer Diamonback Optical Mouse: always reports core events

(**) Razer Razer Diamonback Optical Mouse: Device: "/dev/input/event2"

(II) Razer Razer Diamonback Optical Mouse: Found 7 mouse buttons

(II) Razer Razer Diamonback Optical Mouse: Found x and y relative axes

(II) Razer Razer Diamonback Optical Mouse: Configuring as mouse

(**) Razer Razer Diamonback Optical Mouse: YAxisMapping: buttons 4 and 5

(**) Razer Razer Diamonback Optical Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200

(II) XINPUT: Adding extended input device "Razer Razer Diamonback Optical Mouse" (type: MOUSE)

```

/etc/hal/fdi/policy10-xinput-configuration.fdi

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

<!--

Section "InputDevice"

   Driver "kbd"

   Option "XkbModel" "pc105"

   Option "XkbLayout" "de"

   Option "XkbOptions" "nodeadkeys"

EndSection

-->

<deviceinfo version="0.2">

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

    <merge key="input.xkb.rules" type="string">xorg</merge>

      <merge key="input.x11_options.xkb.model" type="string">pc105</merge>

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

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

      <merge key="input.x11_options.xkb.variant" type="string">nodeadkeys</merge>

   </match>

</deviceinfo>

```

setxkbmap -print

```
$ setxkbmap -print

xkb_keymap {

        xkb_keycodes  { include "evdev+aliases(qwertz)" };

        xkb_types     { include "complete"      };

        xkb_compat    { include "complete"      };

        xkb_symbols   { include "pc+de(basic)+inet(evdev)"      };

        xkb_geometry  { include "pc(pc105)"     };

```

aber  hal-find-by-capability --capability input.keys | xargs -n 1 hal-device

```
 $ hal-find-by-capability --capability input.keys | xargs -n 1 hal-device

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

  input.x11_driver = 'evdev'  (string)

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

  info.category = 'input'  (string)

  info.subsystem = 'input'  (string)

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

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-2/2-2:1.1/input/input4/event4'  (string)

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

  info.product = '  USB Multimedia Keyboard'  (string)

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

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

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

  input.xkb.variant = ''  (string)

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

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

  input.product = '  USB Multimedia Keyboard'  (string)

  linux.subsystem = 'input'  (string)

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

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

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

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

  input.x11_driver = 'evdev'  (string)

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

  info.category = 'input'  (string)

  info.subsystem = 'input'  (string)

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

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-2/2-2:1.0/input/input3/event3'  (string)

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

  info.product = '  USB Multimedia Keyboard'  (string)

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

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

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

  input.xkb.variant = ''  (string)

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

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

  input.product = '  USB Multimedia Keyboard'  (string)

  linux.subsystem = 'input'  (string)

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

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

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

```

Tut mir Leid, dass ich damit noch komme. Das haben alle anderen sicher längst gelöst. Aber ich hatte grosse Schwierigkeiten mit dem Umstieg, vor allem, weil ich vergessen hatte, wie man die xorg.conf richtig konfiguriert, zumal ich die xorg.conf.example nehmen und auf mein SLI-System zurechtschneidern musste. Musste erst mal feststellen, dass X merkwürdige Fehlermeldungen von sich gibt, wenn man es versäumt hat, die primary device zu bezeichnen.

Die alte xorg.conf lief jahrelang, ohne dass daran herumschnipseln werden musste; entsprechend chaotisch war sie. Ich hoffe, das mit hal führt auch zu etwas Sinnvollem.

Ich entschuldige mich auch, dass ich dafür ein neues Thema aufmache. Das sieht sicher keiner gern. Viele Varianten, die ich hier gefunden habe, waren ebenso erfolglos.

Vielleicht fällt jemandem auf, was hier falsch ist?

GrussLast edited by EasterParade on Tue Apr 14, 2009 3:26 pm; edited 1 time in total

----------

## mv

 *transsib wrote:*   

> /etc/hal/fdi/policy10-xinput-configuration.fdi
> 
> ```
> <?xml version="1.0" encoding="UTF-8"?>
> 
> ...

 

Mir fallen hier mehrere Dinge auf. Das erste ist der Dateipfad, aber der ist vielleicht nur ein Typo ("/" fehlt nach "policy"). Das zweite ist, Du vermischst hier zwei verschiedene mögliche Arten der Konfiguration:

Entweder "input.xkb.model" oder "input.x11_options.XkbModel" (wobei ich gehört habe, dass in zukünftigen HAL-Versionen nur noch das zweite gehen soll). Entsprechend für alle anderen "keys".

Als drittes und Unwichtigstes: Es empfiehlt sich, als "model" ebenfalls "evdev" statt "pc105" zu wählen - der Zweck ist es ja, dass hal das Model automatisch erkennt, und dann ist es nicht zweckmäßig, fest "pc105" einzustellen, auch wenn das die im Moment angeschlossene Tastatur-Version sein sollte.

----------

## Josef.95

Hallo

 *Quote:*   

> /etc/hal/fdi/policy10-xinput-configuration.fdi 

 ist dies nur ein Tippfehler..?

bei mir schaut es zZt so aus 

```
$ cat /etc/hal/fdi/policy/10-x11-input.fdi
```

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

<deviceinfo version="0.2">

  <device>

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

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

      <merge key="input.xkb.variant" type="string">nodeadkeys</merge>

    </match>

  </device>

</deviceinfo>
```

damit soltest du zumindest ein "de" Layout erhalten.

MfG

----------

## EasterParade

 *Quote:*   

> Dateipfad, aber der ist vielleicht nur ein Typo ("/" fehlt nach "policy").

 

Ja, ein typo...

 *Quote:*   

> Das zweite ist, Du vermischst hier zwei verschiedene mögliche Arten der Konfiguration: 

 

Du hast recht. Ich werde oft blind, wenn ich zu lange an was rumgewerkelt habe. Da fallen mir die einfachsten Dinge gar nicht mehr auf.

 *Quote:*   

>  (wobei ich gehört habe, dass in zukünftigen HAL-Versionen nur noch das zweite gehen soll)

 

Das habe ich auch gelesen. Da kann man auch bald wieder am .fdi rumeditieren.

 *Quote:*   

> Als drittes und Unwichtigstes: Es empfiehlt sich, als "model" ebenfalls "evdev" statt "pc105" zu wählen

 

Zu diesem Zwecke habe ich lituxers Variante kannibalisiert von hier 

https://forums.gentoo.org/viewtopic-t-753824.html

um sicher zu gehen, dass ich nicht wieder irgendwas durcheinander bringe und siehe da, es geht.

Ich danke dir und lituxer ( warum n00b? ) herzlich, denn jetzt sieht das nach Neustart von hal so aus:

```
hal-find-by-capability --capability input.keys | xargs -n 1 hal-device

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

  input.x11_driver = 'evdev'  (string)

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

  info.category = 'input'  (string)

  info.subsystem = 'input'  (string)

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

  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-2/2-2:1.1/input/input4/event4'  (string)

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

  info.product = '  USB Multimedia Keyboard'  (string)

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

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

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

  input.xkb.variant = 'nodeadkeys'  (string)

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

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

  input.product = '  USB Multimedia Keyboard'  (string)

  linux.subsystem = 'input'  (string)

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

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

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

SNIP

```

Vielen Dank! Hoffentlich bleibt es erst mal so für eine Weile.

Gruss   :Smile: 

----------

