USB Keyboard "Masione VMJ-02" ID 1c4f:0056 SiGma Micro: Ctrl / Super / Alt incorrectly recognized as L-Shift

Bug #1720842 reported by Peter Rhone
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Wishlist
Unassigned

Bug Description

It's a new keyboard and basically unusable due to the incorrect key recognition by usbhid module. I have scoured the net for similar problems, and found an identical sounding bug for an Azio keyboard. I tried that driver after modifying the source code to apply to 1c4f:0056, but to no avail.

See
https://askubuntu.com/questions/648798/ctrl-and-alt-works-as-shift

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: linux-image-4.13.0-12-generic 4.13.0-12.13 [modified: boot/vmlinuz-4.13.0-12-generic]
ProcVersionSignature: Ubuntu 4.13.0-12.13-generic 4.13.3
Uname: Linux 4.13.0-12-generic x86_64
NonfreeKernelModules: nvidia_uvm nvidia_drm nvidia_modeset nvidia
ApportVersion: 2.20.7-0ubuntu2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC2: peter 1368 F.... pulseaudio
 /dev/snd/controlC1: peter 1368 F.... pulseaudio
 /dev/snd/controlC0: peter 1368 F.... pulseaudio
CurrentDesktop: ubuntu:GNOME
Date: Mon Oct 2 18:40:54 2017
InstallationDate: Installed on 2017-10-01 (1 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Beta amd64 (20170930)
MachineType: System manufacturer System Product Name
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-12-generic.efi.signed root=UUID=3f1207ff-f3cc-4230-961b-9f35ffd0da4c ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-4.13.0-12-generic N/A
 linux-backports-modules-4.13.0-12-generic N/A
 linux-firmware 1.168
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/17/2014
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1505
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: P8H77-M PRO
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev X.0x
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1505:bd10/17/2014:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnP8H77-MPRO:rvrRevX.0x:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.family: To be filled by O.E.M.
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer

Revision history for this message
Peter Rhone (prhone-gmail) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.14 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc3

Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Can you attach evtest output for Ctrl / Super / Alt key pressing?

Revision history for this message
Peter Rhone (prhone-gmail) wrote :

Unfortunately I can't test 4.14-rc2 since it failed to boot.

As for evtest, pressing left control, left super, left alt, right alt, right super, right control (in that order) produces the following repetitive output:
Event: time 1507066049.048322, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066049.048322, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066049.048322, -------------- SYN_REPORT ------------
Event: time 1507066049.136325, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066049.136325, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066049.136325, -------------- SYN_REPORT ------------
Event: time 1507066051.369486, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066051.369486, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066051.369486, -------------- SYN_REPORT ------------
Event: time 1507066051.465530, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066051.465530, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066051.465530, -------------- SYN_REPORT ------------
Event: time 1507066054.883230, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066054.883230, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066054.883230, -------------- SYN_REPORT ------------
Event: time 1507066054.971284, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066054.971284, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066054.971284, -------------- SYN_REPORT ------------
Event: time 1507066102.730876, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066102.730876, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066102.730876, -------------- SYN_REPORT ------------
Event: time 1507066102.834914, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066102.834914, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066102.834914, -------------- SYN_REPORT ------------
Event: time 1507066105.540657, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066105.540657, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066105.540657, -------------- SYN_REPORT ------------
Event: time 1507066105.668748, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066105.668748, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066105.668748, -------------- SYN_REPORT ------------
Event: time 1507066110.039398, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066110.039398, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066110.039398, -------------- SYN_REPORT ------------
Event: time 1507066110.151475, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066110.151475, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066110.151475, -------------- SYN_REPORT ------------

...all map to left shift.

Revision history for this message
Peter Rhone (prhone-gmail) wrote :

No improvement with kernel 4.14.0-041400rc3-generic!

As for evtest, pressing left control, left super, left alt, right alt, right super, right control (in that order) produces the following repetitive output:
Event: time 1507066049.048322, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066049.048322, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066049.048322, -------------- SYN_REPORT ------------
Event: time 1507066049.136325, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066049.136325, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066049.136325, -------------- SYN_REPORT ------------
Event: time 1507066051.369486, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066051.369486, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066051.369486, -------------- SYN_REPORT ------------
Event: time 1507066051.465530, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066051.465530, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066051.465530, -------------- SYN_REPORT ------------
Event: time 1507066054.883230, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066054.883230, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066054.883230, -------------- SYN_REPORT ------------
Event: time 1507066054.971284, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066054.971284, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066054.971284, -------------- SYN_REPORT ------------
Event: time 1507066102.730876, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066102.730876, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066102.730876, -------------- SYN_REPORT ------------
Event: time 1507066102.834914, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066102.834914, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066102.834914, -------------- SYN_REPORT ------------
Event: time 1507066105.540657, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066105.540657, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066105.540657, -------------- SYN_REPORT ------------
Event: time 1507066105.668748, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066105.668748, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066105.668748, -------------- SYN_REPORT ------------
Event: time 1507066110.039398, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066110.039398, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1507066110.039398, -------------- SYN_REPORT ------------
Event: time 1507066110.151475, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1507066110.151475, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1507066110.151475, -------------- SYN_REPORT ------------

...all map to left shift.

Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

I think you need to capture the packet, and implements a new driver by yourself, like the azio driver author did:
https://swoogan.blogspot.tw/2014/09/azio-l70-keyboard-linux-driver.html

Changed in linux (Ubuntu):
importance: Medium → Wishlist
status: Incomplete → Confirmed
Revision history for this message
Peter Rhone (prhone-gmail) wrote :

Hmm, OK, I'll have a look, thanks - might be a fun weekend project. Though it sounds like a new keyboard is a better option.

Warning to potential customers, don't buy this keyboard!

Revision history for this message
Peter Rhone (prhone-gmail) wrote :

I was just sitting down to figure out how to write a device driver, and when I loaded the usbmon module and fired up wireshark the keyboard started behaving. The first few keys were captured with the "modified" keycodes that the usbhid driver doesn't recognize properly, then it seems to have switched into "normal" mode and behaved like a regular usb keyboard. I tried it on two computers with the same result, i.e. sudo modprobe usbmon, sudo wireshark "fixes" the problem for some strange reason. Now if only I could figure out how to trigger the mode switch in a less annoying way that would be great.

Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Does the VID:PID remain the same before/after the "mode switch"?

Revision history for this message
PeterDaveHello (peterdavehello) wrote :

I have the same problem with device id 1c4f:0101, but I have no problem with my Win10 on the same machine

Revision history for this message
Eric Bennett (0cs935-eric-wz6bky) wrote :

From Peter's description of the problem I guessed that it was wireshark setting promiscuous state on the virtual usbmon interface that caused the keyboard to go back to working state, which I knew should also be possible via tcpdump -i usbmon3 where usbmon3 is the interface that corresponds to the usb device in question.

This works as a short term hack.

sudo modprobe usbmon && sudo tcpdump -i usbmon3

Then you will be able to use the keyboard to ctrl-c out of it. Once the state has been set it appears to be permanent and persistent until next reboot.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.