Lenovo IdeaPad touch inductive SlideNav panel does not work

Bug #543119 reported by RussianNeuroMancer on 2010-03-21
This bug affects 10 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)

Bug Description

Lenovo Yxx0 laptops have a touch inductive panel http://www.gigamark.com/images/stories/8/Lenovo_y550/Untitled-4.jpg contains the pretty cool navigation slidebar http://www.fcenter.ru/img/article/notebooks/Lenovo_IdeaPad_Y550P/152399.jpg
How SlideNav should work:
User assign applications to the numbers. When user want to launch one of them, he touch slidenav in any place (touch but did not raise finger), after that driver show applications list on the screen http://www.fcenter.ru/img/article/notebooks/Lenovo_IdeaPad_Y550P/152341.jpg User move finger to the lift or to the right, until needed application was selected on the screen. When apllication selected user raise finger and this application get started.

I tried use tp-smapi-dkms for detect slidenav buttons, but it's not work for me with error: No such device.
Even if I was able to detect slidenav buttons it's not enough - there need a program that works like an official Lenovo driver (show applications list when user touch panel).

affects: kubuntu-meta (Ubuntu) → ubuntu
Changed in ubuntu:
importance: Undecided → Wishlist
affects: ubuntu → udev (Ubuntu)
description: updated
Martin Pitt (pitti) on 2010-08-26
affects: udev (Ubuntu) → linux (Ubuntu)
description: updated
Changed in linux:
status: Unknown → Confirmed
Changed in linux:
importance: Unknown → Medium
Brad Figg (brad-figg) on 2011-05-04
Changed in linux (Ubuntu):
status: New → Confirmed
fed0r (t0rchochek2) on 2011-11-13
tags: added: slidenav

[ 1884.664075] atkbd serio0: Use 'setkeycodes e03b <keycode>' to make it known.
[ 1884.715562] atkbd serio0: Unknown key released (translated set 2, code 0xbb on isa0060/serio0).
in dmesg after pressing on slidenav

All ten buttons detected as one.

it seems that slidenav had only one button e03b in linux
to map it simply do this
sudo dumpkeys |grep ^keycode
setkeycodes e03b 69
this adds num lock button to slidenav

Arnoques (arnoques) wrote :

According to Lenovo's website (consumersupport.lenovo.com/ot/en/DriversDownLoads/Drivers_Show_4482.html), in Windows the SlideNav depends on the Synaptics driver. This makes me think that the SlideNav manufacturer is Synaptics. It is also called slidebar in many hardware manuals from Lenovo.

In addition, my slidenav it's not detected as a keyboard but in /proc/bus/input/devices I have a "PS/2 Generic Mouse" even when there's no PS/2 connector in my notebook. Since Synaptics touchpads are also PS/2, I'm guessing that the slidenav is detected as that extra mouse because that's the generic catch-all.

If this is right, we should file a feature request in the bugzilla for xorg-input-synaptic (https://bugs.freedesktop.org/buglist.cgi?product=xorg&component=Input%2Fsynaptics) instead of the linux-kernel.

I attached details of the hardware.

joncamfield (jon-camfield) wrote :

I have a y550 and am interested in making this capacitive slider useful. With Unity, it would be amazing to have touch activate the launcher and select items within it (similar to the keyboard selection process)

Arnoques (arnoques) wrote :

Ok, there are some news, though they aren't very good. To make a xorg-input driver we first need kernel support (https://bugs.freedesktop.org/show_bug.cgi?id=50660#c1), but that won't happen unless we write it ourselves. The kernel project only takes and integrates code contributions.

So I hope at least one of us (the owners of laptops with slidenavs) is able to write the code required for kernel support. I'm wiling to help, but I certainly can't do it on my own. Any volunteers?

Osman Çaylak (osmancik) wrote :

Yes I can help. I have an ideapad y560p.

Arnoques (arnoques) wrote :

That's great, Osman!! I'm sorry it took me so long to respond. Fortunately, I'll have some time to spend on this in the near future.

Just some more info I found:
I opened my notebook and the sensor was marked as 37KL2KCLV00. I found this page with pictures of the board http://www.mocom.ru/Component/motherboard/lenovo/ideapad_y460/lenovo_ideapad_y460_media-board.html
Also, I believe the sensor follows the specifications in http://www.synaptics.com/sites/default/files/511-000025-01g.pdf, although I have no real evidence.

If you want, we can keep in touch by e-mail. Cheers,

Andrey Moiseev (o2genum) wrote :

Got some ideas about it, and I'm going to write a driver for the touch panel, but how could such a driver interact with client programs? And is it actually a kernel issue? Isn't it rater about Xorg or something else? Should such a driver for exotic slidebar be included in the kernel?

Arnoques (arnoques) wrote :

Hi Andrey. I'm glad someone is still interested in this.
Yes, the device must first be supported by the kernel, according to Peter Hutterer 's comment in the freedesktop bug. If this driver is included in a module it will be only imported into the kernel when the device is present, just like any other driver.
I haven't investigated yet what's the preferred way to communicate the kernel space driver to the user space, but there should be documentation about this. You could also check out how a touchpad driver works.
Please do keep us posted if you make any progress.

Andrey Moiseev (o2genum) wrote :

Finished the driver yesterday and submitted a patch to the kernel: https://lkml.org/lkml/2013/7/30/629 Hope they'll accept it. Anyway, anyone can take the source from there: https://github.com/o2genum/ideapad-slidebar and build it as a module against your current kernel.Testing is needed, as I only added IdeaPad Y550P as supported model. On other models, should be loaded with force=true parameter. More docs in the source. If it works on your laptop, send me the cat of your /sys/devices/virtual/dmi/id/modalias

Egaz (egor-azarov) wrote :

I tried it with Model: 20017 (Lenovo IdeaPad Y550)
by default i have "2b" value and sometimes "ab".
I partly understood the source code, but there is no time for experiments.

Andrey Moiseev (o2genum) wrote :

Some progress:
* added Y550
* resent the patch to the proper place, linux-input: https://patchwork.kernel.org/patch/2838250/

Andrey Moiseev (o2genum) wrote :

Here is the latest patch (some fixes and enhancements) : https://patchwork.kernel.org/patch/2843012/
If you're interested, subscribe to 'linux-input' kernel mailing list, posting here is somewhat lame.

Andrey Moiseev (o2genum) on 2013-08-24
summary: - Lenovo touch inductive SlideNav panel not work
+ Lenovo touch inductive SlideNav panel does not work
summary: - Lenovo touch inductive SlideNav panel does not work
+ Lenovo IdeaPad touch inductive SlideNav panel does not work
madbiologist (me-again) wrote :

This driver will be available in the upstream 3.12 kernel.

madbiologist (me-again) wrote :

A PPA if the 3.12 kernel will be available at http://kernel.ubuntu.com/~kernel-ppa/mainline/ and instructions on how to install and uninstall it are at https://wiki.ubuntu.com/Kernel/MainlineBuilds

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

Other bug subscribers

Remote bug watches

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