Help with duplicate characters

Good evening guys

I need help. I’ve searched the internet and cannot find a solution to my problem. I have openSuse 13.2 64bit installed, with all the latest updates installed.

On my main desktop computer, I noticed that double characters would appear while typing. This will happen randomly, and is very frustrating.

“Thiis is an example of what would haappen while I’m typing, and I doont knoww how to fixxx it”

I initialllyy thought my keyboard was faulty, and thought nothing of it. Kept on fixing the mistakes and I almost bought a new keyboard.

I then purchased a new notebook for use while travelling. Installed opensuse 13.2 64bit, updated all binaries, and the same issue is happening here!

I’ve tried disabling ‘Repeat Keys’ option under Settings - Keyboard, but this has no efffect.

Now I’m convinced that it cannot be the hardware on both computerss, and that it’s something in the OS. I’ve been a long time opensuse user, and I’ve nnever experienced anything like this. Any thoughts / ideas on how to tackle this issue?

Thanks guys, and hello from Cape Town South Africa!

You don’t say which desktop you are using but, assuming you have installed KDE, try System settings(Configure desktop)>Input devices>Keyboard>Hardware>Keyboard repeat and adjust the settings.

Good morning JJohn. Thank you for the reply.

I’m running gnome 3 desktop. As mentioned in my original post, I did disable the ‘Repeat Keys’ option under Settings - Keyboard. This did not solve the issue.

Martin

Try issuing the following from a terminal

xset r off

The check keyboard repeat behaviour. This command is not persistent, but not hard to make it so if it works.

Hi Deano

Thanks for the reply. This did not seem to work either. This is such a strange problem.

Could it be that its very new hardware?

mcoetzee:~ # hwinfo --short
cpu:
Intel(R) Core™ i5-5200U CPU @ 2.20GHz, 2100 MHz
Intel(R) Core™ i5-5200U CPU @ 2.20GHz, 2588 MHz
Intel(R) Core™ i5-5200U CPU @ 2.20GHz, 2420 MHz
Intel(R) Core™ i5-5200U CPU @ 2.20GHz, 2585 MHz
keyboard:
/dev/input/event0 AT Translated Set 2 keyboard
mouse:
/dev/input/mice SynPS/2 Synaptics TouchPad
graphics card:
Intel VGA compatible controller
sound:
Intel Audio device
Intel Audio device
storage:
Intel SATA controller
network:
wlp1s0 Intel WLAN controller
network interface:
wlp1s0 Ethernet network interface
lo Loopback network interface
disk:
/dev/sda ST500LM000-1EJ16
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda3 Partition
/dev/sda4 Partition
usb controller:
Intel USB Controller
Intel USB Controller
bios:
BIOS
bridge:
Intel Host bridge
Intel PCI bridge
Intel ISA bridge
hub:
Linux 3.16.7-21-desktop xhci_hcd xHCI Host Controller
Linux 3.16.7-21-desktop ehci_hcd EHCI Host Controller
Hub
Linux 3.16.7-21-desktop xhci_hcd xHCI Host Controller
memory:
Main Memory
bluetooth:
Bluetooth Device
unknown:
FPU
DMA controller
PIC
Timer
Keyboard controller
PS/2 Controller
Intel Signal processing controller
Intel Communication controller
Intel SMBus
Intel Signal processing controller
SGS Thomson Microelectronics ST_SENSOR_HUB
/dev/input/event16 CN0GNXH57248751NB04NA02 Integrated_Webcam_HD
Elan Microelectronics Touchscreen

Switch to VT2 console (CTRL-ALT+F2). Does the random key repeat occur then? Or only when in a graphical environment?

I do find it extremely curious that your desktop machine and notebook both experience the same issue. I’m not aware of anyone else having this issue in recent times. Progressing this will likely take some thought about examining anything in common between machines with OS configuration, motherboard chipset, utilities etc that might be contributing to this.

Hey Deano

Again, thanks for trying to help mme with this. Ok, so when I switch to VT2, I don’t get the duplicate characters. This is very strange. After switching back to deskooop, It happens again.

Ok, let me know how I can help. As mentioned, I actually thought my desktop PC’s keyboard was faulty, and I was going to replace it. But when I got my new notebook last week, installed fresh copy of openSuse on it, experienced the same issue, it got me thinking of reaching out to you guys.

Any test / more info required?

Just some info on my desktop pc:

mcoetzee@martin-desktop:~> lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Model name: Intel(R) Core™ i7-4770K CPU @ 3.50GHz
Stepping: 3
CPU MHz: 2300.703
CPU max MHz: 3900.0000
CPU min MHz: 800.0000
BogoMIPS: 7000.72
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7

martin-desktop:~ # lspci
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d4)
00:1c.3 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series]
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
04:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)

martin-desktop:~ # lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows
Bus 003 Device 004: ID 1532:0118 Razer USA, Ltd
Bus 003 Device 003: ID 0556:0001 Asahi Kasei Microsystems Co., Ltd AK5370 I/F A/D Converter
Bus 003 Device 006: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
Bus 003 Device 002: ID 046d:c048 Logitech, Inc. G9 Laser Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
m

Details of the notebook

mcoetzee:~ # lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 61
Model name: Intel(R) Core™ i5-5200U CPU @ 2.20GHz
Stepping: 4
CPU MHz: 2185.218
CPU max MHz: 2700.0000
CPU min MHz: 500.0000
BogoMIPS: 4388.85
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3

