LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   No keyboard with 3.5.4 initrd (http://www.linuxquestions.org/questions/slackware-14/no-keyboard-with-3-5-4-initrd-4175429742/)

Phorize 09-30-2012 10:32 AM

No keyboard with 3.5.4 initrd
 
Hi All,

I'm playing around with the testing configs in Slackware64 14 and have run into a problem with 3.5.4. My install uses 2 partitions, 1 for /boot and another luks encrypted volume with everything else on it. My initrd was built using the output of the mkinitrd command generator in /usr/share/mkinitrd as follows:

Code:

mkinitrd -c -k 3.4.11 -f ext4 -r /dev/cryptvg/root -m usbhid:ehci-hcd:xhci-hcd:mbcache:jbd2:ext4 -C /dev/sda5 -L -h /dev/cryptvg/swap -l uk -u -o /boot/initrd-generic-3.4.11.gz
My usb keyboard won't work with the resulting initrd, the implication being that I can't log into my encrypted partition. The kernel itself uses the testing config with 2 changes made; the cpu is changed to core duo and later (I have an ivybridge cpu) and the latency is changed to low latency desktop.

The mkinitrd command generator produces working output for all other kernels.

Discuss....:)

Didier Spaier 10-01-2012 05:16 AM

I would type "lsusb -t" with another kernel running to check which modules are needed by your USB keyboard, then check that theses modules are available and loaded using the 3.5.4 kernel.

Phorize 10-05-2012 05:25 PM

Quote:

Originally Posted by Didier Spaier (Post 4793837)
I would type "lsusb -t" with another kernel running to check which modules are needed by your USB keyboard, then check that theses modules are available and loaded using the 3.5.4 kernel.

lsusb -t gives this output:
Code:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 5: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 6: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 6: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

i should correct the mkinitrd command used, which was:

Code:

mkinitrd -c -k 3.5.4 -f ext4 -r /dev/cryptvg/root -m usbhid:ehci-hcd:xhci-hcd:mbcache:jbd2:ext4 -C /dev/sda5 -L -h /dev/cryptvg/swap -l uk -u -o /boot/initrd-generic-3.5.4.gz
It looks fine to me. Hmm....I'm perplexed.

taichi135 10-06-2012 12:07 AM

Hi,

Try adding the module hid-generic. (make sure it's module compiled option of course.)

I had a similar problem with luks - fully encrypted root partition w/ Slackware x64 14.0, but with kernel 3.6.0.

It appears they (kernel devs) made a change where the generic usbhid module doesn't have "all" the drivers with it, and instead broken them up. (correct me if I'm wrong, anyone...) If you make menuconfig on the /usr/src/3.2.29 that Patrick includes and compare it in parallel with a make menuconfig on a newer kernel you will notice the Device Drivers ---> HID menu is slightly different. I'm not sure which exactly kernel version this occurs. I haven't had the chance to go digging. I haven't compiled a new kernel in a few months.

Like you, I was thrown off by this for a little while, having done many Luks setups and custom kernels in the past with prior Slackware versions.

I've already informed Eric of the issue, regarding the document and the script not picking the latest driver. He's taken note and will investigate later, as the team is on a much needed break after this latest release. :)

Hope that helps.

Phorize 10-06-2012 03:40 AM

Quote:

Originally Posted by taichi135 (Post 4798569)
Hi,

Try adding the module hid-generic. (make sure it's module compiled option of course.)

I had a similar problem with luks - fully encrypted root partition w/ Slackware x64 14.0, but with kernel 3.6.0.

It appears they (kernel devs) made a change where the generic usbhid module doesn't have "all" the drivers with it, and instead broken them up. (correct me if I'm wrong, anyone...) If you make menuconfig on the /usr/src/3.2.29 that Patrick includes and compare it in parallel with a make menuconfig on a newer kernel you will notice the Device Drivers ---> HID menu is slightly different. I'm not sure which exactly kernel version this occurs. I haven't had the chance to go digging. I haven't compiled a new kernel in a few months.

Like you, I was thrown off by this for a little while, having done many Luks setups and custom kernels in the past with prior Slackware versions.

I've already informed Eric of the issue, regarding the document and the script not picking the latest driver. He's taken note and will investigate later, as the team is on a much needed break after this latest release. :)



Hope that helps.

Sorted, thanks and well spotted!

Barcoboy 08-06-2013 02:03 PM

Thanks taichi135!
 
Just wanted to add my thanks to taichi135. I experienced the same problem with a non-booting system last night... wasn't able to use my keyboard to figure out what the problem was. I booted to an emergency partition, added the hid-generic module to my initrd, and I was then able to figure out why my system wasn't booting and fix it.


All times are GMT -5. The time now is 12:16 PM.