Keyboard problem after boot


each time after I boot up the system, all symbols that are reached via the “Alt Gr”-key (as @, |, ~,… I am using a German keyboard…) do not work.
If I try to push them, either nothing happens, or sometimes also strange sequences of symbols occur on the screen, especially when I try repeatedly.
However, the keys start working properly after I run
Yast → Hardware → Keyboard Layout
once, re-select the keyboard layout that was actually already selected (German, basic) and then quit without saving.
Has anyone got an idea what might be the problem and how I can fix it?


Further Informations about the system I’m using:
Linux x86_64
openSUSE 11.1 (x86_64)
KDE: 4.1.3 (KDE 4.1.3) "release 4.10.4

In a terminal:

cat /etc/X11/xorg.conf

look for this section and post yours

Section “InputDevice”
Driver “kbd”
Identifier “Keyboard[0]”
Option “Protocol” “Standard”
Option “XkbLayout” “gb”
Option “XkbModel” “microsoftpro”
Option “XkbRules” “xfree86”

ok… my output is:

Section “InputDevice”
Driver “kbd”
Identifier “Keyboard[0]”
Option “Protocol” “Standard”
Option “XkbLayout” “de”
Option “XkbModel” “pc105”
Option “XkbRules” “xfree86”

(I get the same output, whether the keyboard is working or not.)


Just out of interest. If you reboot and boot ‘Failsafe’, how is the keyboard then?

When I start in secure mode, I get an american keyboard layout.

Anyway, I discovered that the problems disappears when I deactivate the KDE keyboard layout quick selector, so it is probably some conflict between SaX and the KDE tool.
I can live without the tool, but it’s certainly a nice thing and it would be cool if it could work properly.


Hotplugging ignores anything for input in xorg.conf so is pointless…

To test…
hal-device|grep -B 15 input.x11.driver

It will show you using evdev regardless of what you put in xorg.conf…

grep -A1 Keyboard /etc/X11/xorg.conf ; hal-device|grep -B 15 input.x11.driver | grep xkb
	InputDevice    "Keyboard0" "CoreKeyboard"
	Identifier  "Keyboard0"
	Driver      "kbd"
  input.xkb.model = 'evdev'  (string)
  input.xkb.rules = 'base'  (string)
  input.xkb.layout = 'gb'  (string)
  input.xkb.variant = ''  (string)

$ hal-device|grep -B 15 input.x11.driver
gives me the following output, again regardless if the keyboard is just running or not:

info.callouts.remove = { ‘hal-acl-tool --remove-device’ } (string list)
linux.sysfs_path = ‘/sys/devices/virtual/sound/timer’ (string)
info.category = ‘alsa’ (string)
alsa.device_file = ‘/dev/snd/timer’ (string)
info.parent = ‘/org/freedesktop/Hal/devices/computer’ (string)
info.capabilities = { ‘alsa’, ‘access_control’ } (string list)
alsa.type = ‘timer’ (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = ‘sound’ (string)

19: udi = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input’
info.subsystem = ‘input’ (string)
linux.device_file = ‘/dev/input/event1’ (string)
access_control.file = ‘/dev/input/event1’ (string)
info.product = ‘ImPS/2 Logitech Wheel Mouse’ (string)
input.x11_driver = ‘evdev’ (string)

linux.sysfs_path = ‘/sys/devices/platform/pcspkr/input/input2/event2’ (string)
info.category = ‘input’ (string)
input.originating_device = ‘/org/freedesktop/Hal/devices/platform_pcspkr’ (string)
info.parent = ‘/org/freedesktop/Hal/devices/platform_pcspkr’ (string)
info.capabilities = { ‘input’ } (string list)
input.device = ‘/dev/input/event2’ (string)
linux.hotplug_type = 2 (0x2) (int)
input.product = ‘PC Speaker’ (string)
linux.subsystem = ‘input’ (string)

33: udi = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input’
info.subsystem = ‘input’ (string)
linux.device_file = ‘/dev/input/event0’ (string)
input.xkb.variant = ‘’ (string)
info.product = ‘AT Translated Set 2 keyboard’ (string)
input.x11_driver = ‘evdev’ (string)

BTW, I can also make the keyboard work by running manually
$ setxkbmap -layout de -variant basic
while the KDE-tool is actually already set to exactly this variant.

OK well I just tested this sorry about the time had a few problems along the way…

Now the info is extracted from here, I really wish Suse had some decent docs about this… Xorg input hotplugging - ArchWiki

Now it seems there isn’t a file there when I looked on Suse, but I just did this and now when I added this file in the same place when I run the hal command from earlier it is changing it to gb. But it was detecting it fine any way.

As your problem is just layout it would seem and you fix with setting the keyboard layout this should/may fix it.

But and but it would seem somehow what ever KDE is doing is doing something strange… Even after changing to gb layout which works fine in my host. Across 2 distro’s mandriva and Suse both, I think kde4.2.2 though Suse maybe 4.2.3. My AltGr is interpreted as return. Which doesn’t make any sense, I have the same fdi file on Suse as my host. Though not KDE4 but have not told it what type of keyboard in either the host or guest.

Hold on there maybe a fix in sysconfig

Oh well I’ve given up trying to fix it there is too many differences. I can’t find out what version of evdev it is using hal I think is earlier than Mandriva but that is only slightly earlier than the host.

iirc when I had suse x-less it did the same…

Ok, thanks a lot for your effort. I think I will now run KDE just without the layout switching tool, in the rare cases when I need to switch it I can still do so via console.