Keyboard CTRL, ALT and SUPER keys binded as SHIFT

Bug #1419563 reported by Jesús David Gulfo Agudelo
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linux Mint
New
Undecided
Unassigned
Ubuntu
Confirmed
Undecided
Unassigned

Bug Description

OS version: Linux Mint 17 'Qiana' Cinnamon 64-bit

I've been using a generic Genius keyboard for a while now, but I bought this new backlit keyboard, and it has a couple of issues, which I have to mention, are ONLY present on Linux, the keyboard works perfectly fine on the same PC booting into Windows (on another hard drive) the most relevant, the one on the title:

1. Caps lock and num lock leds won't light up but the function works as expected

2. Num pad is not working at all. With our without num lock it doesn't matter. - SOLVED

3. CTRL, ALT, SUPER keys are binded as SHIFT and their keycodes seem to be the same on all the tools

* sudo showkey -s

# for left control key
0x2a 0xaa

# for windows (super) key
0x2a 0xaa

# for left alt key
0x2a 0xaa

Same output is returned for right ALT and CTRL

* xev

# for left control key

KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x2d6, subw 0x0, time 3745368, (445,348), root:(447,396),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

# for left alt key

KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x2d6, subw 0x0, time 3774512, (336,344), root:(338,392),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

Same output is returned for the rest of the keys

* sudo evtest

# for left ctrl, left alt, right alt

