ONKYO TW2A-73Z9A with Fedora Core 34 KDE

本稿では、タブレットPC ONKYO TW2A-73Z9AでFedora Core 34 KDEの動作を検証し、最終的にノースピンドルの静音サーバとして運用します。
2021-12-31  

1. 概要
2. ハードウェア
 ・UEFI
 ・Battery
 ・CPU, Memory, sound, SSD
 ・USB, SDカード
 ・wifi
 ・bluetooth
 ・sensors(照度・電圧、加速度)
 ・web camera
 ・Windowsボタン
 ・Touch Screen

3. Fedora Core 34 KDEのインストール
 ・UEFI
 ・バックアップ
 ・インストール

4. タブレットPCとしての動作について
5. サーバとしての実運用例
6. まとめ


1. 概要

ONKYO TW2A-73Z9Aは、Atom x5-Z8350、RAM 2GB、SSD 64GB、Windows 10 Home 32bitでスペック的には最小限のB5タブレットPCです。本稿ではこのタブレットPCをLinuxサーバとして運用することを考察します。最大の目的はサーバの静音性を追求することです。実機は、2021年10月頃、秋葉原の某ジャンク屋で5,000円(税別)で購入しました。ジャンクとしては年代的に新しい部類(2017年発売)ですが、低スペックゆえ陳腐化が早かったのだと推測されます。

最初にハードウェアについて言及します。次にFedora Core 34 KDEをインストールし、続いてタブレットPCとしての動作も検証します。その後、静音サーバとしての実運用例を示し、まとめとなります。


2. ハードウェア

単純なスペック表はWeb上にもありますが、ここでは主にLinux(Fedora Core 34 KDE)での動作という観点から概観していきます。よって、ここでのハードウェア名は概ねLinux上での認識名となっています。

UEFI
電源ボタンを長押しして起動させ、USBキーボードでEscを押すとUEFIに入れます。ファームウェアのアップデートはWindowsから実行可能です。UEFI上ではUSBマウスも使用可能ですが、マウスによっては正常動作しないことがあります(OS上では正常動作する百均マウスは横一線にしか動きませんでした)。この機種のUEFIはわかりやすくはなく、機能も限定されており、通常は触らない方が無難だと思いますが、Linuxをインストールする場合には必須の操作になります。

Battery
リチウムイオンポリマーバッテリー 3.7V/25.9Wh (7,000mAh)、タブレットとして使用する場合は満充電でせいぜい2時間程度の容量です。また、バッテリーが空に近い場合は起動しないので充電量には気をつける必要があります。バッテリーは劣化が前提のデバイスなので新品以外では仕様上のスペックは期待できないものですが、本稿の実機は24.6Whの容量を維持しています。

CPU, Memory, sound, SSD
CPUはAtom x5-Z8350(1.44GHz)、RAM DDR3L SDRAM 2GB、sound rt5645、SSD Toshiba 064G30 64GB/eMMC HS200。基本的なデバイスはすべて問題なく動作します。内蔵e-MMCの転送速度は実測140MB/s程度でUSB3.0の外付けHDDとほぼ互角です。プレインストールのWindows 10は32bitですが、CPU自体は64bit対応なのでFedoraは通常通り64bit版をインストールします。

USB, SDカード
USBは2.0および3.0が各1ポート、SDカードスロットはSDXC対応です。すべて問題なく動作します。SDカードにはOSのインストールも可能です。なお、USBマイクロBのコネクタは電源供給用でUSBデバイスは接続できません。

wifi
wifiはBCM4356 802.11ac。起動時、brcm/brcmfmac4356-pcie.ONKYODS-TW2A-73Z9A.txtがない旨のエラーが出ますが、動作には問題がないように見えます。心配な場合は「TW2A-73Z9シリーズ 無線LANドライバ(DS51-N1193-04A.zip)」から4356r2nvram.txtを抜き出して/lib/firmware/brcm/brcmfmac4356-pcie.ONKYODS-TW2A-73Z9A.txtへとコピーしておけばエラーは回避できます。

