I have an Acer Aspire A5943G laptop, and its keyboard is not working properly. The keys SDGHM and some shift combinations produce either no characters at all, or just sometimes with wrong delay and repetition. What can I do to fix this?
The problem is actually with the power management of the "Suyin Corp. 1.3M WebCam (notebook emachines E730, Acer sub-brand)" device. This device is an internal multi-protocol USB device which is not only the webcam but also the keyboard. The solution is to disable
autosuspend for that device. You can do so with the following steps:
Step 1A: Identify your device on the USB bus.
and look for the WebCam. In my case the output looks like this:
Bus 002 Device 004: ID 064e:a219 Suyin Corp. 1.3M WebCam (notebook emachines E730, Acer sub-brand) Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 1c7a:0801 LighTuning Technology Inc. Fingerprint Reader Bus 001 Device 011: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
which means that in my case the device is
Bus 002 Device 004. We need that information in Step 2 as
2 is the Bus number from the
lsusb command, the
1 is the Bus (
0 would be the Hub itself), The
4 is the device on the bus from the
Step 1B: Identify your device on the USB bus.
Alternatively, you can identify your device using the following commands:
$ cd /sys/bus/usb/devices $ echo */input
This will print all devices which are a keyboard. In my case, it prints
2-1.4:1.0/input which means the device is
If you have multiple keyboards attached, you need to figure out which keyboard is the right one. In that case, either detach all other keyboards before running the
echo command, or inspect the corresponding
product file, in this case
2-1.4/product, i.e. using
cat 2-1.4/product. The
product file should contain a string like
Step 2: Disable
autosuspend for the device.
Assuming that Step 1 resulted in the device
2-1.4, run the following command to disable
autosuspend for that device:
$ sudo sh -c 'echo "0" >/sys/bus/usb/devices/2-1.4/power/autosuspend'
Now the keyboard should be working perfectly well.
Step 3: Make the change permanent
To make this change permanent, you need to run that echo command during startup. For how to run a script during startup, see https://stackoverflow.com/questions/8339555/how-to-run-a-script-at-the-start-up-of-ubuntu