Select the device event number [0-19]: 4
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xc45 product 0x7603 version 0x111
Input device name: "SONiX USB Keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 2 (KEY_1)
    Event code 3 (KEY_2)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
    Event code 8 (KEY_7)
    Event code 9 (KEY_8)
    Event code 10 (KEY_9)
    Event code 11 (KEY_0)
    Event code 12 (KEY_MINUS)
    Event code 13 (KEY_EQUAL)
    Event code 14 (KEY_BACKSPACE)
    Event code 15 (KEY_TAB)
    Event code 16 (KEY_Q)
    Event code 17 (KEY_W)
    Event code 18 (KEY_E)
    Event code 19 (KEY_R)
    Event code 20 (KEY_T)
    Event code 21 (KEY_Y)
    Event code 22 (KEY_U)
    Event code 23 (KEY_I)
    Event code 24 (KEY_O)
    Event code 25 (KEY_P)
    Event code 26 (KEY_LEFTBRACE)
    Event code 27 (KEY_RIGHTBRACE)
    Event code 28 (KEY_ENTER)
    Event code 29 (KEY_LEFTCTRL)
    Event code 30 (KEY_A)
    Event code 31 (KEY_S)
    Event code 32 (KEY_D)
    Event code 33 (KEY_F)
    Event code 34 (KEY_G)
    Event code 35 (KEY_H)
    Event code 36 (KEY_J)
    Event code 37 (KEY_K)
    Event code 38 (KEY_L)
    Event code 39 (KEY_SEMICOLON)
    Event code 40 (KEY_APOSTROPHE)
    Event code 41 (KEY_GRAVE)
    Event code 42 (KEY_LEFTSHIFT)
    Event code 43 (KEY_BACKSLASH)
    Event code 44 (KEY_Z)
    Event code 45 (KEY_X)
    Event code 46 (KEY_C)
    Event code 47 (KEY_V)
    Event code 48 (KEY_B)
    Event code 49 (KEY_N)
    Event code 50 (KEY_M)
    Event code 51 (KEY_COMMA)
    Event code 52 (KEY_DOT)
    Event code 53 (KEY_SLASH)
    Event code 54 (KEY_RIGHTSHIFT)
    Event code 55 (KEY_KPASTERISK)
    Event code 56 (KEY_LEFTALT)
    Event code 57 (KEY_SPACE)
    Event code 58 (KEY_CAPSLOCK)
    Event code 59 (KEY_F1)
    Event code 60 (KEY_F2)
    Event code 61 (KEY_F3)
    Event code 62 (KEY_F4)
    Event code 63 (KEY_F5)
    Event code 64 (KEY_F6)
    Event code 65 (KEY_F7)
    Event code 66 (KEY_F8)
    Event code 67 (KEY_F9)
    Event code 68 (KEY_F10)
    Event code 69 (KEY_NUMLOCK)
    Event code 70 (KEY_SCROLLLOCK)
    Event code 71 (KEY_KP7)
    Event code 72 (KEY_KP8)
    Event code 73 (KEY_KP9)
    Event code 74 (KEY_KPMINUS)
    Event code 75 (KEY_KP4)
    Event code 76 (KEY_KP5)
    Event code 77 (KEY_KP6)
    Event code 78 (KEY_KPPLUS)
    Event code 79 (KEY_KP1)
    Event code 80 (KEY_KP2)
    Event code 81 (KEY_KP3)
    Event code 82 (KEY_KP0)
    Event code 83 (KEY_KPDOT)
    Event code 85 (KEY_ZENKAKUHANKAKU)
    Event code 86 (KEY_102ND)
    Event code 87 (KEY_F11)
    Event code 88 (KEY_F12)
    Event code 89 (KEY_RO)
    Event code 90 (KEY_KATAKANA)
    Event code 91 (KEY_HIRAGANA)
    Event code 92 (KEY_HENKAN)
    Event code 93 (KEY_KATAKANAHIRAGANA)
    Event code 94 (KEY_MUHENKAN)
    Event code 95 (KEY_KPJPCOMMA)
    Event code 96 (KEY_KPENTER)
    Event code 97 (KEY_RIGHTCTRL)
    Event code 98 (KEY_KPSLASH)
    Event code 99 (KEY_SYSRQ)
    Event code 100 (KEY_RIGHTALT)
    Event code 102 (KEY_HOME)
    Event code 103 (KEY_UP)
    Event code 104 (KEY_PAGEUP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 107 (KEY_END)
    Event code 108 (KEY_DOWN)
    Event code 109 (KEY_PAGEDOWN)
    Event code 110 (KEY_INSERT)
    Event code 111 (KEY_DELETE)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 117 (KEY_KPEQUAL)
    Event code 119 (KEY_PAUSE)
    Event code 121 (KEY_KPCOMMA)
    Event code 122 (KEY_HANGUEL)
    Event code 123 (KEY_HANJA)
    Event code 124 (KEY_YEN)
    Event code 125 (KEY_LEFTMETA)
    Event code 126 (KEY_RIGHTMETA)
    Event code 127 (KEY_COMPOSE)
    Event code 128 (KEY_STOP)
    Event code 129 (KEY_AGAIN)
    Event code 130 (KEY_PROPS)
    Event code 131 (KEY_UNDO)
    Event code 132 (KEY_FRONT)
    Event code 133 (KEY_COPY)
    Event code 134 (KEY_OPEN)
    Event code 135 (KEY_PASTE)
    Event code 136 (KEY_FIND)
    Event code 137 (KEY_CUT)
    Event code 138 (KEY_HELP)
    Event code 139 (KEY_MENU)
    Event code 140 (KEY_CALC)
    Event code 142 (KEY_SLEEP)
    Event code 143 (KEY_WAKEUP)
    Event code 144 (KEY_FILE)
    Event code 150 (KEY_WWW)
    Event code 152 (KEY_SCREENLOCK)
    Event code 155 (KEY_MAIL)
    Event code 156 (KEY_BOOKMARKS)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 161 (KEY_EJECTCD)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 167 (KEY_RECORD)
    Event code 168 (KEY_REWIND)
    Event code 169 (KEY_PHONE)
    Event code 171 (KEY_CONFIG)
    Event code 172 (KEY_HOMEPAGE)
    Event code 173 (KEY_REFRESH)
    Event code 174 (KEY_EXIT)
    Event code 176 (KEY_EDIT)
    Event code 177 (KEY_SCROLLUP)
    Event code 178 (KEY_SCROLLDOWN)
    Event code 181 (KEY_NEW)
    Event code 182 (KEY_REDO)
    Event code 183 (KEY_F13)
    Event code 184 (KEY_F14)
    Event code 185 (KEY_F15)
    Event code 186 (KEY_F16)
    Event code 187 (KEY_F17)
    Event code 188 (KEY_F18)
    Event code 189 (KEY_F19)
    Event code 190 (KEY_F20)
    Event code 191 (KEY_F21)
    Event code 192 (KEY_F22)
    Event code 193 (KEY_F23)
    Event code 194 (KEY_F24)
    Event code 206 (KEY_CLOSE)
    Event code 207 (KEY_PLAY)
    Event code 208 (KEY_FASTFORWARD)
    Event code 209 (KEY_BASSBOOST)
    Event code 210 (KEY_PRINT)
    Event code 212 (KEY_CAMERA)
    Event code 216 (KEY_CHAT)
    Event code 217 (KEY_SEARCH)
    Event code 219 (KEY_FINANCE)
    Event code 223 (KEY_CANCEL)
    Event code 228 (KEY_KBDILLUMTOGGLE)
    Event code 231 (KEY_SEND)
    Event code 232 (KEY_REPLY)
    Event code 233 (KEY_FORWARDMAIL)
    Event code 234 (KEY_SAVE)
    Event code 235 (KEY_DOCUMENTS)
    Event code 240 (KEY_UNKNOWN)
    Event code 241 (KEY_VIDEO_NEXT)
    Event code 256 (BTN_0)
    Event code 353 (KEY_SELECT)
    Event code 354 (KEY_GOTO)
    Event code 358 (KEY_INFO)
    Event code 362 (KEY_PROGRAM)
    Event code 366 (KEY_PVR)
    Event code 370 (KEY_SUBTITLE)
    Event code 372 (KEY_ZOOM)
    Event code 374 (KEY_KEYBOARD)
    Event code 376 (KEY_PC)
    Event code 377 (KEY_TV)
    Event code 378 (KEY_TV2)
    Event code 379 (KEY_VCR)
    Event code 380 (KEY_VCR2)
    Event code 381 (KEY_SAT)
    Event code 383 (KEY_CD)
    Event code 384 (KEY_TAPE)
    Event code 386 (KEY_TUNER)
    Event code 387 (KEY_PLAYER)
    Event code 389 (KEY_DVD)
    Event code 392 (KEY_AUDIO)
    Event code 393 (KEY_VIDEO)
    Event code 396 (KEY_MEMO)
    Event code 397 (KEY_CALENDAR)
    Event code 398 (KEY_RED)
    Event code 399 (KEY_GREEN)
    Event code 400 (KEY_YELLOW)
    Event code 401 (KEY_BLUE)
    Event code 402 (KEY_CHANNELUP)
    Event code 403 (KEY_CHANNELDOWN)
    Event code 405 (KEY_LAST)
    Event code 408 (KEY_RESTART)
    Event code 409 (KEY_SLOW)
    Event code 410 (KEY_SHUFFLE)
    Event code 416 (KEY_VIDEOPHONE)
    Event code 417 (KEY_GAMES)
    Event code 418 (KEY_ZOOMIN)
    Event code 419 (KEY_ZOOMOUT)
    Event code 420 (KEY_ZOOMRESET)
    Event code 421 (KEY_WORDPROCESSOR)
    Event code 422 (KEY_EDITOR)
    Event code 423 (KEY_SPREADSHEET)
    Event code 424 (KEY_GRAPHICSEDITOR)
    Event code 425 (KEY_PRESENTATION)
    Event code 426 (KEY_DATABASE)
    Event code 427 (KEY_NEWS)
    Event code 428 (KEY_VOICEMAIL)
    Event code 429 (KEY_ADDRESSBOOK)
    Event code 430 (KEY_MESSENGER)
    Event code 432 (KEY_SPELLCHECK)
    Event code 433 (KEY_LOGOFF)
    Event code 439 (KEY_MEDIA_REPEAT)
    Event code 442 (?)
  Event type 2 (EV_REL)
    Event code 6 (REL_HWHEEL)
  Event type 3 (EV_ABS)
    Event code 32 (ABS_VOLUME)
      Value 0
      Min 0
      Max 896
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
  Property type 20 (EV_REP)
    Property code 0 (REP_DELAY)
      Value 250
    Property code 1 (REP_PERIOD)
      Value 33
Testing ... (interrupt to exit)
Event: time 1423439293.999038, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70028
Event: time 1423439293.999038, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1423439293.999038, -------------- SYN_REPORT ------------
Event: time 1423439295.415031, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439295.415031, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1423439295.415031, -------------- SYN_REPORT ------------
Event: time 1423439295.535041, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439295.535041, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1423439295.535041, -------------- SYN_REPORT ------------
Event: time 1423439297.559045, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439297.559045, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1423439297.559045, -------------- SYN_REPORT ------------
Event: time 1423439297.687039, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439297.687039, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1423439297.687039, -------------- SYN_REPORT ------------
Event: time 1423439300.711041, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439300.711041, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1423439300.711041, -------------- SYN_REPORT ------------
Event: time 1423439300.775043, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1423439300.775043, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1423439300.775043, -------------- SYN_REPORT ------------

As you see, it's like the 6 keys were only one, and also the other mentioned issues, what can I do about this? I don't want to stop using my keyboard, so any help is appreciated.

I also tried booting into an Ubuntu live USB and the same bug appears as soon as the boot logo shows up.

Related links:

http://askubuntu.com/questions/572394/ctrl-and-alt-keys-mapped-to-shift-for-some-reason

http://askubuntu.com/questions/417119/ctrl-alt-and-super-keys-are-all-mapped-as-left-shift-key-on-azio-keyboard?rq=1

http://ubuntuforums.org/showthread.php?t=2239909

http://ubuntuforums.org/showthread.php?t=1108340

Revision history for this message
Jesús David Gulfo Agudelo (jesdga95) wrote :
description: updated
description: updated
description: updated
description: updated
Revision history for this message
Jesús David Gulfo Agudelo (jesdga95) wrote :

Should I assume this bug is not being looked into?

Revision history for this message
Michael Webster (miketwebster) wrote :

I'm not sure there's a lot we can do - you can't re-map the keys (the obvious workaround) because they're sending identical codes. A quick google for "sonix usb keyboard linux" gives a number of similar/duplicate issues, with no resolution.

a) Try a different kernel version - this could be a regression on the kernel you're using, maybe try up/downgrading it.
b) Return the keyboard? (not sure this is possible, but I'd attempt to if it is) and buy a different one.

Revision history for this message
Colin Svingen (swoogan) wrote :

This is not a bug. The keyboard chipset uses a non-standard protocol to support n-key rollover. I wrote a driver for it. You can download it from https://bitbucket.org/Swoogan/aziokbd

I wrote a blog post about implementing it, ending with: http://swoogan.blogspot.com/2014/09/azio-l70-keyboard-linux-driver.html

Let me know if you have any issues with it.

Revision history for this message
Jesús David Gulfo Agudelo (jesdga95) wrote :

Colin Svingen, sir, you are my savior. It works wonderfully now! Thank you very much.

Revision history for this message
Youie (youieboy13) wrote :

I had the same problem with a Perixx PX-1800 keyboard on Linux Mint 17.2, I used swoogan's driver and it fixed it perfectly! :)
Thanks a lot!

Revision history for this message
Will (strangenetworks) wrote :

I am having the same issue with the same keyboard.

I've tried swoogan's driver, installed it using DKMS and also manually. It works if I run the install.sh and then unplug my keyboard and plug it back in, it works fine after that.

But as soon as I restart my computer, it's back to not working. I have to run the install.sh again and then unplug the keyboard and plug it back in.

Is there a way to make the driver stick?

Or a script I can have run at startup that will run the install.sh and somehow refresh the usb port it is plugged into?

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu:
status: New → Confirmed
Revision history for this message
Will (strangenetworks) wrote :

Ok I was able to finally resolve this in Linux Mint 17.2

Not sure exactly what change fixed this but I did as follows (after swoogan's automatic installer failed)

Created a file /etc/modprobe.d/usbhid.conf

in which the only line I put in was: options usbhid quirks=0x0c45:0x7603:0x0007

Created a file in /etc/default/grub.d/ named aziokbd.conf

Contained the line: options usbhid quirks=0x0c45:0x7603:0x0007

Copied this file to the etc/default directory

Copied it to etc/grub.d directory as well

(Not sure of the last two items helped or not, but I did it just in case)

Finally added :

GRUB_CMDLINE_LINUX_DEFAULT='usbhid.quirks=0x0c45:0x7603:0x7'

Directly to the Grub conf file located at: etc/default/grub.cfg

*I believe it mentioned this in his instructions, but I was thrown off by the missing .cfg after grub. I assumed it was a folder etc/default/grub

Ran sudo update-grub and restarted. Now my perixx 1800 keyboard works.

Hope this helps someone.

Revision history for this message
Julen (munin-ett) wrote :

First of all, thank you so much my new heros swoogan and finally strangenetworks - I (presently) solely registered to express my gratitude!!

As a real newbie newbie I got me linux mint 18.3 cinnamon recently, keyboard is a SL-6432-BK Lucidis.
I had (almost) the same trouble as strangenetworks, installing swoogan's driver didn't succeed neither with DKMS nor manually, only difference to strangenetworks was that running the install.sh and then to unplug/plug the keyboard didn't work here.

I still tried strangenetworks approach and getting my keyboard running worked as you described it.

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.