Keycodes missing / wrong on Lenovo Yoga 2 Pro

From: Nico Schottelius
Date: Tue Jan 28 2014 - 11:30:06 EST


Good day kernel hackers,

when trying out which events are recognised by xev
to adjust my xbindkeysrc, I noticed that various keys
are incorrectly recognised on this machine:

- mute button on the side returns "f", should be xf86audiomute

- fn + f4 returns f4, should be "Lock" (if we have such a symbol)
- fn + f5 returns f5, should be ? (has to arrows on it)
- fn + f6 returns nothing, should be "toggletouchpad" (or whatever
the name of it is)
dmesg returns
[93762.432649] atkbd serio0: Unknown key released (translated set
2, code 0xbf on isa0060/serio0).
[93762.432653] atkbd serio0: Use 'setkeycodes e03f <keycode>' to
make it known.

- fn + f8 returns tab, should be ?
- fn + f10 returns Super_L and q, should be "Switchmonitor"
- fn + home returns pause (correct)
- fn + end returns pause (is there a key for break?)

I am wondering how to fix those keys (xorg, kernel?).
I used 3.12.7 and X 1.15.0 for testing.

Other interesting keys:

- fn + f9 turns of the screen (seems to be hardware wise)

Furthermore I am wondering if there is a sensible way to change
the event I get from the Windows Logo below the touchscreen (currently
reported as Super_L). It would be awesome to be able to able to
distinguish the key between the touchscreen and the windows key.
Also, the "key" below the touchscreen cannot be pressed and combined
with keys on the keyboard.

I have uploaded pictures of the keyboard at
http://home.schottelius.org/~nico/lenovo_yoga_2_pro/

Cheers,

Nico

p.s.: Please cc me on reply.
pps: The kernel fonts are (almost) unreadable when booting this
device - the 3200x1800 resolution is definitely requiring
another font.

--
PGP key: 7ED9 F7D3 6B10 81D7 0EC5 5C09 D7DC C8E4 3187 7DF0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/