モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

Huion H610ProV2を再購入したらハマった話 & OpenTabletDriver導入メモ

Huion社の板タブH610ProV2、これがマイフェイバリット極まる感じでして。 後継機種が少しづつ消えていく中、いつまで売っているんだコレは…消える前に買っておかねば!って感じで。 最近、ペンタブ本体を机に置くと再接続扱いになってしまうようになった、現在使用中のH610ProV2が完全に壊れる前に買ってしまいました。Amazonセールで安かったですし。

なお、H610ProV2の描き心地は極上…と自分では思ってるんだけど、多分人によっては全く違う感想になると思います。 表面はつるつる気味で、ペン先はやや深めの沈み込み(言うほどではない)なので、ワコムのような紙に描いてるようなザラザラ感とか、沈み込みほぼゼロなものを求める人には向いていない。 私はその正反対なようです。

さてこのH610ProV2の新品、届いたためにさっそくUbuntu mate 20.04のマイメインPCに繋いでみたら、数年前に買った現用の物と違い、カーソルやkritaが反応しない

全くカーソルが動いてくれません。よって、線も描けない😭

dmesgでは反応しているし、xinputの一覧には出ているのだけど。 また、evtestでも入力データは来ている。

いきなり初期不良か?と思ってwindows機(huionドライバ導入済み)に繋いだら…カーソルは動きました。 しかし、筆圧が全く出てこない😭 って、これはwindows ink周りのせいだったらしく、windows ink使うようにしたらOKでした。

つまり、初期不良ではない。 色々調べた所、H610ProV2のファームウェアが最新であるとこういう症状になるようです。(なお、ubuntu 22.04でも状況は変わりません)

そこで、Linuxでこの状況の対処してお絵描きに普通に使う方法を3つほど記しておきます。

1. Huion公式Linux版ドライバを使う

一番簡単な解決策。これであれば、生のxinputでは何故か反応しない傾きも反応するし、画面マッピングも簡単。

しかし、これには幾つか問題点があるのです…

kritaで中ボタンが反応しなくなる問題

公式ドライバではkritaでスタイラスのサイドボタンがマウスとして扱われてしまい、ペンタブスタイラスのボタンとしては扱われなくなってしまいます。 私はサイドボタンを激しく使い、キャンバスの「手のひらスクロール」のみならず、shift + サイドボタン+浮かしてドラッグでキャンバス回転・ ctrl+サイドボタン+浮かしてドラッグでキャンバスズームという設定にしているので、これが使えないと話にならないのですな。

一応、メニューの 設定 → Kritaの設定を変更→ タブレットの設定 から 「マウスイベントを使用して右クリックと中クリックを行う」をチェックすれば、公式ドライバでも中ボタンを使えるようにはなります。

しかし…この状況ではごくごく微妙に中ボタンの反応が悪いために、速い操作や操作ミスの時にキャンバススクロール等のツールが誤認識され、スクロールモードなどに入ったままロックされてしまう現象が起きます。そうした時は、一端手動でフリーハンドブラシなどに切りかえる必要があり…コレが稀にストレス。

いつまでもbeta問題

最新が22年でいつまでもbetaが取れません。普通に安定して動いてるしまったく問題はないのだけど、正直金にならないものをいつまで続けてくれるのか…というのは心配な所。

2.OpenTabletDriverを使う方法

OpenTabletDriverなる有り難い有志の皆様が作ったオープンでマルチプラットホームな最強のドライバがあります。これを使えば問題ない…のですが、インストールに非常に手間取りましたのでメモ。 正直、dotnetを使うのは止めて欲しい。

公式の手順に従っても動作しない問題

公式のFAQにある手順に従っても、動作しませんでした。 (なお、メインのubuntu mate 20.04ではなく、 サブマシンのxubuntu 22.04マシンで行いました)

  • まず、sudo apt install opentabletdriver.deb となっていますが、これだと_aptのユーザーがなんとか言ってインストールが正常に終了しませんでした。素直にsudo dpkg -i opentabletdriver.debが吉。
  • 上記の手順に従わない(従えない)せいか、otd-guiGUI設定ツールが起動する筈ですが、反応せず。ターミナルから実行してみたら、dotnetが見つからないというエラーが出てました。(aptでのdotnetは説明に従いインストール済み)
  • これについては、MSから6.0.413のtar.gzを拾ってきて、MSの説明に従ってインストール & 環境変数設定した所動作しました。
  • 手順通りsystemdのopentabletdriver.serviceをenableしていてもexitしてしまい動作していないため、otd-guiが動いてもdaemonに接続できないと言って終了。
  • otd-guiが動くようになった時点で、opentabletdriver.serviceをstop/startを繰り返したら動くようになりましたが、OS再起動した後はdeadになっていて動作してくれない
  • 仕方ないので、簡単なスクリプトを書いてxfce自動起動プログラムに設定した所、動くようになってくれました。

拙い急造スクリプトですが一応、記しておきます。

#!/bin/bash

svr="opentabletdriver"

for i in `seq 0 10`;
do
cnt=`systemctl --user status $svr | grep -c "dead"`
    if [ "$cnt" = "1" ];then
       echo "dead, reset"
       systemctl --user stop $svr
       sleep 2
       systemctl --user start $svr
       sleep 2
    else
      echo "okay"
      exit 0
    fi
done

OpenTabletDriver自体は非常に操作性も良く、設定もわかりやすく、とても有り難いのですが…正直、dotnetを使うのは面倒でトラブルの種でしかないので止めて欲しい。大事なことなので二度書きました。

とは言え、マルチプラットホームである所を考えればC#/dotnetは妥当な選択ではあるのだけど。

3.xorg.conf.dを使いwacomドライバに設定する方法

X11環境ではwacomドライバが使えるので、これにすり替えてしまうという方法。

これが殆ど何もする必要がなく一番簡単かもしれませんが、これにはペンの傾きが無視されるようになるという問題点が… ま、まぁ、傾きなんて正直使わないけど。

最初はこれを設定してもダメだった気がしたのですが、何故か今は動いています…不思議?!(単に、マルチモニタの別の場所でカーソルが動いていたので、気づかなかっただけかも)

なお、以前のH610ProV2のUSB-IDは「256c:006c」でしたが、新しいものは「256c:0064」に変わっているようです。

以下の内容のファイルを /usr/share/X11/xorg.conf.d/99-my-huion.conf とでもして、再起動すればそれ以降はxsetwacomコマンドで管理出来るようになります。

Section "InputClass"
        Identifier "Huion H610ProV2-new"
        MatchUSBID "256c:0064"
        Driver "wacom"
        #  Option "tilt" "on" #どうも 効果が無いっぽい。傾きは相変わらず得られない(kritaで試した)
EndSection

ワコムドライバでxsetwacomを使う時の、生のxinputに対する利点は、筆圧を調整可能な点ですね。ただしこれはkrita側で出来てしまうので、接続されているペンタブがこれだけであればあまり意味は無いのですが。

液タブと板タブを両方繋げて使い分けるような時は意味が出てきます。

いつまでX11だ問題

これは言うまでもなくwayland環境になったら使えないために、waylandが使いたくなったら/ waylandだけの時代が来たら、ダメな気がします。

OpenTabletDriverはwayland対応しているようなので、あちらは問題ないですなぁ。どうしたものだか。