Kernel 3.11 and encrypted LVM

I am having a problem with kernel 3.11, using an encrypted LVM.

I upgraded to 3.11.0-26 several days ago, but did not reboot at that time. When I rebooted today, I could not unlock the encrypted LVM. I was prompted for the key. It looked as if the keyboard was not being read. The key that I entered was never accepted, and booting stalled at that point. It is a USB keyboard, if that is relevant.

I was able to boot with the last 3.10 kernel. There, I tried rebuilding the “initrd” for the 3.11 kernel. That did not help.

I went into Yast, and installed the 3.11.0-27 kernel. Another boot attempt, and that also stalled on the prompt for the key.

I have a second computer with tumbleweed, where I did not have this problem.

Incidentally, I am also seeing the “python-sip” problem mentioned in other threads. I am not doing a “zypper dup” until I can proceed without that problem.

Have you tried kernel 3.11.1 since it came out? https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.1.tar.xz

Thank You,

I will wait till it shows up in the Tumbleweed repo.

I’ll also test whatever kernel shows up in 13.1 Beta (should be later this week).

No, kernel 3.11.1 does not help here. So I am going to have the same problem with 13.1.

To test: I installed 13.1 in a separate partition, so that the LVM is not actually needed. Booting 13.1, I was prompted for the key to unlock the LVM, and that worked. That was prompting by “systemd”.

I then saved a copy of the “initrd”. Then I added “initrd” to the last column of the “/etc/crypttab” entry to force unlocking via the “initrd”. Note that I did not install plymouth.

Rebooting, I was prompted for the key for the LVM. But the input was never accepted. It looks as if the initrd cannot read the keyboard.

I restored the prior “initrd” so that I could boot. I removed the change in “/etc/crypttab” (actually, I changed it to “noauto” since I don’t need that LVM). And now I can boot again.

Presumably, there is a kernel module needed which is not being put into the “initrd”. So how do I find what is required?

Problem solved.

The missing kernel module is “ohci_pci”. After forcing that into the “initrd”, I can now use 3.11 kernels. I have reported this on bug 839071.

As to how I found out which module:

  1. “cd” to the modules directory for the working 3.10 kernel. Run “ls -R” and redirect the output to a file.
  2. same for the not-working 3.11 kernel. Redirect to a different file.
  3. Run “diff -u” on the two files, to find which modules are new to 3.11
  4. boot to a 3.11 kernel (say, with the 13.1 live KDE image). Find which of those new modules is in use (with “lsmod”).

Interesting. I had a WiFi issue for the network type of ath9k due to a new driver not being loaded with kernel 3.10 which is alleged to be fixed in kernel 3.11, now up to 3.11.2 I see. There seems to be a lot of such stuff going on in the background of the kernel development. In the case of the WIFI driver, it was moved out of the kernel-firmware file and is now loaded as a select-able kernel configuration option. In kernel 3.10, its not loaded by default and in kernel 3.11 it will be there by default, as I understand it.

Thank You,