Closed jigpu closed 3 years ago
@Weewoolad, you said:
Partially working on Lubuntu with kernel 5.8.0-29. Attempted and failed with Void Linux with kernel 5.8 (no detection). Attempted and failed with Lubuntu with kernel 5.10 (no detection).
Can you give me a little more information about the kernel 5.8 versus 5.10 installs of Lubuntu? Were they both Lubuntu 20.04? Were you running Lubuntu-provided kernels both times, or did you get them from some other source (or built yourself)?
I haven't been able to find anything suspicious in the ACPI tables so far, unfortunately. I've continued digging and am now growing suspicious of the kernel's 8250 serial port driver. Back in the ancient days there were several Wacom sensors which connected to the system via an (internal) serial port. It looks like the kernel's serial port driver has a wildcard match for any "WACF" device, which could cause problems for these new "WACF2200" devices that are actually connected over I2C. If anyone is comfortable with compiling and testing custom kernels, try using a version of the kernel with your current configuration (usually found at /proc/config.gz
) but with the following patch applied:
diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c
index de90d681b64c..b1536d564f09 100644
--- a/drivers/tty/serial/8250/8250_pnp.c
+++ b/drivers/tty/serial/8250/8250_pnp.c
@@ -331,7 +331,7 @@ static const struct pnp_device_id pnp_dev_table[] = {
/* U.S. Robotics 56K Voice INT PnP*/
{ "USR9190", 0 },
/* Wacom tablets */
- { "WACFXXX", 0 },
+// { "WACFXXX", 0 },
/* Compaq touchscreen */
{ "FPI2002", 0 },
/* Fujitsu Stylistic touchscreens */
@jigpu , Thanks for all your effort! I would be happy to build a custom kernel, but unfortunately the coming three weeks I am still "swamped" with preparing on-line exams, etc. due to the Covid situation. I would have some time in three weeks (during the Xmas holiday period). If nobody can test it before than I'll be happy to dig into it in three weeks.
I haven't been able to find anything suspicious in the ACPI tables so far, unfortunately. I've continued digging and am now growing suspicious of the kernel's 8250 serial port driver. Back in the ancient days there were several Wacom sensors which connected to the system via an (internal) serial port. It looks like the kernel's serial port driver has a wildcard match for any "WACF" device, which could cause problems for these new "WACF2200" devices that are actually connected over I2C. If anyone is comfortable with compiling and testing custom kernels, try using a version of the kernel with your current configuration (usually found at
/proc/config.gz
) but with the following patch applied:diff --git a/drivers/tty/serial/8250/8250_pnp.c b/drivers/tty/serial/8250/8250_pnp.c index de90d681b64c..b1536d564f09 100644 --- a/drivers/tty/serial/8250/8250_pnp.c +++ b/drivers/tty/serial/8250/8250_pnp.c @@ -331,7 +331,7 @@ static const struct pnp_device_id pnp_dev_table[] = { /* U.S. Robotics 56K Voice INT PnP*/ { "USR9190", 0 }, /* Wacom tablets */ - { "WACFXXX", 0 }, +// { "WACFXXX", 0 }, /* Compaq touchscreen */ { "FPI2002", 0 }, /* Fujitsu Stylistic touchscreens */
Then I have to comment the WACFXXXX line right ? Like this From
**Beginning of 8250_pnp.c**
/* U.S. Robotics 56K Voice INT PnP*/
{ "USR9190", 0 },
/* Wacom tablets */
{ "WACFXXX", 0 },
/* Compaq touchscreen */
{ "FPI2002", 0 },
/* Fujitsu Stylistic touchscreens */
**End of 8250_pnp.c**
To
**Beginning of 8250_pnp.c**
/* U.S. Robotics 56K Voice INT PnP*/
{ "USR9190", 0 },
/* Wacom tablets */
// { "WACFXXX", 0 },
/* Compaq touchscreen */
{ "FPI2002", 0 },
/* Fujitsu Stylistic touchscreens */
**End of 8250_pnp.c**
@Weewoolad, you said:
Partially working on Lubuntu with kernel 5.8.0-29. Attempted and failed with Void Linux with kernel 5.8 (no detection). Attempted and failed with Lubuntu with kernel 5.10 (no detection).
Can you give me a little more information about the kernel 5.8 versus 5.10 installs of Lubuntu? Were they both Lubuntu 20.04? Were you running Lubuntu-provided kernels both times, or did you get them from some other source (or built yourself)?
Yes, all three kernels were booted against the same install of kubuntu 20.10. I used kernel 5.10rc5 from a .Deb package from kernel.ubuntu.com/kernel-ppa/mainline. The 5.8 kernels (5.8.0-25 and 5.8.0-29) came from kubuntu's gui package manager. The live cd of kubuntu 20.10 works as well. It's usable until the tablet is assigned a profile in kde's settings, where touch gestures are finicky, but it's servicable after gestures are turned off. Pressure sensitivity also works in krita after a profile is assigned.
Important edit: I initially said lubuntu, but it's actually kubuntu. I apologise for the confusion.
@richibrics -- that's correct
@Weewoolad -- thanks, I'll follow up on those leads!
@jigpu
I initially said lubuntu, but it's actually kubuntu. I apologise for the confusion.
@jigpu , I had some spare minutes and tried 2 things on my Yoga Duet: I compiled a new kernel (5.7.5) with the provided patch: no change. I tried the Kubuntu 20.10 live cd (kernel 5.8.0-29): same as with Ubuntu 20.04 LTS. What Information would you require to continue your search?
Thanks @BFH-ktt1. This morning I also a look at the Kubuntu 20.10 kernel config (kernel 5.8.0-25) and see that it has the 8250 drivers enabled. I was thinking that maybe they disabled the 8250 driver entirely, which would cause a similar effect to commenting out the one line. Its looking less and less like the 8250 wildcard is at fault...
Kubuntu 20.10 working for @Weewoolad but not you is also especially interesting since that implies some kind of hardware or firwmare difference. I'll be making a second comparison of the logs you two have gathered to see if anything stands out...
I try Kubuntu and let you know
Does not work on Kubuntu with kernel 5.8.0-29-generic both installed or live Dmesg attached dmesg.log
@jigpu I compiled a custom kernel (5.9.11) with your patch, but I had no success in getting anything related to the touchscreen to work. Do you need any outputs/logs? I will happily provide them, just let me know! Also, would you like me to try out the partially working Kubuntu?
@neonfighter28 thanks for the report; no logs necessary. A test of Kubuntu would be appreciated though
I try Kubuntu and let you know
I try Without success with: Ubuntu 20.10 Kubuntu 20.10 Lubuntu 20.10 Fedora 33 Deepin 20 Manjaro gnome 20.1.2 Manjaro kde 20.1.2 Opensuse15.2 ChromeOS branch kernel 4.4 ChromeOS branch next kernel 5.4
@jigpu No success on Kubuntu 20.10 with kernel 5.8.0-25, xinput --list
shows the same as on arch
I try Kubuntu and let you know
I try Without success with: Ubuntu 20.10 Kubuntu 20.10 Lubuntu 20.10 Fedora 33 Deepin 20 Manjaro gnome 20.1.2 Manjaro kde 20.1.2 Opensuse15.2 ChromeOS branch kernel 4.4 ChromeOS branch next kernel 5.4
Today i installed the 5.10 rc6 kernel on ubuntu 20.10 but the result is always the same
nothing news?
I did some reasearch, because I'm going to get a Lenovo IdeaPad Flex 5 to christmas and found out something interesting. In the Archwiki under discussion of the tablet is somebody who wrote, that the touch is working (At least with a pen).
His output of dmesg|grep wacom
[ 5.155680] input: Wacom HID 5218 Pen as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input25
[ 5.155794] input: Wacom HID 5218 Finger as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26
[ 5.155884] wacom 0018:056A:5218.0001: hidraw0: I2C HID v1.00 Mouse [WACF2200:00 056A:5218] on i2c-WACF2200:00
Link: https://wiki.archlinux.org/index.php/Talk:Lenovo_IdeaPad_Flex5(Ryzen)
I did some reasearch, because I'm going to get a Lenovo IdeaPad Flex 5 to christmas and found out something interesting. In the Archwiki under discussion of the tablet is somebody who wrote, that the touch is working (At least with a pen). His output of
dmesg|grep wacom
[ 5.155680] input: Wacom HID 5218 Pen as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input25 [ 5.155794] input: Wacom HID 5218 Finger as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26 [ 5.155884] wacom 0018:056A:5218.0001: hidraw0: I2C HID v1.00 Mouse [WACF2200:00 056A:5218] on i2c-WACF2200:00
Link: https://wiki.archlinux.org/index.php/Talk:Lenovo_IdeaPad_Flex5(Ryzen)
Flex 5 Ryzen it doesn't have the wacom 2200. It is different from flex 5 i3 10gen
Are you sure?
The Path is /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26
which includes WACF2200
and as far as I followed this issue this is the sensor. Also on top it says, that the Lenovo Idea Pad Flex 5 14ARE05
has this problem, even though it's a amd.
To the naming:
ARE = amd and IIL = intel as far as I saw it
Are you sure? The Path is
/devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26
which includesWACF2200
and as far as I followed this issue this is the sensor. Also on top it says, that theLenovo Idea Pad Flex 5 14ARE05
has this problem, even though it's a amd. To the naming: ARE = amd and IIL = intel as far as I saw it
I'm sorry, you're right. I got confused with ideapad 5 amd which uses elan's touchscreen
In any case I had installed manjaro with no success. I'll try with arch linux
[https://wiki.archlinux.org/index.php/Talk:Lenovo
Are you sure? The Path is
/devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26
which includesWACF2200
and as far as I followed this issue this is the sensor. Also on top it says, that theLenovo Idea Pad Flex 5 14ARE05
has this problem, even though it's a amd. To the naming: ARE = amd and IIL = intel as far as I saw itI did some reasearch, because I'm going to get a Lenovo IdeaPad Flex 5 to christmas and found out something interesting. In the Archwiki under discussion of the tablet is somebody who wrote, that the touch is working (At least with a pen). His output of
dmesg|grep wacom
[ 5.155680] input: Wacom HID 5218 Pen as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input25 [ 5.155794] input: Wacom HID 5218 Finger as /devices/platform/AMDI0010:00/i2c-0/i2c-WACF2200:00/0018:056A:5218.0001/input/input26 [ 5.155884] wacom 0018:056A:5218.0001: hidraw0: I2C HID v1.00 Mouse [WACF2200:00 056A:5218] on i2c-WACF2200:00
Link: https://wiki.archlinux.org/index.php/Talk:Lenovo_IdeaPad_Flex5(Ryzen)
the owner uses manjaro 20.0.1 with the 5.6.12-1-MANJARO kernel
This is his hd-probe: https://linux-hardware.org/index.php?probe=cd3c373e02
I have an IdeaPad Flex 5 Rayzen, the issue with the touchscreen seems to be solved for me with kernel 5.10.0-051000-generic
on Ubuntu 20.04.
I have an IdeaPad Flex 5 Rayzen, the issue with the touchscreen seems to be solved for me with kernel
5.10.0-051000-generic
on Ubuntu 20.04.
I just installed kernel 5.10.0-051000-generic on Ubuntu as you did but, no touchscreen recognition :-(
Interesting...
I have an IdeaPad Flex 5 Rayzen, the issue with the touchscreen seems to be solved for me with kernel
5.10.0-051000-generic
on Ubuntu 20.04.I just installed kernel 5.10.0-051000-generic on Ubuntu as you did but, no touchscreen recognition :-(
My outputs,
dmesg | grep wacom
[ 2.337434] wacom 0018:056A:5218.0002: hidraw1: I2C HID v1.00 Mouse [WACF2200:00 056A:5218] on i2c-WACF2200:00
lsinput
/dev/input/event8
bustype : BUS_I2C
vendor : 0x56a
product : 0x5218
version : 256
name : "Wacom HID 5218 Pen"
phys : "i2c-WACF2200:00"
uniq : ""
bits ev : (null) (null) (null) (null)
/dev/input/event9 bustype : BUS_I2C vendor : 0x56a product : 0x5218 version : 256 name : "Wacom HID 5218 Finger" phys : "i2c-WACF2200:00" uniq : "" bits ev : (null) (null) (null)
- I get readings with `sudo mtdev-test /dev/input/event9` using my finger. I don't have a pen.
- `xinput --list`
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Wacom HID 5218 Pen stylus id=12 [slave pointer (2)] ⎜ ↳ Wacom HID 5218 Finger touch id=13 [slave pointer (2)] ⎜ ↳ MSFT0001:00 06CB:CE2D Mouse id=14 [slave pointer (2)] ⎜ ↳ MSFT0001:00 06CB:CE2D Touchpad id=15 [slave pointer (2)] ⎜ ↳ Wacom HID 5218 Pen eraser id=17 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ Integrated Camera: Integrated C id=10 [slave keyboard (3)] ↳ Ideapad extra buttons id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
- I don't have the `usbtouchscreen` module installed.
This is my hw-probe with Ubuntu with your kernel 5.10.0-051000-generic:
This is my hw-probe with Ubuntu with your kernel 5.10.0-051000-generic:
This is my hw-probe for my Ideapad Flex 5 14ARE05
https://linux-hardware.org/?probe=2ed404ea1d
We have different versions of Flex 5. What could be happening here?
I remember my touchscreen worked some time ago, then it stooped working after kernel 5.9.4
(or before that), and now it's back after 5.10
upgrade.
This is my hw-probe
it's a mistery. I don't know what to think / do anymore. the touchscreen with windows 10 works so I rule out a hardware problem in my case
I found some differences in your configuration files that could cause the issue. @ccontrer has multiple files in his xorg.conf.d folder, including some things for wacom and touchscreens. You can also see, that in @Alexfebbraio PC the xorg log isn't even something logged related to wacom.
Also has @ccontrer the wacom module loaded. You could try loading it with sudo modprobe wacom
. (You can unload it again with sudo modprobe -r wacom
but on my desktop-PC I had to replug the keyboard to get it and the mouse work again) It is also noteworthy, that in general @ccontrer has other modules loaded under hid.
Comparision Link (dmesg):
@ccontrer (working):
https://linux-hardware.org/index.php?probe=2ed404ea1d&log=lsmod
@Alexfebbraio (not working):
https://linux-hardware.org/index.php?probe=c046829816&log=lsmod
And I found that @ccontrer has some modules blacklisted. (modprobe.d)
So my guess would be, that some other module takes over the tablet and then fails, but I'm not sure. It could also help to see, if there is something listed under /sys/devices/platform/???/i2c-???
, because in @ccontrer's dmesg you can see, that the wacom device is connected via i2c. (Link to the dmesg)
It seems the latest kernel for Ideapad Flex 5 14ARE05 can detect the hardware.
For the below model it can't even detect the hardware correctly.
IdeaPad Flex 5 14IIL05
https://linux-hardware.org/?probe=634978913d
It seems the latest kernel for Ideapad Flex 5 14ARE05 can detect the hardware.
For the below model it can't even detect the hardware correctly. IdeaPad Flex 5 14IIL05 https://linux-hardware.org/?probe=634978913d
exactly. I wonder why?
I think it is a good to have a live-image with that we can find out, if the Wacom driver is behaving differently on the Amd and Intel tablet PCs, with exactly same software. I made a repository for that (https://github.com/Donald4444/wacf2200-iso) where you can build the Iso by yourself (just run the generate.sh script in the folder (needs the archiso package on Archlinux)) or you can download the ISO at the releases (https://github.com/Donald4444/wacf2200-iso/releases/tag/kernel-5-9-14). Sadly only the 5.9.14 kernel is currently in the not-testing repository. (I will update the repo, when the 5.10 kernel is in the offical repositorys). To be sure, that every generation of a ISO has the same packages I configured pacman to use the archlive server, where you can specify a date, from when the packages should be downloaded. Note that this ISO doesn't need an installation and is a live system.
Usage: When booting up you should see the sddm login manager. You can select on the top the session (including i3, sway, plasma (Xorg) and plasma (Wayland)). Then you select the user user
and press enter (there is no password set).
The important keybindings for i3 and sway are:
Super+Enter
: Terminal
Super+Shift+E
: Exit
Super+T
: Dolphin (File Manager)
Super+D
: Launcher
You can find the full config in {kernel-version}/archlive/airootfs/etc/skel/.config/{i3 or sway}/config
in the repository or in the live-system with cat ~/.config/{i3 or sway}/config
.
I think this could help getting clearance, if the Amd and Intel have a bigger difference in some hardware part (e.g. the connection to the Wacom sensor).
I think the most important logs would be lsmod
, dmesg
, Xorg (/var/log/Xorg.0.log
and ~/.local/share/xorg/Xorg.0.log
), xsetwacom list devices
, xinput list
and all found devices (/proc/bus/input/devices
).
To test the pen I also included xournalpp, gimp and krita.
Because I don't know if this ISO is generally working with the tablet PCs I would ask @ccontrer to test it first and write, if the touchscreen is working in general, because it seems that the kernel can detect the sensor on his tablet PC.
I hope this will help finding out, if the Amd and Intel Systems behave different on the exactly same Kernel/Software.
Edit: Forgot the Shift key at exit
Hi @Donald4444 , the touchscreen is detected and working very well with the ISO kernel-5-9-14
(except if I connect an external monitor), including scrolling and two-finger gestures. I don't have a pen.
Here are the logs:
lsmod
dmesg
varXorg
I couldn't find folder .local/share/xorg/
xsetwacom
xinput
devices
Let me know.
PD: Super+E
didn't work.
Ok. So I think if the ISO works out of the box with the tablet PC on Amd, it should also work out of the box with intel. I would ask @Alexfebbraio to try it out. (It would be also nice, if you could include the logs).
If it works with the ISO it seems that there is something weird with the config files in Ubuntu. If it doesn't work I would except something weird in the Hardware or BIOS/UEFI settings. (Or maybe a problem with the connection driver (probably I2C))
@Donald4444 , First of all, thanks for your work! Than: I tried the .iso on my Yoga Duet (intel based) and no detection of the touch-screen, Hope this helps.
@BFH-ktt1 can you attach some logs? I think it could help to see, if the kernel has some sort of error (e.g. i2c-problems). Thanks in advice
Thanks also from me. On the fly (I'm cooking vegetables au gratin in the oven), I downloaded the iso and started it on my i3 10gen. Unfortunately the wacom hardware is not detected. As soon as I can, I post my logs
Ok. Can you also post the output of ls /sys/devices/platform/*/i2c*/
? (It could also return zsh: no matches found: /sys/devices/platform/*/i2c*/
)
@Donald4444 , of course, will post it first thing tomorrow morning.
These are my logs: dmesg.log lsmod.log xinput.log
'ls /sys/devices/platform//i2c/' returns nothing
If it helps, to understand what hardware wacom has, this is the msinfo32 log generated by the windows 10 home of my i3 10gen
Ok. Thank you all. I thought of the possibility that Lenovo swapped out the WACF2200 for some reason but thanks to @Alexfebbraio msinfo32.log I saw that the WACF2200 is definitly used.
I think that there is either a problem with the communication between cpu and the sensor or a problem in the automatic detection.
Can one of you (where the touchscreen isn't working) test, if running sudo modprobe wacom usbhid
lets the touchscreen react or adds some output to dmesg
and xinput
?
Also a question to @ccontrer: Did you some sort of firmware upgrade (downloaded something from the lenovo website and installed it (probably under Windows) except drivers)?
@Donald4444
dmesg this is my dmesg
after I modprobed the two modules. Edit: I should add that I booted back into my system, would you like me to do it on your usb?
xinput --list
remains the same
thanks for helping us resolve this issue!
Also a question to @ccontrer: Did you some sort of firmware upgrade (downloaded something from the lenovo website and installed it (probably under Windows) except drivers)?
No, I did not. Just kernel upgrade.
I hope that the things I do help. Sadly I know nearly nothing in C programming and nothing in modifying the linux kernel source code. I just try to find out where the issue is as close as possible, but probably somebody like @jigpu will have to find the issue in the source code itself and make patches. I think currently we would need a kernel which logs, which i2c devices are generally detected, to see if the WACF2200 sensor is generally showing up, because on the current kernel we only get it detected as input or nothing. (See dmesg of @ccontrer (Amd) and dmesg of any other (Intel))
Currently my guess is, that something in the communication on the Intel platform is bad. This would be a problem in the kernel, but I think this is very unlikely. Could you also look in the BIOS/UEFI if there is something related to i2c, wacom or touch?
Sadly I'm currently running out of Ideas, because on multiple seemingly completly identically system (at least software side) it behaves differently and the only two major differences I can find are, that the wacom
(and some other) modules aren't loaded and manually loading them don't work. The other is the platform/hardware (Amd/Intel) and maybe the BIOS/UEFI settings.
devices.txt dmesg.txt dmesg_aftermodprobe.txt i2c_devices.txt lsmod.txt xinput.txt Xorg.0.log @Donald4444 , as promised the outputs on my duet, note thet the dmesg_aftermodprobe.txt is the dmesg after perfoeming modprobe wacom. Hope this helps.
Ok. Thank you @BFH-ktt1. I think the ls command I made was wrong. Can some of you try to run sudo find /sys/ -iname "*wacf*"
and if that return's nothing sudo find /sys/ -iname "*i2c*"
?
Because from @BFH-ktt1's i2c_devices.txt
output the WACF2200 seems to be detected by the kernel as "it's there, but I don't know what to do with it"
Ok. Thank you @BFH-ktt1. I think the ls command I made was wrong. Can some of you try to run
sudo find /sys/ -iname "*wacf*"
and if that return's nothingsudo find /sys/ -iname "*i2c*"
? Because from @BFH-ktt1'si2c_devices.txt
output the WACF2200 seems to be detected by the kernel as "it's there, but I don't know what to do with it"
OK sudo find /sys/ -iname "wacf"` wacf.log
sudo find /sys/ -iname "i2c"` i2c.log
@ccontrer can you run the command sudo find /sys/ -iname "*i2c*"
too? It seems that the kernel detects the sensor, but the driver doesn't recognize it or something other is causing the driver to fail without giving out an error.
I think with that output we could be rather sure, if everything necessary from the WACF2200 sensor is detected.
It seems that many recent Lenovo devices are not having their touchscreen / pen sensor detected by the Wacom driver. The common thread so far seems to be the use of the WACF2200 ACPI ID in these devices. This issue will centralize the multiple bug reports that have been flowing in.
Affected devices:
Notes:
Hypotheses: