Sie sind nicht angemeldet.

[gelöst] Hal evdev X.org

1

28.12.2008, 16:12

Hal evdev X.org

Hallo Leute.
Ich habe vor kurzem mein System komplett auf Testing umgestellt. Es fuktioniert eigentlich auch alles. Nur die Tastatur ist jetzt auf Englisch.

Durch googeln habe ich erfahren, dass sich Hal um die Eingabegeraete kuemmert und nicht mehr die xorg.conf. Also dort alles auskommentiert, was mit Tastatur oder Maus zu tun hat.

Was muss ich aendern um die Tastatur auf Deutsch zu kriegen.

Tastatur -> Logitech Internet 350 Keyboard
Maus -> ImExPS/2 Logitech Wheel Mous

Hier die /etc/hal/fdi/policy/10-x11-input.fdi

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
	<!-- FIXME: Support tablets too. -->
	<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.keymap">
  	<append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
	</match>

	<match key="info.capabilities" contains="input.keys">
  	<merge key="input.xkb.rules" type="string">base</merge>

  	<!-- If we're using Linux, we use evdev by default (falling back to
       	keyboard otherwise). -->
  	<merge key="input.xkb.model" type="string">keyboard</merge>
  	<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
         	string="Linux">
    	<merge key="input.xkb.model" type="string">evdev</merge>
  	</match>

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


	<!-- 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>

  </device>
</deviceinfo>


Meine Tastatur hat auch Multimedia-Tasten. Das moechte ich dann mit keytouch versuchen.

Hier noch cat /proc/bus/input/devices:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=kbd event0 
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0006 Version=0056
N: Name="ImExPS/2 Logitech Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input1
U: Uniq=
H: Handlers=mouse0 event1 
B: EV=7
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=143

I: Bus=0019 Vendor=0000 Product=0002 Version=0000
N: Name="Power Button (FF)"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/class/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button (CM)"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/class/input/input3
U: Uniq=
H: Handlers=kbd event3 
B: EV=3
B: KEY=100000 0 0 0

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »eddi1983« (31.12.2008, 15:36)


2

28.12.2008, 16:56

Also meine Multimedia Tasten steuer ich über lineakd läuft eigentlich wunderbar.

englische Tastatur!

Ich kann mich auch Teuschen aber wird dass nicht hier festgelegt?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# /etc/conf.d/keymaps

# Use KEYMAP to specify the default console keymap.  There is a complete tree
# of keymaps in /usr/share/keymaps to choose from.

KEYMAP="de-latin1"


# Should we first load the 'windowkeys' console keymap?  Most x86 users will
# say "yes" here.  Note that non-x86 users should leave it as "no".

SET_WINDOWKEYS="no"


# The maps to load for extended keyboards.  Most users will leave this as is.


EXTENDED_KEYMAPS="backspace keypad euro"


# Tell dumpkeys(1) to interpret character action codes to be
# from the specified character set.
# This only matters if you set UNICODE="yes" in /etc/rc.conf.
# For a list of valid sets, run `dumpkeys --help`

DUMPKEYS_CHARSET=""
Phenom X4 9550
Gigabyte GA-MA770-UD3
Gentoo 64 Bit Stable
8 GB Ram
Audigy 2 Zs
Geforce 9800 GTX
VDR
Hauppauge Nexus-S Rev 2.2 + 2.1

Lenovo G550 T4300
Gentoo 64 Bit Stable
4 GB Ram

3

28.12.2008, 17:54

Jau. So sieht das bei mir auch aus. Auf der Konsole geht das auch wunderbar. Nur nicht in KDE bzw. im X-Server.
Ich habe den xorg-server-1.5.3 und hal-0.5.11-r4
So wie das verstanden habe geht das alles ueber hal. Siehe oben.
Ich bin ja schon froh, dass meine Tastatur und meine Maus geht. Das war vorher nicht der fall.
Nur muss ich die tastatur nur noch auf Deutsch kriegen.

MfG eddi

4

28.12.2008, 18:58

Hallo Eddi

