2015年05月08日

Princeton PTB-S3BKをLinuxで快適に使おう

Pricetoん PTB-S3BKをLinux Mint17.1で快適に動かそう



Author:試作D型
-----


どうもダイです。
5月は今のところずいぶん暑い日が続いておりますねぇ…(汗


突然ですが4月下旬より、ちょっとした縁がありまして、現在使用しているPrincetonのペンタブレット、PTB-S3BKのLinux用ドライバの開発に参加する機会があり、この度無事ドライバの完成を見ることとなりました。


参考リンク:kaiware-daikon@ぼっち党員の日記


該当記事詳細エントリ:Waltop製チップを搭載したペンタブレット用のLinuxカーネルドライバ Ver.0.0.6 を公開しました

使い方その他注意事項など:Waltop製チップを搭載したペンタブレット用のLinuxカーネルドライバ



kaiware-daikon様、この場を借りて改めてお礼申し上げます。


結構設定にまつわる部分が思ったより長くなってしまったので、折り返しに詳細を書いていこうかと思います。

さて折り返し。


今回のドライバ開発で自分が新たに知った話なのですが、このタブレット(Princeton PTB-S3BK)、海外ではwaltop社の販売している"Vega Tablet"という形で同型のものが出ており、
Linuxのドライバとしてはこれ基準として動作させている模様です。
(実際の機能は全く同じ。)

参考リンク:Waltop Vega Tablet(製品ページ)

waltop製タブレットには、他にもSirius、Venus-Jとラインナップがあり、それぞれPrincetonのPTB-S1BK、PTB-S2BKに対応しています。

こういうラインナップをみると、海外はwacom一強とも限らないのかなぁと思ったりします。
それでも主要な地位はwacom製品で固められているのは仕方ないと思いますが…


なお、ドライバ開発にあたり、こちらはコードを1行も書く事無く、PTB-S3BKの挙動調査をメインに行っていました。
半ば棚ぼたに近い形でのドライバ入手になってしまった訳ですが(ぉ その分設定情報などを具体的に記しておきたいと思います。



ドライバの導入方法などは、使い方の参照記事に書いてある通りほぼそのままなのですが、一応自分の行った操作をずらっと書き連ねてみることにします。
ちなみに自分の環境は以前も書きましたが、Linux Mint 17.1 (MATE)です。


・ドライバファイルをローカルにダウンロードしてくる
 これはkaiware-daikon様のサイトにリンクがありますので、そこからどうぞ。
 ダウンロード先は、ここでは自分のユーザのホームディレクトリとしています。


・依存関係をあらかじめ解消する
 記載の通り、gcc、make、自分のカーネルバージョンに対応するヘッダ(今回はlinux-headers-3.13.0-52)をあらかじめ用意しておきます。
 synapticを使用して該当パッケージをインストールするなり、aptコマンドやaptitudeコマンドでそれぞれ引っ張ってきても構いません。


・ビルドする

$ tar xf waltop-0.0.6.tar.gz
$ cd waltop-0.0.6
$ make


 今回の例では、記事作成時点の最新版である0.0.6と仮定して記載しています。バージョンが変更になれば、それに従って下さい。
 無事makeが通れば、waltop.koというドライバモジュールが出来上がっているはずです。
 make失敗のほとんどのケースは、パッケージが足りない(特にカーネルヘッダ)場合だと思いますので、makeでのエラーを参考に必要なパッケージをしっかりインストールしてみて下さい。


・設定ファイルをxorgに組み込む

$ sudo cp 60-waltop.conf /usr/share/X11/xorg.conf.d/

 設定ファイルが解凍したドライバソースの中に入っていますので、マシンにこのドライバを最初にインストールする時のみコピーを行います。(以降は不要)
 コピーが終わったら、マシンを一度再起動させてください。


・ドライバを組み込む
 再起動後、実際に出来上がったドライバをLinuxに組み込みます。

$ cd waltop-0.0.6
$ sudo python3 unbind.py
$ sudo insmod waltop.ko


 ちなみに、タブレットのコネクタを抜き差しするとドライバが元々のドライバに戻るのですが、そうやってドライバを元に戻した場合、再度ドライバを組み込む際に次のコマンドを間に挟む必要があります。

$ sudo rmmod waltop

 従って、マシン起動時初回は表記どおり、2回目以降(タブレットの抜き差し時)のドライバ組み込みは、

$ cd waltop-0.0.6
$ sudo python3 unbind.py
$ sudo rmmod waltop
$ sudo insmod waltop.ko


 となります。これをやらないと、抜き差し後のinsmod時に
insmod: ERROR: could not insert module waltop.ko: File exists
 とエラーを吐かれてしまいます。


 これで、フル仕様のドライバが組み込まれました。
 xsetwacomコマンドで、以下の様にデバイスIDが取れていれば大丈夫だと思います。

$ xsetwacom --list devices
Waltop Vega Tablet Pen stylus id: 13 type: STYLUS
Waltop Vega Tablet Pad pad id: 14 type: PAD

(id:の部分は接続機器の個数や順序によって変動するので、違っていても構いません)


 デフォルトのドライバでもある程度動いてはくれるのですが、デフォルトのドライバからの機能差としては、以下の通りになります。

 ・解像度が4000lpiから5080lpiへ増加
 ・エクスプレスキー、ナビゲーションホイールにそれぞれ任意のキーを割り当てられるように
  (元々はホイール、キーともに機能していませんでした)
 ・ペンのサイドボタンが正式に機能するように
  (元々は上下とも中クリック扱いになっている様子)


 
 
 このドライバのデフォルト状態では、ペンのサイドボタンが下:中クリック、上:右クリックになっていて、パッド側の各ホイール及びキーについては何のキーバインドもされていない状態になっています。

 このため、各人が使いやすい様に適当なショートカットを割り当ててやる必要があります。


※注意事項に関しては、参考リンクの先の通りですが、管理する上で特に注意すべき点は以下の三つかと思います。

 ・マシン再起動時には、ドライバの差し替えを都度行う
 ・カーネルのアップデートを行ったら、カーネルヘッダも更新して都度ビルドを行う
 ・タブレットの抜き差しを行うとドライバが元に戻るので、都度ドライバの差し替えを行う

  (上記のドライバ組込部分の、rmmodを挟むことを忘れずに!)

 …まぁ、あまりタブレットの抜き差しを頻繁に行うことは無いと思うので、再起動時とカーネルのアップデート時だけしっかり覚えておいた方がよいでしょう。


[D型の個人的な設定について]

 今回はKritaをメインで使用することを前提としたショートカットの構成を作ってみました。
 他のショートカットを作る際の参考になれば幸いです。

 ちなみに、ペンおよびパッド側の各種ボタン類のナンバリングは、以下の通りになっています。

 [ペン側]
 ・ペン先:Button 1
 ・サイドボタン下:Button 2
 ・サイドボタン上:Button 3


 [パッド側]

 ・エクスプレスキー:Button 1,2,3,8
 ・ナビゲーションホイール:Button 9-20(ホワイト、グリーン、オレンジのそれぞれに右回転・左回転*ホイール2個分)


 …割り当てを詳細に書くと長々としてしまうので、実際の画像にナンバリングを振ってみました。参考にどうぞ。
 (パッド左利き・右利き、ペン)

Princeton PTB-S3BKをLinuxで快適に使おう

Princeton PTB-S3BKをLinuxで快適に使おう

Princeton PTB-S3BKをLinuxで快適に使おう


 自分が調べた限りでは、タブレットを左右入れ替えても、ボタン配置は相対的に維持されるようです。


 詳細なボタン割り当ての調査には、xevコマンドを使用して判断すると確実です。


 さて、実際の割り当てについては以下の通りになります。

 ・ペンのショートカットはデフォルトが使いやすいのでそのまま

 ・Ktiraのショートカットとして、ホワイト上ホイールにはペンのサイズ拡大縮小を割り当て
 ・ホワイト下ホイールにはキャンバスの拡大縮小を割り当て
 ・エクスプレスキーには、Ctrl、Shift、Altキーを、残り一個には消しゴム機能を割り当て

 ・グリーン、オレンジホイールは、他のアプリケーションのことを考えて未割り当て


 これらを実際の設定コマンドに直すと以下の形になります。

$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 1 "key ctrl"
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 2 "key shift"
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 3 "key alt"
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 8 "key e"

$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 17 "key ]"
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 18 "key ["
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 19 "key ctrl shift +"
$ xsetwacom --set "Waltop Vega Tablet Pad pad" Button 20 "key ctrl -"

 

 これらを設定してやると、副次的効果として、エクスプレスキー1を押しながら上ホイール操作で、キャンバスの回転が出来たりします。
 人によっては、アンドゥ、リドゥをホイールに割り当てたほうが使い勝手が良い場合もあるので、各自アプリケーションのショートカットとにらめっこしながらカスタマイズしてみると良いと思います。


で、毎回これらのコマンドを発行するのは大変手間になるので、今回はxsetwacomコマンド周りだけをシェルスクリプトとして羅列して、ドライバ差し替え後にコマンド一発で設定で出来るようにしました。

ドライバ差し替えも自動的にやれた方が楽だとも思うのですが、Mintの自動起動するアプリに登録する場合、シェルスクリプトを分けると起動する順番によってはうまく行かなかったり、片方がsudo権限を要求しているので、gksuを先頭にくっつけてやる必要があって、その辺の細かい部分がうまく行くかどうか不明になってしまうので、分かりやすい部分だけ簡素化してみました。



…結構長々となってしまいましたが、これでLinux側でもPTB-S3BKタブレットを思う存分使うことが出来るようになりました!
GIMPもKtiraもLinux側の方が早く、挙動が安定しているので、より快適な作業環境になるかと期待しています。




小ネタ:xsetwacomコマンドで、ペン側のRotateパラメータを設定してやれば、縦画面にも対応させることが出来ます。
これはWindows側では標準では出来ないので、Linuxの方が高機能とも言えます(ぉ



posted by ダイ&エイ at 23:11 | Comment(1) | TrackBack(0) | コンピュータ:ハードウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
記事作成お疲れ様です〜
これは嬉しいドライバです。

そういえば、新しいドライバがRaspberryPi2(Ubuntu 14.04/Kernel 3.18.0)でも動くことを確認しました。

今のところだと、画面比率とタブレットの入力面積比率が合ってないので、どこかで乗り換えたいところです。
その時にこの記事が役に立つことと思いますー

どの道、GUIでの設定がしたければ、KDEあたりに付属しているタブレット設定のツールを使わないといけないわけで。
ほかの入力デバイスと同じく、コマンドラインから操作できればそれで良し、と言うところですね〜

Princeton製のタブレット、悪くないんだけどなぁ…
なにより価格がWACOM製品と比較して半額未満なので^^
オーバーレイシートがないと如何ともし難い、と言うのはありますが。
Posted by 試作E型(エイ) at 2015年05月09日 14:58
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/418639885
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック