helloSystem / hello

Desktop system for creators with a focus on simplicity, elegance, and usability. Based on FreeBSD. Less, but better!
2.3k stars 57 forks source link

Huion WH1409 Digitizer not usable #278

Open roired opened 2 years ago

roired commented 2 years ago

Good day,

I was trying to use my Digitizer, a Huion WH1409 with HelloSystem but was unable to do so, not wired through USB, nor in wireless mode. I'll add a list of usb devices with the digitizer attached asap [need to learn bsd stuff for that :) ].

Regards, RR

probonopd commented 2 years ago

According to https://wiki.freebsd.org/WacomTablet, Wacom tablets should be supported on FreeBSD. I have never even heard of Huion. Is it supposed to be compatible?

If yes, maybe you can get it running using https://www.freshports.org/x11-drivers/input-wacom. I cannot test this since I have no graphics tablets, neither from Wacom nor from Huion.

Possibly we should install by default:

FreeBSD% pkg search wacom 
libwacom-1.5                   Adds tablet support to libinput
xf86-input-wacom-0.39.0_2      X.Org legacy Wacom tablet driver

If anyone with a Wacom tablet can confirm that installing these makes it work, please do let me know.

probonopd commented 2 years ago

https://github.com/DIGImend/digimend-kernel-drivers/releases is supposed to drive the Huion WH1409 on Linux. One would have to dig into that and get it ported to FreeBSD?

probonopd commented 2 years ago

Maybe also relevant: https://forums.freebsd.org/threads/wacom-intuos-not-working-in-freebsd-13-0-release.81506/

roired commented 2 years ago

Good day @probonopd ,

I already knew about the digimend, but never wanted to use it. I rather use the default driver. I will try with the input-wacom from freeBSD and test with that one. On linux[Kinoite] I can use it wirelessly not wired, on Haiku I can use it wired, not wirelessly.

I'll test it and report back, Thanks! Regards, RR

probonopd commented 2 years ago

Interestingly, webcamd may be needed for tablets as well.

roired commented 2 years ago

Good day @probonopd ,

Tried that without success, even following the wiki on wacom tablets and modifying the configuration files accordingly. Looks like it's a no go for this device on FreeBSD, at least, at the moment.

Thanks! Regards, RR

probonopd commented 2 years ago

Is the device supposed to be Wacom compatible?

roired commented 2 years ago

Good day @probonopd,

It's presumed, I guess. I never install thirdparty drivers for this device. Never did it on Kinoite, nor on SuSE nor on Haiku. So I 'presume' that with the default wacom linux driver it works. I'm talking about the digitizer itself, not the buttons. Buttons are configurable on per application basis and I did some testing with Inkscape where I could assign actions to the digitizer buttons. Never tried to assign desktop system 'shortcuts' to those buttons though. But in my case I'm ok with the digitizer working even the buttons are just there for decorative purposes, as the important task is to draw.

Regards, RR

probonopd commented 2 years ago

In /usr/local/etc/devd/webcamd.conf there is a section

# Generic USB input devices.
notify 100 {
        match "system"          "USB";
        match "subsystem"       "INTERFACE";
        match "type"            "ATTACH";
        match "intclass"        "0x03";
#
# Limit HID device attach to Wacom Devices
# else webcamd might attach to your keyboard
# and mouse
# 
        match "vendor"          "0x056a";
        action "/usr/local/etc/rc.d/webcamd start $cdev $interface";
};

Maybe you need to change 0x056a for Wacom to 0x256c for Huion?

https://devicehunt.com/view/type/usb/vendor/256C

Then sudo service webcamd restart. Check with webcamd -l.

If that works, we should probably suggest to add this vendor ID upstream.

probonopd commented 2 years ago

fwiw, a One by Wacom (M) CTL-672 works nicely once if plugged in after Xorg started. More investigation needed.

dmesg:

ugen3.6: <Wacom Co.,Ltd. CTL-672> at usbus3
ums1 on uhub11
ums1: <Wacom Co.,Ltd. CTL-672, class 0/0, rev 2.00/1.00, addr 6> on usbus3
ums1: 6 buttons and [XY] coordinates ID=1
uhid1 on uhub11
uhid1: <Wacom Co.,Ltd. CTL-672, class 0/0, rev 2.00/1.00, addr 6> on usbus3
ums1: at uhub11, port 3, addr 6 (disconnected)
ums1: detached