versuche mal folgendes:
Sichere die vorhandene "/etc/hal/fdi/policy/10-x11-input.fdi" weg, zb durch verschieben/umbenennen,
kommentiere die Eingabegeräte in der xorg.conf wieder ein und merge hal noch mal neu.
Nun sollte hall aus deiner xorg.conf Konfiguration eine passende "10-x11-input.fdi" erstellen die du mit "etc-update" übernimmst.
Kommentiere die xorg.conf wieder aus und starte dbus, hal und X neu (oder mach einen kompletten neustart)

PS: Ich nutze hier ebenfalls komplett ~x86 mit hal, funktioniert prima, auch alle Multimedia-tasten meiner Logitech diNovo funktionieren ohne weitere Maßnahmen.

MfG

5

28.12.2008, 19:55

Quellcode

1
Option "AutoAddDevices" "False"

Und prompt war wieder alles wie früher ... ;)
Unix wurde nicht entwickelt, um seine Benutzer daran zu hindern, dumme Dinge zu tun, denn das würde diese auch davon abhalten, schlaue Dinge zu tun.“ – Doug Gwyn

6

29.12.2008, 15:37

Quellcode

1
"Option "AutoAddDevices" "False"

Funktioniert leider nicht.

Meine *.fdi sieht jetzt so aus.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.xkb.model" type="string">evdev</merge>
      <merge key="input.xkb.rules" type="string">xorg</merge>
      <merge key="input.x11_options.XkbModel" type="string">evdev</merge>
      <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
    </match>

    <!-- 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>
</deviceinfo

Das habe ich aber gemacht. Hal hat mit nichts für etc-update angeboten.
Allerdings steht beim installieren was von "setxkbmap" und "kxkb". Das soll man irgendwo einfügen.

Quellcode

1
setxkbmap -model evdev -layout de -variant nodeadkeys

Mit diesem Befehl kann ich es auf Deutsch umstellen. Allerding nur bis zum Neustart.

7

29.12.2008, 16:11

Wenns nur darum geht auf Deutsch umzustellen sollte diese "10-x11-input.fdi" ausreichen

Quellcode

1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
   <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>
</deviceinfo>

Info: Wenn die Eingabegeräte über "hal" verwaltet werden sollen darf

Quellcode

1
2
3
Section "ServerFlags"
Option          "AutoAddDevices"     "false"
EndSection
in der xorg.conf natürlich nicht gesetzt sein, dies verhindert die Weiterleitung an hal

MfG

8

29.12.2008, 16:27

Leider ist dieses Thema im Moment etwas schwammig erklärt (ich hatte auch schon meine Probleme damit) :

Entweder man verwendet X mit hal support und evdev : Da gibt es keine input sections mehr in der xorg.conf dafür steuert man die Eingabegeräte über die HAL policies.

oder man verwendet X ohne hal: Dabei muss man jedes Eingabegerät wie eh und je in der xorg.conf eintragen und konfigurieren.



Leider geht das aktuelle Handbuch nicht darauf ein (X mit hal) und beim Wiki kämpfen sie ja noch immer mit der Rekonstruktion.

In den meisten Foren (auch forums.gentoo.org) wird meistens ein AutoAddDevices "false" empfohlen. Wobei ich nicht verstehe wieso man auf der alten Methode beruht und nicht auf die HAL-Methode wechselt.
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP

9

31.12.2008, 15:36

so. Geschafft
Meine 10-x11-input.fdi sieht jetzt so aus.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
   	<match key="info.capabilities" contains="input.keys">
      	<merge key="input.x11_options.XkbRules" type="string">evdev</merge>
      	<merge key="input.x11_options.XkbModel" type="string">evdev</merge>
      	<merge key="input.x11_options.XkbLayout" type="string">de</merge>
      	<merge key="input.x11_options.XkbOptions" type="string">nodeadkeys</m$
	</match>

   <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" str$
   	<merge key="input.x11_driver" type="string">evdev</merge>
   </match>
</deviceinfo>


Ich hatte vergessen den xorg-server mit evdev zu kompilieren. Nun gehts. Jetzt konnte ich auch meine Tastatur unter KDE auswählen.

Vielen Dank

10

01.01.2009, 17:17

wenn du kde mit evdev verwendest, solltest du im KDE aber "evdev managed keyboard" anstatt des Keyboard Modells einstellen.
Intel core 2 duo E6600
XFX Geforce 7950 gt
4096 MB DDR2
Intel DP35DP