bluetooth
bluetoothはBCM4356A2(Ver 4.1準拠)で、wifiと紛らわしい型番です。そのせいかkernelはBCM4354A2と誤認する場合があるようですが、動作に支障はないようです。ただし、ヘッドホンなどでは音が頻繁に途切れ、実用性は低いと言わざるをえません。Windowsでは問題がないのでLinuxドライバのクオリティの問題だと思われます。

sensors(照度・電圧、加速度)
この機種には三軸加速度センサーと照度・電圧センサーがあり、どちらもLinuxで利用可能です。それぞれ/sys/bus/iio/devices/iio\:device0/*_raw、/sys/bus/iio/devices/iio\:device1/*_rawで生の値を取得することができます。

web camera
カメラはLinuxではドライバが未対応のため使用できません。なお、仕様上、外側と内側で二台のカメラが搭載されているはずなのですが、実機ではWindowsからも内側一台しか見えません。購入した二台とも同じ状態でそういう不具合なのか、何か設定に誤りがあるのか、未解決となっています。

Windowsボタン
タブレット下部にあるWindowsボタンはLinuxではドライバ未対応のため使用できません。

Touch Screen
Goodix Capacitive TouchScreen、1280x800 10.1型 LEDバックライト。Linuxでもとりあえず動作しますが、カーソルの移動とマウスの左ボタンのエミュレーションしか対応していません。カーソルの移動も下半分ではズレが生じています。詳細は、第4項 タブレットPCとしての動作についてで言及します。なお、表示画像については個人的に所有するすべてのディスプレイの中で最も美麗で、それが無理を承知で運用しようとしている一つの理由です。


3. Fedra Core 34 KDEのインストール

本項では、ONKYO TW2A-73Z9AにFedra Core 34 KDEをインストールします。このタブレットPCは基本的には他のOSをインストールすることを想定していないためUEFIには最低限の機能しか用意されていませんが、Linuxのインストールもとくに難しいものではありません。まず、本機種のUEFIの操作について述べ、オリジナルのWindowsのバックアップを取った後、Fedoraをインストールします。

・UEFI
UEFIの起動にはEscを押下する必要があるので、まず、本体にUSBキーボードを接続します。USBマウスも使用可能ですが、マウスには相性があるので動作がおかしければ他のマウスを使って下さい。本項ではLive ImageからbootさせるのでそのUSBメモリも接続し、最後に電源を接続します。すべて接続したら画面に「ONKYO」と表示されるまで電源ボタンを長押しし、Escを押します。これでUEFIメニューが表示されます。単純にインストールを進める場合は「Boot Manager」を選択し、そこでインストールメディア(ここではFedora 34のLive Image [EFI USB Device])を選択すれば、インストール(Live Imageの起動)が始まります。上手く起動しない場合は、まず、UEFIのセキュアブートが無効化されているかを確認して下さい。

なお、バッテリーが空に近い場合は電源を接続していても起動しないので、ある程度バッテリーが充電されるまで待つ必要があります。

・バックアップ
念の為、オリジナルのWindowsをバックアップしておきます。前記の手順でLive Imageで起動し、そこでバックアップします。ディスクイメージは64GBと大きくないので、ここでは、ddでまるごとUSBの外付けHDDにディスクイメージをバックアップしています。内蔵SSDのデバイス名は機器の状態によるのでその都度確認して下さい。
# dd if=/dev/mmcblk0 of=mnt/tw2a.win10.img

これを書き戻すには同様にLive Imageから起動して、端末から
# dd of=/dev/mmcblk0 if=mnt/tw2a.win10.img

を実行し、再起動すれば元に戻るはずですが、UEFIの設定を何か変更していると起動に失敗する可能性があります。その場合はUEFIの設定も元(デフォルト)に戻して下さい。

・インストール
タブレットPCと言えどFedoraのインストールは基本的に通常のPCと変わりません。HDDの設定ではSDカードを挿入していると内蔵SSDと区別がつかない場合がありますが、dmesgの出力で「064G30」と表示されるデバイスが内蔵SSDです。その他、気にすべきはこの機種はUEFIなのでパーティション設定でUEFIパーティションを設定することぐらいです。インストーラーに自動で任せるならそれも不用です。

インストール自体はさほど問題なく進むはずですが、最大の難関は起動です。とくに一番最初の起動では設定によっては異常を察知したUEFIがboot optionの選択(bootする、bootしない、bootしてデフォルトに設定するの三択)を迫ってくる場合があります。また、Grubによる起動が失敗した場合はGrubのコンソールから操作するよりもとりあえずUEFIのBoot Managerからそれらしいもの(Fedora)を選択してみて下さい。

起動が成功し、ログイン画面に到達したらデスクトップセッションではWayland(デフォルト)ではなく、X11を選択します。Waylandではタブレットの縦横を自動設定してくれますが、設定が間違っており、タブレットの位置とは逆の画面設定になってしまいます。

インストールは内蔵SSDではなく、SDカードでも可能です。ただし、実際にやってみた限りでは、OSはUEFIパーティションと同一のデバイスにある場合にしか成功していません。つまり、SDカードにインストールしたOSを動かすにはSDカードのUEFIパーティション(EFI SD/MMC Card)から起動する必要があります、内蔵SSDでも同様です。かつてのBIOSでは可能だった起動処理であり、この機種で上手く行かないのは何か設定上の問題なのか、この機種特有の制限なのかは不明です。また、SDカードのUEFIパーティションは時々認識されないことがあるのでBoot Managerのメニューに「EFI SD/MMC Card」がない場合は再起動してみて下さい。

SDカードは内蔵SSDに比較しスペック的にかなり遅いですが(内蔵SSD 140MB/s、SDカード 20MB/s)、SDカードにインストールしたFedora Core 34 KDEの使用感は個人的にはそんなに差は感じませんでした。試験的にSDカードにインストールして様子を見るというのも悪い選択肢ではないと思います。購入した二台の内、サーバ運用していない別機はオリジナルのWindows 10(内蔵SSD)とFedora(SDカード)のデュアルブートになっています(ただし、前述のようにOSの選択はUEFI上からしかできません)。


4. タブレットPCとしての動作について

前提としてこの機種はタブレットPCとしてLinuxを使用するメリットはありません。内蔵カメラのドライバがないという一点だけでもLinuxは十分不合格です。とはいえ、多少の検証は必要と思われるので本項ではTW2A-73Z9AでLinux(Fedora Core 34 KDE)を使用する上での問題点を検証してみます。

タブレットPCと通常のPCとの違いはその形状と使用状況でハードウェア的にはタッチスクリーンに収束します。この機種でもタッチスクリーン以外はとくに特殊なものはなく、動作自体はごく普通ですが、このタッチスクリーン(Goodix Capacitive TouchScreen)にはかなり癖があります。

まず、Fedora Core 34 KDEでは、デフォルトのデスクトップセッションがWaylandになっており、加速度センサーからタブレットの状態を取得し、タブレットが縦なら縦に横なら横にデスクトップを回転させてくれるようなのですが、実際は縦なら横に横なら縦になってしまい、使用に堪えません。これは設定レベルの問題なのかもしれませんが、その設定項目のようなものは簡単には見つけられませんでした。なので、デスクトップセッションはX11を選択することになります。X11ではWaylandのような自動回転機能はないようなのでデスクトップの縦横を変更するには「ディスプレイの設定」からその向きを変更するか、後述するxrandr, xinputで端末から変更します。

そして、実際にタッチスクリーンに触ってみると位置的に少しズレがあることがわかります。このズレは単純にズレているのではなく、上半分は正しく、下半分だけが上方向に約1cmほどズレており、どうもドライバレベルの問題に見えます。下半分が上方向に1cmほどズレると下部に並ぶ操作アイコンに触れず、結果的にまったく操作できないということになります。そこで、xinputによる修正を試みたのですが、ズレている下半分を合わせると正しい上半分がズレるということになります。そこで、上下ともにそこそこのズレでの妥協点を探ったのですが、満足の行く妥協点は見つけられませんでした。以下にその修正法を示します。Device IDは、xinputで表示されるVirtual core pointerの欄にあるディスプレイ(Goodix Capacitive TouchScreen)のIDを指定します。このIDはマウスなどの接続状況で変わってくるので実行前に確認して下さい。

$ xinput set-prop "Device ID" --type=float "Coordinate Transformation Matrix" a 0 c 0 b d 0 0 1

アフィン変換の行列式
 [ a 0 c ]
 [ 0 b d ]
 [ 0 0 1 ]

a = 横の倍率
b = 縦の倍率
c = 横のオフセット
d = 縦のオフセット

xinputはいわゆるアフィン変換によって物理座標を論理座標へと変換します。詳細はxinputのマニュアルなりを参照してもらうとして、今回はタッチスクリーンの底辺が1cmほど上にずれているのでその底辺を1cmほど下に下げることが目標になります。そのため縦方向の伸長(b)と縦方向の平行移動(d)のみで修正していくことになります(横方向は不変 a=1, c=0)。結果的には、前述の通り、妥協点さえ見つけられなかったのですが、とりあえず、b=1.05 d=0で放置してあります。これで全面にアクセスできるようになりますが、ポインティングのズレがどうしても残ります。

$ xinput set-prop "12" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.05 0 0 0 1

ログインセッション時にこの設定が有効になっていないと底部にある仮想キーボードに触れず、ログインできないのでログイン時からこのズレを修正するようにsddmの起動スクリプト(/etc/sddm/Xsetup)に上記を追加します。実際にはIDがわからないのでIDを取得するためのコマンドも付加しています。

#!/usr/bin/sh
# Xsetup - run as root before the login dialog appears
t=`xinput |grep -m1 "Goodix Capacitive TouchScreen"`
input_id=`echo $t |cut -d" " -f6 |cut -d"=" -f2`

xinput set-prop "$input_id" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.05 0 0 0 1

回転についてはデスクトップの回転とタッチスクリーン(入力デバイス)の回転は別物です。デスクトップの回転はxrandrで、タッチスクリーン(入力デバイス)の回転はxinputで行うという二つの処理で完了します。

$ xrandr --output Display --rotate Direction

Displayはxrandrで表示されるDisplay名、TW2A-73Z9AではおそらくDSI-1です。Directionは回転の方向で、right left inverted normalのいずれかを指定します。次にxinputでタッチスクリーンの座標をデスクトップに合わせます。

$ xinput set-prop "12" --type=float "Coordinate Transformation Matrix" x y z X Y Z 0 0 1

[ x y z X Y Z 0 0 1 ]
右回転 (right)[ 0 1 0 -1 0 1 0 0 1 ]
左回転 (left)[ 0 -1 1 1 0 0 0 0 1 ]
反転 (inverted)[ -1 0 1 0 -1 1 0 0 1 ]
正常 (normal)[ 1 0 0 0 1 0 0 0 0 1 ]

これまでで示した変換は指定した効果を現状に追加するものではなく、初期状態を基準としてその効果が現れます。なのでズレを修正しつつ回転させるにはその修正分も加える必要があります。ここでの例では縦方向を1.05倍するので具体例としては右回転で、y=1.05とします(左回転ではy=-1.05 反転ではY=-1.05)。しかし、ズレの許容範囲は個人差があるものですし、回転によりズレの感じ方も変わってしまうので、結局のところ、その都度、調整するしかありません。

また、タッチスクリーンへのタップはデフォルトではマウスの左ボタンしかエミュレーションしないようでその点も考慮する必要があります。いずれにせよ、タッチスクリーンの使用感はWindowsのそれとはまったく比較になりません。当たり前とはいえ、Linuxでの難易度を再確認させられます。Fedoraも軽く検索した範囲では他のディストリビューションと比較し、タブレット対応にはあまり関心がないようでもあり、当環境下でのタブレット運用は難易度が高いというより、意味がないレベルという結論です。


5. サーバとしての実運用例

このタブレットPCをサーバとして運用しようと考えた一番の理由はその静音性です。実際の運用でも静音性は非常に満足の行く結果を出しており、また、サーバとしての動作も通常のPCと変わるところがなく、問題のタッチスクリーンもサーバ運用では無視できるので、このタブレットPCにおけるサーバ運用上の課題は連続稼働での安定性や耐久性、および連続運用のための電源管理となります。

安定性や耐久性については純粋にハードウェアの品質によるところが大きいので経験的にしかわからないところですが、3ヶ月ほど試験運用したらwifiが不安定で使い物にならなくなりました。購入した二台の内、使用歴の浅い方が壊れたので単に運が悪かっただけかもしれませんが、このため実際の運用ではwifiはUSBの無線LANドングルを使用しています。なお、使用歴はバッテリーの容量で推測しており、実運用機は24.6Wh、別機は15.7Whとなっています。実運用機はバッテリーの容量で選択しました。

電源管理についてはそもそも管理など考えずに接続しっぱなしにするという解決法もありますが(実際、遠隔地にあるノートPCサーバではそうしています)、このタブレットPCの電源事情は非常に繊細で、使用状況、電源品質によっては電源接続中でもバッテリーが放電することがあり、また、バッテリーの劣化、物理的膨張、発熱発火などのリスク回避の観点からも電源管理を行うこととしました。

実際の電源管理は、5分毎にupowerの出力値を判定し、一定値になったらUSBリレーでON/OFFしています。現状は、percentageが40%以下になったら充電を開始し、80%を越えたら充電を終了しています。概ね、4時間充電して1.5時間放電するぐらいになります。
upowerctl.sh

この電源管理のためにUSBリレーで制御する電源タップを製作しました。最初は安全に配慮し、電源タップ(AC100V)ではなく、ACアダプタから出力されるDC5Vを制御したかったのですが、ACアダプタの出力をリレーに通すと各種値は正常値を示しているのに上手く充電できないという事態に陥り、結局、原因の究明は諦めAC100Vを制御することとなりました。また、ACアダプタの相性もかなりあり、充電できるかどうかはACアダプタに表示されている規格値もまったくあてにならず、接続してみなければわからないという状況でACアダプタの確保では少々難儀しました。なお、USBリレーによる制御についてはUSBリレーで遊んでみる Linux編で詳解しています。


USBリレーは二接点で一つは本体の電源管理用、もう一つはサービスタップとして主にモバイルルータの充電用に使用しています。

USBリレーは2021年9月頃、amazonで760円(税込み)にて購入、Linuxではhidusb-relay-cmdで制御しています。以前、購入した物はPower LEDが赤でStatus LEDは緑と異なっており、とても視認性が良かったのですが、今回の物はどちらも赤のLEDでかなり残念です。

このUSB電源タップは小さめの台所用密閉容器のフタに電源タップをボルトとナットで取り付け、フタに開けた穴から容器内のUSBリレーに結線しています。USBリレーはいわゆるホットボンドで固定しています。電源タップは二口のそれぞれを別個に制御できるよう内部の金具を物理的に分断(切断)してあり、この製作ではそれが最も面倒な作業でした。

この機種の電源事情は非常に繊細でACアダプタで電源を供給していても消費電力が大きいとバッテリーからも給電され、バッテリーの充電量は減少します。つまり、ACアダプタの電源供給だけでは稼働できない状況があり、そんな時にバッテリーが0になれば正常動作しない、停止する可能性があります。実際にやってみた限りではバッテリーが0でもACアダプタのみでとりあえず30分ほどは動いていましたが、どこまでいけるかまでは試していません。

電力消費ではUSB機器のバスパワー消費が意外に大きいので接続する機器を限定するなり、セルフパワーのハブを使うなり、十分に検討した方がいいと思います。ちなみに当環境では、PX-Q1UD(4ch地デジチューナー)は動作自体に問題は感じなかったのですが、電力消費の大きさにバッテリーが充電できない状態になり、バスパワーでの運用は諦めました。

このサーバにはネットワークインターフェイスが二つあり、有線はLANにwifiは据え置き型のSIMフリールータ(NECプラットホームズ Aterm PA-HT100LN-SW)につながっています。当LANのメインサーバおよびゲートウェイはLAN側にあり、wifi側は緊急用としてイオンモバイル TYPE2のデータ回線(グローバルIPアドレス)を介し、インターネットに接続してあります。

その他、このタブレットPC特有の問題というわけではないのですが、サーバ機としてloginせずに無線LANを有効化する方法がよくわからず、ネットワークの設定は独自のスクリプトをsystemdに登録、実行しています。ついでに、Fedora 34では31の頃とはデフォルトでのhostnameの扱いが違っており、ここでは31の頃のようにIPアドレスを逆引きして得られたホストネームで設定しなおすような処理も追加しています。ここらへんは何か特定のやり方があるのか仕様なのかバグなのかよくわからないのですが、Systemdのネットワーク管理とNetwork Managerが競合しているようで、とりあず様子見で保留ということにしています。

このサーバはLAN内ではバックアップサーバの位置づけにあり、各種サービスはバックアップとしてしか動作していませんが、監視カメラの録画、気温測定などメインサーバの486機ではできないその他の処理も担っています。

ONKYO TW2A-73Z9A 接続ハードウェア一覧
USB 3.0 HUBVIA Labs, Inc. 3port + 1Gb LAN
internalASIX AX88179 USB 3.0 Gigabit Ethernet
port 1Logitec SATA 2TB external HDD
port 2Ralink Technology, Corp. MT7601U Wireless Adapter
port 3
USB 2.0 HUBGenesys Logic, Inc. USB Hub, 4port
port 1Microsoft Corp. LifeCam HD-3000
port 2USB relay, Van Ooijen Technische Informatica HID device
port 3temper(USB温度計)
port 4PX-Q1UD(4ch 地デジチューナー)
稼働サーバ一覧
httpapache
sshsshd
nfsnfs-server
rtspsimple-rtsp-server
smtppostfix
popsdovecot
ntpntpd
dnsbind


最後にタブレットPCという携帯性が本分であるものを固定的に設置して使用することについて考えてみます。サーバとしての運用なので基本的にはキーボードなどもいらず、何よりタッチスクリーンで最低限のことはできるのでどこかに置くというより、壁掛けにしてみました。タブレットPCでのサーバ運用は空間の有効活用としても効果的で家庭内サーバとしてはノートPCにも優るポテンシャルがあると評価しています。最大の難点は電源管理でこの問題は技術的なものではなく使用用途の違いから派生するものですが、バッテリーに依存しない常時稼働が前提のタブレット端末というものを見かけないのが残念です。そういう機器はIoTの総合管理端末としての需要はあるのではないか、というより、そういう物を創り出すべきだと期待しています。


6. まとめ

これまでタブレットPCには必要性も興味も感じなかったのですが、バックアップサーバとして動かしていたEPSON NP25S(いわゆるネットトップ機)のCPUファンがうるさいと思っていた矢先、ジャンク屋でこの機体を見かけ、タブレットなら無音じゃね?みたいなノリでいろいろ試してみることになりました。それが最初の軽いノリとは裏腹に、UEFI、ACアダプタ、タッチスクリーン、その他もろもろ中々の泥沼にハマりました。それでもなんとか予定通りに静音サーバとして運用開始となり、ホッとしています。旧機はモニターなしで運用していましたが、新機ではモニターも完備なのでいろいろ捗ります。

しかし、とにかくこのTW2A-73Z9Aのディスプレイは美麗ですね。以前はジャンク品のディスプレイは確実にヘタっていたのですが、LEDバックライトになってからはディスプレイのヘタリを気にすることも少なくなりました。現在、当環境にあるディスプレイは古い物ばかりでなおさらその美麗さに目を奪われました。ちなみに、なにゆえディスプレイが古い物ばかりかと言えば最近の横長アスペクト比がどうにも馴染めなくて、古いスクエアなものしかないからなのですが、ジャンク品でこれだけの画質を出されるとさすがに入れ替えの時期かと思い始めた今日この頃です。

なんにせよ、タブレットPCのOSとしてLinuxは堂々の発展途上で、Linuxも昔に比べればずいぶん使いやすくなったとは言うものの、まだまだLinuxはLinuxなんだなぁと懐かしい気分にさえなりました。偉そうなことを言うなら自分でやれが基本のLinux界、偉そうなことは言わなくてもいいので誰かなんとかして下さい。Linuxでどんなタッチスクリーンも簡単にスマフォみたいに動作する日が早く来るよう日々お祈りしています。

2021-12-31 よしのぶ
yoshino@rita.karing.jp
  戻る
  index.html


2021-12-31 Fri 23:10