Strangely, if you unplug the device at that point, then replug it, then it won't be recognized anymore and won't even show up in dmesg with any messages anymore. Doing a sudo lsusb at that point just hangs. Why?

rajhlinux commented 1 year ago

I have same issue for FreeBSD 13.1 but for a USB "XP Pen Star G640 Drawing Pad Tablet".

So I'm trying to get it to work on FreeBSD 13.1 so that I can write/solve math equations digitally rather than writing on paper.

I have installed the following drivers:

pkg install libwacom

pkg install xf86-input-wacom

pkg install xf86-input-evdev

I have removed xf86-input-wacom so that it does not conflict with xf86-input-evdev.

I read on a different thread stating that xf86-input-evdev is the way to go.

When I do: xsetwacom list devices The return is simply blank.

Here is what xinput list shows:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]

⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]

⎜   ↳ System mouse                              id=6    [slave  pointer  (2)]

⎜   ↳ Logitech Gaming Mouse G502                id=12   [slave  pointer  (2)]

⎜   ↳ UGTABLET 6 inch PenTablet                 id=13   [slave  pointer  (2)]

⎜   ↳ UGTABLET 6 inch PenTablet                 id=14   [slave  pointer  (2)]

⎜   ↳ BY Tech Usb Gaming Keyboard               id=15   [slave  pointer  (2)]

⎣ Virtual core keyboard                         id=3    [master keyboard (2)]

    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]

    ↳ System keyboard multiplexer               id=7    [slave  keyboard (3)]

    ↳ Power Button                              id=8    [slave  keyboard (3)]

    ↳ AT keyboard                               id=9    [slave  keyboard (3)]

    ↳ Logitech Gaming Mouse G502                id=10   [slave  keyboard (3)]

    ↳ BY Tech Usb Gaming Keyboard               id=11   [slave  keyboard (3)]

Here is what dmesg | grep -i PenTablet outputs:

ugen0.2: <UGTABLET 6 inch PenTablet> at usbus0

ums2: <UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1> on usbus0

ums3: <UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1> on usbus0

uhid0: <UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1> on usbus0

Here is what xorg.log shows:

[    13.485] (II) config/udev: Adding input device UGTABLET 6 inch PenTablet (/dev/input/event7)

[    13.485] (**) UGTABLET 6 inch PenTablet: Applying InputClass "evdev pointer catchall"

[    13.485] (**) UGTABLET 6 inch PenTablet: Applying InputClass "libinput pointer catchall"

[    13.485] (II) Using input driver 'libinput' for 'UGTABLET 6 inch PenTablet'

[    13.485] (**) UGTABLET 6 inch PenTablet: always reports core events

[    13.486] (**) Option "Device" "/dev/input/event7"

[    13.486] (**) Option "_source" "server/udev"

[    13.487] (II) event7  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: is tagged by udev as: Mouse

[    13.488] (II) event7  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device is a pointer

[    13.490] (II) event7  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device removed

[    13.490] (**) Option "config_info" "udev:/dev/input/event7"

[    13.490] (II) XINPUT: Adding extended input device "UGTABLET 6 inch PenTablet" (type: MOUSE, id 13)

[    13.490] (**) Option "AccelerationScheme" "none"

[    13.490] (**) UGTABLET 6 inch PenTablet: (accel) selected scheme none/0

[    13.490] (**) UGTABLET 6 inch PenTablet: (accel) acceleration factor: 2.000

[    13.490] (**) UGTABLET 6 inch PenTablet: (accel) acceleration threshold: 4

[    13.492] (II) event7  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: is tagged by udev as: Mouse

[    13.493] (II) event7  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device is a pointer

[    13.495] (II) config/udev: Adding input device UGTABLET 6 inch PenTablet (/dev/input/event8)

[    13.495] (**) UGTABLET 6 inch PenTablet: Applying InputClass "evdev pointer catchall"

[    13.495] (**) UGTABLET 6 inch PenTablet: Applying InputClass "libinput pointer catchall"

