Bug 1098826

Summary: Disk encryption password dialog does not accept input from USB keyboard during boot process.
Product: [Fedora] Fedora Reporter: Bruce Bigby <bbigby64>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-01 16:21:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bruce Bigby 2014-05-18 23:45:13 UTC
Description of problem:

On Fedora 20, I have been unable to upgrade my kernel beyond 3.12.10-300.fc20.x86_64 for a while now because when I boot any newer kernel, the password dialog for disk encryption does not accept input from my USB keyboard, a Roccat MK Pro.  However, I don't think that the model matters.  I've been booting fine with kernel 3.12.10-300.fc20.x86_64.

Version-Release number of selected component (if applicable): Any kernel GREATER than 3.12.10-300.fc20.x86_64.  So far, the latest kernel that I've tried that failed is 3.14.2-200.fc20.x86_64.


How reproducible:


Steps to Reproduce:
1. Boot the machine.
2. Select a kernel > 3.12.10-300.fc20.x86_64
3. When the disk encryption dialog appears, attempt to enter the password and press Return/Enter.

Actual results:

Nothing happens.  Kernel does not boot.  Dialog remains indefinitely.


Expected results:

Kernel boots.


Additional info: I'm not sure of what happened after 3.12.10-300.fc20.x86_64, but it broke my ability to successfully boot into my Fedora 20 box.

Comment 1 Bruce Bigby 2014-06-09 01:51:09 UTC
I just updated my system and tried kernel-3.14.5-200.fc20.x86_64 and the same problem persists.  The disk encryption password dialog does not accept input from my Roccat MK Pro USB keyboard.  kernel-3.12.10-300.fc20.x86_64 is last kernel that has worked for me.

Comment 2 Bruce Bigby 2014-06-14 01:28:38 UTC
I just tried kernel-3.14.7-200.fc20.x86_64. The problem still persists.

I noticed that on the working kernel (3.12.10-300.fc20.x86_64), my keys light up, then go dark, and then light again.  Then, I can type.

On all broken kernels, the keyboard is dark for several seconds after the input dialog appears on the screen. Then, the keyboard lights and remains lit, but will not accept input no matter how long I wait and retry.

Comment 3 Bruce Bigby 2014-07-15 22:47:11 UTC
By the way, to get back to a working system, I had to search the Internet for the NVidia drivers that matched the older kernel (3.12.10-300.fc20.x86_64), because the newer kernel forced an upgrade of the NVidia drivers to match the newer kernel so booting back to the old kernel failed.  Specifically, I had to reinstall the following packages:

xorg-x11-drv-nvidia-331.38-1.fc20.x86_64
xorg-x11-drv-nvidia-libs-331.38-1.fc20.i686
xorg-x11-drv-nvidia-libs-331.38-1.fc20.x86_64

Perhaps, this is a bug with RPM fusion.  It should NOT remove packages for a kernel that is still present.  Now, whenever I upgrade, I Select All, and then deselect the newer version of the packages, above.  Of course, this is not an ideal process.

Comment 4 Bruce Bigby 2014-08-24 16:40:09 UTC
This problem still exists with kernel-3.15.10-200.fc20.x86_64.

Comment 5 Bruce Bigby 2014-11-01 16:21:23 UTC
I finally found information on how to fix this problem.  I found the following extremely helpful link:

http://forums.fedoraforum.org/archive/index.php/t-298745.html

I basically had to rebuild the initramfs for the latest kernel on my Fedora 20 box so that it included the keyboard driver for my Roccat Ryos MK Pro keyboard. Here were my steps:

1. Create the file /etc/dracut.conf.d/hid-roccat-ryos.conf and add the contents,

   add_drivers+="hid-roccat-ryos.ko"

   which is the driver for my keyboard.

2. Rename the initramfs for the relevant kernel in case we need it later.  I chose the latest kernel that was present on my system where the keyboard would not work.

   cd /boot
   mv initramfs-<version>.img initramfs-<version>.img.ORG

3. Build a NEW initramfs for the kernel.  Note: My first attempts at building revealed that I mkinitrd could not find some commands so I had to install these packages: busybox and nbd.  If you see any command fail during the build, just install the missing package, and repeat until you don't see any commands fail.  

   cd /boot
   mkinitrd -f /boot/initramfs-<version>.img.NEW <version>

After doing this, I was able to enter my LUKS disk encryption password and boot the latest kernel (3.16.6-203.fc20.x86_64) at the time.