格安価格に釣られて、正月早々、衝動的に買ってしまったタブレット PC (Jumper EZpad Mini 8) ですが [1]、Linux をインストールしたくとも、ライブメディアを試した限りでは、タッチスクリーンを利用できません。
いろいろ調べてみると、Github に gsl-firmware という、Silead というタッチスクリーン・コントローラのデバイスのイメージと Linux のファームウェアへ変換するツールを提供しているサイトを見つけました [2]。今回買った Ezpad Mini 8 はリストに含まれていませんが、他の Jumper のタブレットのデバイスドライバが含まれています。このサイトの情報を足がかりに Jumper EZpad Mini 8 用のタッチスクリーンのドライバを用意できるかもしれません。
しかし、その前に…
Jumper EZpad 6 Pro
そういえば昔、Jumper EZpad 6 Pro を 27,000 円(当時)の値段に釣られて買っていました [3]。中華 PC の安物買いは得意技なのです。😅
タッチスクリーンは Linux では利用できなかったのですが、Intel Atom x7-E3950 のそこそこの CPU パワーが気に入っていて、しばらくはサブノート PC として持ち歩いていました。しかし電源スイッチの調子が悪くなり、今では埃をかぶるようになってしまっています。
当時はタッチスクリーンが利用できることをそもそも期待しておらず、利用できればラッキーぐらいにしか考えていませんでした。しかし、上記 gsl-firmware のサイト [2] には EZpad 6(S) Pro 向けのドライバが含まれているので、試してみる価値は大いにあります。
今回使用した OS は下記の通りです。
Fedora 33 (Workstation Edition) | x86_64 |
起動ログは下記のようになっています。
: : [ 9.227346] input: Intel HID 5 button array as /devices/platform/INT33D5:00/input/input22 [ 9.322425] proc_thermal 0000:00:00.1: Creating sysfs group for PROC_THERMAL_PCI [ 9.330845] silead_ts i2c-MSSL1680:00: supply vddio not found, using dummy regulator [ 9.331077] silead_ts i2c-MSSL1680:00: supply avdd not found, using dummy regulator [ 9.331377] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360000 [ 9.432752] idma64 idma64.0: Found Intel integrated DMA 64-bit [ 9.444849] idma64 idma64.1: Found Intel integrated DMA 64-bit [ 9.456780] idma64 idma64.2: Found Intel integrated DMA 64-bit [ 9.456988] idma64 idma64.3: Found Intel integrated DMA 64-bit [ 9.468795] idma64 idma64.4: Found Intel integrated DMA 64-bit [ 9.471905] bmc150_accel_i2c i2c-BOSC0200:00: mounting matrix not found: using identity... [ 9.472082] idma64 idma64.5: Found Intel integrated DMA 64-bit [ 9.473649] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2 [ 9.473657] silead_ts i2c-MSSL1680:00: Firmware request error -2 [ 9.473855] silead_ts: probe of i2c-MSSL1680:00 failed with error -2 [ 9.475381] bmc150_accel_i2c i2c-BOSC0200:00: Invalid chip 3 [ 9.483798] idma64 idma64.6: Found Intel integrated DMA 64-bit [ 9.495810] idma64 idma64.7: Found Intel integrated DMA 64-bit : :
これを見て判ることは、どうやらタッチスクリーンのデバイスは MSSL1680 という型番で、なにも設定していなければ silead/mssl1680.fw というドライバを読み込もうとしているということです。ピンクで下線を付けた加速度センサーらしきデバイスについては、またの機会にします。
Jumper EZpad 6 Pro タッチスクリーンのドライバー
上記 gsl-firmware のサイト [2] にある説明をよく読みながら試行錯誤を重ねて、Jumper EZpad 6 Pro タッチスクリーンのドライバーの RPM パッケージを作ってみました。
実は RPM パッケージを作ったものの、「アクティビティ」をタッチすればダッシュが表示されるだけで、他が上手く反応せず困っている状態です。しかし公開すれば、何か解決のためのヒントをどなたからか頂けるかもしれないと思い、パッケージをアップしています。
パッケージ名が長くなってしまいましたが、RPM パッケージをダウンロードして下記のようにダウンロードします。
[bitwalk@ezpad6 ~]$ sudo dnf install mssl1680-firmware-jumper-ezpad6pro-1.0.git20201209.e247c34-1.fc33.noarch.rpm メタデータの期限切れの最終確認: 3:26:07 時間前の 2021年01月10日 16時42分51秒 に実施しました。 依存関係が解決しました。 ================================================================================ パッケージ Arch バージョン リポジトリー サイズ ================================================================================ インストール: mssl1680-firmware-jumper-ezpad6pro noarch 1.0.git20201209.e247c34-1.fc33 @commandline 23 k トランザクションの概要 ================================================================================ インストール 1 パッケージ 合計サイズ: 23 k インストール後のサイズ: 39 k これでよろしいですか? [y/N]: y パッケージのダウンロード: トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : mssl1680-firmware-jumper-ezpad6pro-1.0.git20201209.e 1/1 scriptletの実行中: mssl1680-firmware-jumper-ezpad6pro-1.0.git20201209.e 1/1 検証 : mssl1680-firmware-jumper-ezpad6pro-1.0.git20201209.e 1/1 インストール済み: mssl1680-firmware-jumper-ezpad6pro-1.0.git20201209.e247c34-1.fc33.noarch 完了しました! [bitwalk@ezpad6 ~]$
再起動して、ログを確認すると下記のようになっています。一応、認識されているように見えます。
: : [ 10.133936] input: Intel HID 5 button array as /devices/platform/INT33D5:00/input/input22 [ 10.188244] proc_thermal 0000:00:00.1: Creating sysfs group for PROC_THERMAL_PCI [ 10.292445] silead_ts i2c-MSSL1680:00: supply vddio not found, using dummy regulator [ 10.292882] silead_ts i2c-MSSL1680:00: supply avdd not found, using dummy regulator [ 10.302085] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360000 [ 10.367723] kauditd_printk_skb: 70 callbacks suppressed : : [ 11.566098] Bluetooth: hci0: RTL: fw version 0x0e2f9f73 [ 11.596426] input: silead_ts as /devices/pci0000:00/0000:00:16.3/i2c_designware.3/i2c-3/i2c-MSSL1680:00/input/input32 [ 11.600980] RPC: Registered named UNIX socket transport module. : :
xinput コマンドで利用可能なデバイスを確認すると、下記の通りタッチスクリーンデバイスが xwayland-touch:17 として一覧にあります。
[bitwalk@ezpad6 ~]$ xinput list WARNING: running xinput against an Xwayland server. See the xinput man page for details. ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ xwayland-pointer:17 id=6 [slave pointer (2)] ⎜ ↳ xwayland-relative-pointer:17 id=7 [slave pointer (2)] ⎜ ↳ xwayland-touch:17 id=9 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ xwayland-keyboard:17 id=8 [slave keyboard (3)] [bitwalk@ezpad6 ~]$
タッチスクリーンデバイスが xwayland-touch:17 の詳細は以下のようになっています。
[bitwalk@ezpad6 ~]$ xinput list-props 'xwayland-touch:17' WARNING: running xinput against an Xwayland server. See the xinput man page for details. Device 'xwayland-touch:17': Device Enabled (119): 1 Coordinate Transformation Matrix (121): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (410): 0 Device Accel Constant Deceleration (411): 1.000000 Device Accel Adaptive Deceleration (412): 1.000000 Device Accel Velocity Scaling (413): 10.000000 [bitwalk@ezpad6 ~]$
画面の向きがタッチスクリーンと一致しているかをイマイチ確信できていないのですが、座標変換行列 (Coordinate Transformation Matrix) を調整する必要があるかもしれません。
xrandr コマンドで画面のサイズや向きなどの設定を確認します。
[bitwalk@ezpad6 ~]$ xrandr Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767 XWAYLAND0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 260mm x 150mm 1920x1080 59.88*+ 1440x1080 59.87 1400x1050 59.86 1280x1024 59.76 1280x960 59.79 1152x864 59.78 1024x768 59.68 800x600 59.86 640x480 59.38 320x240 59.52 1680x1050 59.85 1440x900 59.89 1280x800 59.81 720x480 59.71 640x400 59.20 320x200 58.96 1600x900 59.82 1368x768 59.71 1280x720 59.86 1024x576 59.90 864x486 59.45 720x400 59.55 640x350 59.77 [bitwalk@ezpad6 ~]$
まとめ
xinput や xrandr コマンドでちょっと確認したところでは良さげなのですが、タッチスクリーンがうまく動作していないのは事実です。まだまだ確認できるところはあるはずです。アップした RPM パッケージについては改善を続けます。
ちなみに、我が家でまともにタッチスクリーンが動作するのは、ASUS の Transbook T100HA [4] ぐらいです。買った当初はタッチスクリーンの設定に苦労しましたが、いつの間にか Linux (Fedora) の方で対応したのか、今では特別なことをしなくともタッチスクリーンと加速度センサーが動作しています。
タッチスクリーンを Linxu で利用できる事例が手許にあるので、じっくり比較して調べてみます。先日買った EZpad 8 Mini についても、Linux 用のタッチスクリーンのドライバを準備し、ライブ Linux に組み込んで動作確認できないか、検討を始めます。
参考サイト
- bitWalk's: 格安タブレット PC を衝動買い [2021-01-08]
- onitake/gsl-firmware: Firmware repository for Silead touchscreen controllers
- bitWalk's: Jumper EZpad 6 Pro と Fedora 31 beta [2019-10-20]
- bitWalk's: ASUS TransBook T100HA と Manjaro 18
0 件のコメント:
コメントを投稿