Kernel Recipes 2017 - What's inside the input stack? - Benjamain Tissoires
-
Upload
anne-nicolas -
Category
Technology
-
view
170 -
download
0
Transcript of Kernel Recipes 2017 - What's inside the input stack? - Benjamain Tissoires
What's inside the input stack?🐁
Kernel Recipes 2017
About me:
Benjamin Tissoires (irc: bentiss) • Software engineer at Red Hat • kernel hid-multitouch maintainer, hid core co-maintainer • also gives bad advice for the upper input stack
About the other guy:
Peter Hutterer (irc: whot) • Software engineer at Red Hat • libinput maintainer • Maintainer of the X.Org input stack, and evdev, synaptics, ... drivers • (99% of the time, 'we' means him and I)
Isn't it working already?
Problem is:hardware makers can be creative
And usage is changing
Outline: • Introduction • Input architecture • Talking about a bunch of devices • A little bit about security
Everything you never wanted toknow about 'how input works'
Components: • Kernel • libinput • "Wayland" or Xorg • toolkit • application
Kernel: • knows about protocols (HID, RMI4, ...) • knows about transport layer (USB, PS/2, SMBus, I2C, etc...) • talks evdev
Libinput: • because input is "easy" • relies on libevdev • does fancy things like gestures • has a global view of the input devices
Compositor (or Xorg): • loads libinput • pass incoming events to the right client
Toolkits: • relies on [see previous slides] • does fancy things like gestures too
Applications: • do something useful (hopefully)
The good, the bad and the ugly(of input devices)
Keyboards
Page left blank
Actually no...the Caps Lock LED in a TTY isbroken since UTF-8 support inthe kernel
Actually no...the Caps Lock LED in a TTY isbroken since UTF-8 support inthe kernel
pro tip: add /etc/udev/rules.d/99-kbd.rulesACTION=="add", \ SUBSYSTEM=="leds", \ ENV{DEVPATH}=="*/input*::capslock", \ ATTR{trigger}="kbd-ctrlllock"
Mice
(for the kernel)
Not much to add...
.
(for the kernel)
Not much to add...
except libratbag
libratbag:A thing to configure gaming mice
• fun project to hack on • allows for reverse engineering without the pain of breaking the kernel • supports many gaming devices: Logitech, Roccat, G-Skill, Razer (in progress)
Touchpads
Most are still using PS/2
story time: T440
story time: T440
story time: T450
story time: T450
A little bit about security(with a red background)
CVEs?: • yes, but only a few • one notable was regarding the ChromeBook injecting HID event through a web application
MouseJack
MouseJack:
Congrats, your mouse is IoT ready!
http://www.mousejack.com/
.
MouseJack:
Congrats, your mouse is IoT ready!
http://www.mousejack.com/
You have to update it
Summary: • Input architecture • some devices still need some care • security is also involved
Credits • PS/2 keyboard: CC BY Matthijs Kooijman • G600 Gaming Mouse: all rights reserved, Logitech • Lenovo X1 Carbon: CC BY-SA 2.0 Stannate • Lenovo Yoga Tablet 3 Pro: all rights reserved, Lenovo
Thanks!
benjamin.tissoires@(gmail|redhat).comIRC: bentiss @freenode @gimpnet
Summary: • Input architecture • some devices still need some care • security is also involved