Keyboard not working on Gnome after yum update in Centos 7

After updating my Centos 7 with yum update my keyboard stopped working on GNOME, so I was unable to login to my laptop. I went through a whole process to make it works again:

1) First, I had to start in single user mode in order to edit the systemd runlevel so I started the laptop and edited the kernel on the grub menu by pressing “e”.
Locate the line that contains below:
linux16 /vmlinux-3.10.0 ……(bla bla bla)………….  ro rd.lvm.lv..(bla bla bla)…….
You will substitute “ro” with:  “rw init=/sysroot/bin/sh” and then press Ctrl + x to boot. Check “Single user mode in centos 7” reference at the end of this post for detailed information.

2) So, once in single user mode I changed the runlevel to start my laptop in multi-user mode (command line mode). Centos 7 runlevels are systemd so the process is different from classic inittab systems.
First I deleted the current level by deleting the default.target file (which normally is graphical mode or runlevel 3):
rm /etc/systemd/system/default.target

And then I added multi-user as target level (runvelel 3) by linking the multi-user target as default target on “/etc/systemd/system” path:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Finally I performed a restart to get into multi-user mode. Check “Useful systemd commands” reference at the end of this post for detailed information about this.

3) Finally I get into my laptop with full availability except for Graphical mode. The fact that my keyboard worked well in command mode but not in graphical mode and the fact that all happened after an update was symptom that something went wrong with Xorg after updating.
Log at:                                  /var/log/Xorg.0.log                                       was showing below error:
“failed to load /usr/lib64/xorg/modules/input/evdev_drv.so: /usr/lib64/xorg/modules/input/evdev_drv.so: undefined symbol: xxxxx”

And log at:                            /var/log/yum.log              was showing below package updated:
                                updated: 1:xorg-x11-drv-evdev-1.0.0.5-5.0.2-el5.x86_64

So, what I did was downgrade the package by running:
yum downgrade xorg-x11-drv-evdev-x86_64

And again!!! Another error:
“cannot retrieve metalink from repository: epel/x86_64”

I went ahead by disabling the repo and continuing downgrading:
yum-config-manager –disable epel

Downgrading took me from this package:
xorg-x11-drv-evdev-1.0.0.5-5.0.2.el5 

To this one:
xorg-x11-drv-evdev-1.0.0.5-5.0.1.el5

I needed to try downgrading two times till I get to this version:
xorg-x11-drv-evdev.x86_64 0:2.8.2-5.el7

I restarted and voila!!! It worked!!! Now I’m happily writing this post from my “used to” damage laptop!

References:
Single User Mode in Centos 7
Useful Systemd Commands
Keyboard not working after yum update

Leave a Reply