DIGImend / digimend-kernel-drivers

DIGImend graphics tablet drivers for the Linux kernel
GNU General Public License v2.0
1.17k stars 173 forks source link

Add support for G640S #391

Open ghost opened 4 years ago

ghost commented 4 years ago

If G640 is working, how G640S isn't?

Sturwandan commented 4 years ago

XP-pen has completely different hardware variations even between same model number (G430S white and black). See my bug report (#388 ) for example and this guide explaining how to collect samples. If you wish for support for G640S to be added, you have to provide full diagnostic information, similar to my report.

Franzcoz commented 2 years ago

Hello! I own an XP-Pen Star G640S and after a lot of time trying to find a suitable sollution to use it on my laptopt and not finding it, I decided to help make it, since I don't know how to write a linux driver. I have the diagnostic information asked on the digimend website, and also I would like to help writing IF i get enough help :). But I guess just the diagnostics will do for now diagnostics_digimend.zip

Franzcoz commented 2 years ago

Hi again! Trying to help a little, but with almost zero knowledge, I modified some files to incorporate this model and its descriptor. I do not know if what I did is correct, I tried to follow what was done with other models in past commits. And also I wouldn't know how to do a merge request so I am letting what I did here if someone can tell I am heading in the right direction or not. Hope it helps in anything. Also, my descriptors turned out different from those in the repository that holds tablet diagnostics, Idk why.

xp-pen-g640s.zip

Franzcoz commented 2 years ago

Following recommendations from people in the IRC channel (thanks!) I have run the uclogic-new-init script and then again the rest of the diagnostics. I divided the hid-report-descriptors file into 3 parts, and its corresponding 3 code translations.

Franzcoz commented 2 years ago

I have run the script again, but this time ommiting the step involving uclogic-probe before collecting samples. This time the reports start with 02, as was mentioned in the chat that was expected to. Also, worth to mention that this time, if I run uclogic-probe and then try to collect samples, it says "No matching HID device", which didn't happen before. Maybe it has to do with some config files I found in /etc for xorg and udev, from previous attempts to make it work, and that I removed before preoceeding with this diagnostic attempt.

second_new_diag.zip

Franzcoz commented 2 years ago

Report descriptors translated as code with the hidrd-convert tool. Second attempt obtaining reports this time after executing the uclogic-new-init script.

descriptors_as_code.zip

Franzcoz commented 2 years ago

I think those are the ones I posted here: https://github.com/DIGImend/digimend-kernel-drivers/issues/391#issuecomment-1053655579 ?

nic3-14159 commented 2 years ago

I think those are the ones I posted here: #391 (comment) ?

Yeah, sorry about that, I didn't notice those

ezequielv commented 2 years ago

Hello. I'm considering buying this device (on offer on amazon.co.uk today), but it seems that digimend's kernel driver support is not quite there yet for this model.

I already own an XP-PEN Deco 01 V2, and it seems to be supported perfectly by digimend's kernel drivers, so I'm not sure it'd be worth to buy this cheaper one as a second tablet for my kids, since digimend kernel driver support is now a must in my household :)

I've checked the latest "list" posted here, which only seems to include a "versionless" G640S: PID_0926=G640S.

And I've also seen this comment (#253), in which it seems that the tablet (V1?) might be supported by the libinput driver.

Are there any news regarding support for the XP-Pen G640S V2? Or are users supposed to be using the libinput driver instead?

nic3-14159 commented 2 years ago

Hello. I'm considering buying this device (on offer on amazon.co.uk today), but it seems that digimend's kernel driver support is not quite there yet for this model.

I already own an XP-PEN Deco 01 V2, and it seems to be supported perfectly by digimend's kernel drivers, so I'm not sure it'd be worth to buy this cheaper one as a second tablet for my kids, since digimend kernel driver support is now a must in my household :)

I've checked the latest "list" posted here, which only seems to include a "versionless" G640S: PID_0926=G640S.

At the moment the G640S V2 is not supported, but I think all the information needed to support it has been posted already. I've been meaning to take a look at it and write some code, but I haven't found time/motivation to do it. The maintainer for DIGImend hasn't touched the project in a while, so there's quite a few unmerged pull requests and I don't know if and/or when that will change. Some of those requests contain code that would be needed to support the G640S, so it would be nice for those to get merged to avoid having to duplicate code or maintain a fork with all the changes.

The number of new requests seems to be relatively constant, so there is still community interest in DIGImend, but there aren't nearly enough people working on it to keep up with the demand.

And I've also seen this comment (#253), in which it seems that the tablet (V1?) might be supported by the libinput driver.

Are there any news regarding support for the XP-Pen G640S V2? Or are users supposed to be using the libinput driver instead?

The libinput driver is not the same sort of driver as DIGImend. DIGImend is a kernel driver, and takes in the raw USB HID events from the tablet and makes it so that the generic HID kernel driver properly recognizes the events. The HID driver then outputs generic input events that can be used by userspace. Drivers like libinput or xf86-input-wacom are drivers for Xorg/Wayland, and take in those generic input events and send them to your applications.

So supporting a tablet in Linux involves making sure it works with the kernel drivers, as well as the Xorg/Wayland input drivers.

Franzcoz commented 2 years ago

Oh, ok, understandable. Is there something one could do to help?