mcoetzee:~ # lspci
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:04.0 Signal processing controller: Intel Corporation Broadwell-U Camarillo Device (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
00:1f.6 Signal processing controller: Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
01:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)

mcoetzee:~ # lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 04f3:21d0 Elan Microelectronics Corp.
Bus 002 Device 004: ID 8087:0a2a Intel Corp.
Bus 002 Device 003: ID 1bcf:28aa Sunplus Innovation Technology Inc.
Bus 002 Device 002: ID 0483:91d1 STMicroelectronics
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

That is what I suspected would be the case -only because there are numerous historic bug reports describing similar behaviour when goggling ‘key repeat bug’ and similar. However, I haven’t found anything recent. In any case, I’m going to recommend you try adding following kernel boot parameter to grub2:

i8042.nomux=1

Then test the behaviour again, and if necessary add the following parameter as well

i8042.reset

Report back with your findings.

Heya Deano.

Still no joy. I firstly added the i8042.nomux=1 to tthe kernel bootloader option, and at first It seemed to be better, but then it started again. Adding the second i8042.reset made no difference.

I’m going away for the long weekend (Here in South Africa we have public holiday next tuesdday, so taking monday off for a small holiday). I will check back over the weekend for any other things you want me to try. I could also try anotheer distro and check if it’ss doing the same thing.

Marrtin

Okay… it was worth a shot

I’m going away for the long weekend (Here in South Africa we have public holiday next tuesdday, so taking monday off for a small holiday). I will check back over the weekend for any other things you want me to try. I could also try anotheer distro and check if it’ss doing the same thing.

Marrtin

Enjoy your 4-day break! Yes, worth trying a live distro perhaps. I’ll see if I can turn anything else up. Most of the bug reports I found and read were several years old, so this is an unusual recent behaviour, but maybe there’s some regression at play here.

I will check back over the weekend for any other things you want me to try.

It could be useful to know more about the keyboard vendor/device…

/usr/sbin/hwinfo --keyboard

Thanks Deano.

Notebook keyboard

22: PS/2 00.0: 10800 Keyboard
[Created at input.226]
Unique ID: nLyy.+49ps10DtUF
Hardware Class: keyboard
Model: “AT Translated Set 2 keyboard”
Vendor: 0x0001
Device: 0x0001 “AT Translated Set 2 keyboard”
Compatible to: int 0x0211 0x0001
Device File: /dev/input/event0
Device Files: /dev/input/event0, /dev/input/by-path/platform-i8042-serio-0-event-kbd
Device Number: char 13:64
Driver Info #0:
XkbRules: xfree86
XkbModel: pc104
Config Status: cfg=no, avail=yes, need=no, active=unknown

Desktop keyboard:

25: USB 00.0: 10800 Keyboard
[Created at usb.122]
Unique ID: gLM6.7ziUCnnNO4F
Parent ID: uIhY.2DFUsyrieMD
SysFS ID: /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0
SysFS BusID: 3-7:1.0
Hardware Class: keyboard
Model: “Razer DeathStalker”
Hotplug: USB
Vendor: usb 0x1532 “Razer”
Device: usb 0x0118 “Razer DeathStalker”
Revision: “2.00”
Driver: “usbhid”
Driver Modules: “usbhid”
Speed: 12 Mbps
Module Alias: “usb:v1532p0118d0200dc00dsc00dp00ic03isc01ip01in00”
Driver Info #0:
XkbRules: xfree86
XkbModel: pc104
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #20 (Hub)

Try a different desktop.

It does really sound like a repeat hold down timing problem

What I find very strange is that the OP should have two different pieces of hardware which present the same symptoms, and only within a graphical environment.

Well that points to a configuration and or an application that he uses perhaps??? Others have not reported it and on two different hardware platforms it point to something he is setting or perhaps installing on both.

Yes, that’s what I’m leaning too as well (which I hinted at in post #7). Hard to diagnose though without the OP identifying a possible contributor.

In general terms, historic threads have pointed to an overloaded X-server failing to catch keyboard interrupts and missing some of the events (eg key release). Anyway, what might be a useful test is to run top in a terminal, then open another terminal window and type (hold a key down). We might expect to see Xorg CPU activity ramp up a little, or a lot in the OP’s case, or perhaps some other problematic utility/process will come to light.

The xev utility can also be used to verify that the key release event is being missed, although it won’t help determine the cause. With xev running a ‘KeyPress event’ and a corresponding ‘KeyRelease event’ should be observed each time a single key is pressed - something like this


KeyPress event, serial 40, synthetic NO, window 0x7600001,
    root 0x7f, subw 0x0, time 27303999, (1271,489), root:(1271,516),
    state 0x0, keycode 57 (keysym 0x6e, n), same_screen YES,
    XLookupString gives 1 bytes: (6e) "n"
    XmbLookupString gives 1 bytes: (6e) "n"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x7600001,
    root 0x7f, subw 0x0, time 27304012, (1271,489), root:(1271,516),
    state 0x0, keycode 57 (keysym 0x6e, n), same_screen YES,
    XLookupString gives 1 bytes: (6e) "n"
    XFilterEvent returns: False

I also wondered about monitoring the interrupts, first with no user activity, and then while typing in a terminal or application. This could be done with something like

for n in {1..60}; do cat /proc/interrupts;sleep 1;clear;done

Then examine the running output for spurious or random interrupt activity, although I’m not certain that this would lead to anything conclusive either.