Huion Inspiroy H952 - FreeBSD

Huion Inspiroy H952 working with FreeBSD.

Hardware info on main page.

Links

huion-freebsd,

Youtube: Pen Pressure in GIMP,

local links

c1,

Work log

2025-01-01: c1 - GIMP - pen pressure - it works after enabling the tablet pen and "pressure opacity" under Dynamics.

2025-01-01: c1 - xinput report

tingo@kg-core1:~/work/huion_inspiroy_h952/huion-freebsd $ DISPLAY=:0.0 xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]    Virtual core XTEST pointer                id=4    [slave  pointer  (2)]    System mouse                              id=6    [slave  pointer  (2)]    IntelliMouse Explorer                     id=10   [slave  pointer  (2)]    HUION Huion Tablet_H952 Pen Pen (0)       id=13   [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)]
     HUION Huion Tablet_H952 Keyboard          id=11   [slave  keyboard (3)]
     HUION Huion Tablet_H952 Pen               id=12   [slave  keyboard (3)]

2025-01-01: c1 - get huion-freebsd

tingo@kg-core1:~/work/huion_inspiroy_h952 $ git clone https://github.com/sakhmatd/huion-freebsd.git
Cloning into 'huion-freebsd'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 17 (delta 5), reused 2 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (17/17), 8.39 KiB | 8.39 MiB/s, done.
Resolving deltas: 100% (5/5), done.

copy the service script

tingo@kg-core1:~/work/huion_inspiroy_h952/huion-freebsd $ sudo cp -v huion /usr/local/etc/rc.d/
huion -> /usr/local/etc/rc.d/huion

enable it

tingo@kg-core1:~/work/huion_inspiroy_h952/huion-freebsd $ sudo sysrc huion_enable=YES
huion_enable:  -> YES

start the service

tingo@kg-core1:~/work/huion_inspiroy_h952/huion-freebsd $ sudo service huion start

2025-01-01: c1 - connecting the H952 to this machine, I get this in /var/log/messages

Jan  1 15:50:59 kg-core1 kernel: ugen1.4: <HUION Huion TabletH952> at usbus1
Jan  1 15:50:59 kg-core1 kernel: ukbd0 on uhub8
Jan  1 15:50:59 kg-core1 kernel: ukbd0: <HUION Huion TabletH952, class 0/0, rev 2.00/1.11, addr 4> on usbus1
Jan  1 15:50:59 kg-core1 kernel: kbd2 at ukbd0
Jan  1 15:51:00 kg-core1 kernel: ums0 on uhub8
Jan  1 15:51:00 kg-core1 kernel: ums0: <HUION Huion TabletH952, class 0/0, rev 2.00/1.11, addr 4> on usbus1
Jan  1 15:51:00 kg-core1 kernel: ums0: at uhub8, port 1, addr 4 (disconnected)
Jan  1 15:51:00 kg-core1 kernel: ums0: detached
Jan  1 15:51:00 kg-core1 kernel: ukbd0: at uhub8, port 1, addr 4 (disconnected)
Jan  1 15:51:00 kg-core1 kernel: ukbd0: detached

if I add these quirks

root@kg-core1:~ # usbconfig add_dev_quirk_vplh 0x256c 0 0 0xffff UQ_MATCH_VENDOR_ONLY
root@kg-core1:~ # usbconfig add_dev_quirk_vplh 0x256c 0 0 0xffff UQ_UMS_IGNORE

and unplug / replug the H952, I get

Jan  1 16:40:50 kg-core1 kernel: ugen1.4: <HUION Huion TabletH952> at usbus1
Jan  1 16:40:50 kg-core1 kernel: uhid0 on uhub8
Jan  1 16:40:50 kg-core1 kernel: uhid0: <HUION Huion TabletH952, class 0/0, rev 2.00/1.11, addr 4> on usbus1
Jan  1 16:40:50 kg-core1 kernel: ukbd0 on uhub8
Jan  1 16:40:50 kg-core1 kernel: ukbd0: <HUION Huion TabletH952, class 0/0, rev 2.00/1.11, addr 4> on usbus1
Jan  1 16:40:50 kg-core1 kernel: kbd2 at ukbd0
Jan  1 16:40:50 kg-core1 kernel: ukbd0: at uhub8, port 1, addr 4 (disconnected)
Jan  1 16:40:50 kg-core1 kernel: ukbd0: detached
Jan  1 16:40:50 kg-core1 kernel: uhid0: at uhub8, port 1, addr 4 (disconnected)
Jan  1 16:40:50 kg-core1 kernel: uhid0: detached

so that is useful. 2025-01-01: c1 - it now runs FreeBSD 13.3-release-p8

root@kg-core1:~ # freebsd-version -ku
13.3-RELEASE-p7
13.3-RELEASE-p8

kernel

root@kg-core1:~ # uname -a
FreeBSD kg-core1.kg4.no 13.3-RELEASE-p7 FreeBSD 13.3-RELEASE-p7 GENERIC amd64

2025-01-01: I created this page.

2023-01-01: c1 - in /var/log/Xorg.0.log I see

[  2154.576] (EE) libinput bug: timer proxout: offset more than 5s, now 2154576 expire -1911002900
[  2154.626] (EE) libinput bug: timer proxout: offset more than 5s, now 2154626 expire -1911002850
[  2154.675] (EE) libinput bug: timer proxout: offset more than 5s, now 2154675 expire -1911002798
[  2154.728] (EE) libinput bug: timer proxout: offset more than 5s, now 2154728 expire -1911002745
[  2154.778] (EE) libinput bug: timer proxout: offset more than 5s, now 2154778 expire -1911002695

2023-01-01: c1 - xinput reports

tingo@kg-core1:~ $ DISPLAY=:0.0 xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]    Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]    System mouse                                id=6    [slave  pointer  (2)]    IntelliMouse Explorer                       id=10    [slave  pointer  (2)]    HUION Huion Tablet_H952 Pen Pen (0)         id=13    [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)]
     HUION Huion Tablet_H952 Pen                 id=11    [slave  keyboard (3)]
     HUION Huion Tablet_H952 Keyboard            id=12    [slave  keyboard (3)]

2023-01-07: c1 - I have just got a Huion Inspiroy H952 (drawing) tablet working under FreeBSD 13.1-release. I installed xf86-input-evdev (which brought in webcamd) and xinput, enabled cuse by adding it to kld_list="..." in /etc/rc.conf. I also added webcamd_enable="YES" to rc.conf. I also added my user to the webcamd group. devd file:

root@kg-core1:~ # cat /usr/local/etc/devd/huion.conf
# add Huion tablets
notify 100 {
        match "system"          "USB";
        match "subsystem"       "INTERFACE";
        match "type"            "ATTACH";
        match "intclass"        "0x03";
# limit to vendor match
        match "vendor"          "0x256c";
        action "/usr/local/etc/rc.d/webcamd start $cdev $interface 2>/dev/null";
};

The tablet works in GIMP and Xorg, but in Xorg the default mode is select which is not that useful. Also the two buttons on the pen is mapped to middle and right button. I suspect this can be changed with xinput or something.