[    13.495] (II) Using input driver 'libinput' for 'UGTABLET 6 inch PenTablet'

[    13.495] (**) UGTABLET 6 inch PenTablet: always reports core events

[    13.495] (**) Option "Device" "/dev/input/event8"

[    13.495] (**) Option "_source" "server/udev"

[    13.497] (II) event8  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: is tagged by udev as: Mouse

[    13.498] (II) event8  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device is a pointer

[    13.500] (II) event8  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device removed

[    13.500] (**) Option "config_info" "udev:/dev/input/event8"

[    13.500] (II) XINPUT: Adding extended input device "UGTABLET 6 inch PenTablet" (type: MOUSE, id 14)

[    13.500] (**) Option "AccelerationScheme" "none"

[    13.500] (**) UGTABLET 6 inch PenTablet: (accel) selected scheme none/0

[    13.500] (**) UGTABLET 6 inch PenTablet: (accel) acceleration factor: 2.000

[    13.500] (**) UGTABLET 6 inch PenTablet: (accel) acceleration threshold: 4

[    13.502] (II) event8  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: is tagged by udev as: Mouse

[    13.503] (II) event8  - UGTABLET 6 inch PenTablet, class 0/0, rev 1.10/0.00, addr 1: device is a pointer

Here is what webcamd -l shows:

Available device(s):
webcamd [-d ugen2.1] -N ATI-EHCI-root-HUB -S unknown -M 0
webcamd [-d ugen0.1] -N 0x1b6f--XHCI-root-HUB -S unknown -M 0
webcamd [-d ugen7.1] -N ATI-EHCI-root-HUB -S unknown -M 1
webcamd [-d ugen4.1] -N ATI-EHCI-root-HUB -S unknown -M 2
webcamd [-d ugen1.1] -N ATI-OHCI-root-HUB -S unknown -M 0
webcamd [-d ugen5.1] -N ATI-OHCI-root-HUB -S unknown -M 1
webcamd [-d ugen3.1] -N ATI-OHCI-root-HUB -S unknown -M 2
webcamd [-d ugen6.1] -N ATI-OHCI-root-HUB -S unknown -M 3
webcamd [-d ugen4.2] -N USB3-0-HD-Audio-Capture-USB3-0-HD-Video-Capture -S HU123450 -M 0
webcamd [-d ugen1.2] -N Logitech-Gaming-Mouse-G502 -S 077833733533 -M 0
webcamd [-d ugen2.2] -N USB3-0-HD-Audio-Capture-USB3-0-HD-Video-Capture -S HU123450 -M 1
webcamd [-d ugen1.3] -N BY-Tech-Usb-Gaming-Keyboard -S unknown -M 0
webcamd [-d ugen0.2] -N UGTABLET-6-inch-PenTablet -S 000000 -M 0

Details of PC:

OS: FreeBSD 13.1-RELEASE-p5 amd64 
Uptime: 9 mins 
Packages: 1620 (pkg) 
Shell: sh 
Resolution: 3840x2160 
DE: Plasma 5.24.7 
WM: KWin 
Theme: [Plasma], Breeze [GTK2/3] 
Icons: [Plasma], breeze-dark [GTK2/3] 
Terminal: konsole 
CPU: AMD FX-8350 (8) @ 3.991GHz 
GPU: Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 
Memory: 10967MiB / 32684MiB 

Anyone knows how I can get this USB drawing tablet to work?

The tablet is simply not working, when I use the pen stylus and write/draw onto the pad, nothing happens. I should see the desktop mouse moving or GIMP brush move. I have uses different settings on GIMP input devices, it does recognize the tablet however nothing works on GIMP input devices.

Thanks for any advice.

Edit:

Alright, I spoke with someone who actually writes tablet drivers. He told me that the newer models for tablets of XP-Pens now have a software implementation of "lock-bits", so it requires a send bit to unlock the device to be functional.

This means it requires reverse engineering the tablet's firmware and dumping codes. The XP-Pen do have a Linux driver. There are no ports for it on FreeBSD.

Anyways, I assume Huion tablets also do the same. I will buy a Wacom tablet.