No keyboard after update to kernel 3.5.

Hello community,

I am running OpenSuse tumbleweed. Since the last kernel update, today a few hours ago, my keyboard is no longer recognized. The keyboard works in the grub menu, but does not as soon as I select one of the boot options. Hence I cannot enter my password to mount my encrypted LVM (/root is in there).(Keyboard lights do not work, even though there is feedback when I remove the keyboard)

How could I revert to the last 3.4.X kernel which worked. I have not taken any precautions in this respect.

Nikos

If you did not set YaST up to maintain more than one kernel version, only the most recent would be present. To allow multiple kernel versions from YaST you would do this:

edit the file /etc/zypp/zypp.conf to say (Remove one comment #):
##
## Packages which can be installed in different versions at the same time.
##
## Packages are selected either by name, or by provides. In the later case
## the string must start with "provides:" immediately followed by the capability.
##
## Example:
##    kernel                - just packages whith name 'kernel'
##    provides:multiversion(kernel)   - all packages providing 'multiversion(kernel)'
##                      (kenel and kmp packages should do this)
## Valid values:
##    Comma separated list of packages.
##
## Default value:
##    empty
##
**multiversion = provides:multiversion(kernel)**

If you use KDE, you can use the menu Run Command:
Alt-F2: kdesu kwrite /etc/zypp/zypp.conf

OR in Gnome:

Alt-F2: gnomesu gedit /etc/zypp/zypp.conf
The file zypp.conf has a whole lot more in it than the small portion shown above. You are removing the comment from the line shown in bold (and it will not be in bold in your file after being added. So be careful not to mess anything else up.

You can compile any kernel version outside of YaST with the following bash script: S.A.K.C. - SUSE Automated Kernel Compiler - Version 2.75 - Blogs - openSUSE Forums

You can fetch any kernel version released clear back to 2005 with this script: S.G.T.B. - SuSE Git Kernel Tarball Creator - Version 1.81 - Blogs - openSUSE Forums

Thank You,

I experience exactly the same problem, however, I guess I am lucky that this is a laptop with a built-in keyboard that is still working. The lights on my USB mouse light up as expected at the LVM prompt stage of the boot process while the keyboard lights cannot be turned on, which suggests that only the USB keyboard does not work as expected.

dmesg:


----snip----
    3.090892] usb 5-1: New USB device found, idVendor=046d, idProduct=c041
    3.107070] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    3.120996] usb 5-1: Product: USB Gaming Mouse
    3.134808] usb 5-1: Manufacturer: Logitech
    3.268034] usb 5-2: new low-speed USB device number 3 using uhci_hcd
    3.456915] usb 5-2: New USB device found, idVendor=046a, idProduct=0011
    3.470104] usb 5-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    4.171532] md: linear personality registered for level -1
    4.457944] device-mapper: uevent: version 1.0.3
    4.471357] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
   18.704106] usb 5-2: USB disconnect, device number 3
   20.684051] usb 5-2: new low-speed USB device number 4 using uhci_hcd
   20.873916] usb 5-2: New USB device found, idVendor=046a, idProduct=0011
   20.887892] usb 5-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
----snip----

The blob starting at 18.7s is me unplugging and replugging both the mouse and the keyboard. As can be seen, the keyboard is correctly recognised at this state of the boot process (0x046a:0011), but does not work.

lsusb:


sh-4.2$ lsusb
Bus 002 Device 004: ID 046d:0809 Logitech, Inc. Webcam Pro 9000
Bus 003 Device 002: ID 413c:8140 Dell Computer Corp. Wireless 360 Bluetooth
Bus 005 Device 002: ID 046d:c041 Logitech, Inc. G5 Laser Mouse
Bus 005 Device 004: ID 046a:0011 Cherry GmbH G83 (RS 6000) Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

This shows the mapping of the USB devices after boot.

Please excuse the double post.

I filed a bug report: https://bugzilla.novell.com/show_bug.cgi?id=773559 (Bug 773559)

rmk2 thank you for reporting the bug, indeed it looks very similar. I don’t see a double post.

James, thank you for the info. It definitively gives me instructions on what I should have done before clicking on update all if newer version is available…and it is what I will do as soon as somebody helps get my machine back working…I promise…

…and after reading the bug report…I guess I will try this:

(b) If you don’t have a non-usb keyboard, I guess you have to use the installation DVD. Use installation->upgrade existing system->package manager, use the 3.1.* or 3.4.* version of the following packages: kernel-desktop and optionally: kernel-devel kernel-source kernel-syms kernel-xen-devel kernel-default-devel

and then I will use multikernel before updating.
Thank you, both. I will come back crying if it does not work.

:’(First try did not work.
I added tumbleweed repositories and let the installer update whatever needed. However, I chose the 3.1.X kernel. The kernel got downgraded, but the problem persists. So maybe I should have chosen some other packages too…

That was my fault, i had changed the usb port when trying to get the keyboard to work, and obviously my front ports do not work at that stage…

I still have two questions:

  1. Where can i find the 3.4.4 kernel for tumbleweed except compiling as suggested by James?
  2. I have done that:

multiversion = provides:multiversion(kernel)

If something goes wrong with the kernel i will try (unfortunately 3.1.x does not play nice with my hardware), how will I be selecting an older kernel? Will there be more grub entries? Thank you for the support and sorry for the many consecutive posts.

Normally, each repository just keeps one kernel version which gets updated for security (like standard openSUSE) and for newer stable kernels, like Tumbleweed. If this problem effects many, there will be a fix that comes down to the users. Otherwise, you will need to use SAKC to drop back one kernel version and wait for a newer fix to show up in Tumbleweed. Using SAKC does create a new GRUB entry and does not do away with using Tumbleweed. When a new kernel version comes down from Tumbleweed, you will still get it and be able to try it. The only issue with SAKC is that kernels installed with it can not be removed using YaST, but in general its no problem having several kernels to chose from. As always, if you use a proprietary video driver, or use VirtualBox, their drivers must be reloaded when you use a new kernel.

Thank You,

I am using SAKC with kernel 3.4.6. It is a great script!
Thank you.

I was happy to help and thanks for your kind words. If you have any comments or suggestions about using SAKC, please post them into my blog.

Thank You,

Hi all - I posted the full solution in bnc#773559 but the quick answer is this:

The 3.5 kernel introduced a new hid-generic module is required for HID keyboards and mice that must be added to the initrd. We’ll release an updated mkinitrd shortly with an updated version the kernel packages can depend on. In the interim, users with USB keyboards who want to use the 3.5 kernel can do the following.

/lib/mkinitrd/scripts/boot-usb.sh has a line that starts with “#%udevmodules.”

Append “hid-generic” to the line:

#%udevmodules: usbcore ohci_hcd uhci-hcd ehci_hcd xhci-hcd usbhid hid-logitech-dj hid-generic

Now rebuild your initrd by using the mkinitrd command and reboot. You’ll have your USB keyboard back.

So I freely admit I don’t know how this works but I wonder about:

  1. The line “#Þvmodules: usbcore ohci_hcd uhci-hcd ehci_hcd usbhid” seems to start with a # indicating a comment line. Does this # stay?
  2. When you say “We’ll release an updated mkinitrd shortly with an updated version the kernel packages can depend on” what are you actually modifying and how would one get this fix?
  3. Is this fix just for Tumbleweed users?
  4. How should users who have upgraded to kernel 3.5 but don’t use Tumbleweed get this fix?
  5. What actually runs the bash script /lib/mkinitrd/scripts/boot-usb.sh?

Thank You,

Just for the sake of completeness:

This bug was fixed in the latest 3.5.0 update from the tumbleweed repo.