昨年の12月ごろから話題になっていた実質3万円程度で購入できるRyzen APU搭載PC、Lenovo / ThinkCentre M75q-1 Tiny(以下M75q-1 Tiny)ですが、今年の5-6月に楽天リーベイツ等で大幅なポイント還元がありましたのでおもちゃ感覚で購入してみました。はい、勢いのみで。
M75q-1 Tinyのサイズや質感、動作、135W ACアダプタでの性能UP等のレビューは他の方におまかせするとして、当エントリではAndroid-x86をインストールしてデレステとミリシタがどれだけ快適に動くか確認してみました。
過去のAndroid-x86関連のエントリはこちらからどうぞ。
上記エントリで特にPCにインストールするものについては記載が古くなっているので更新したいという気持ちもあり、今回あらためて書き起こすことにしました。
思いついたことを追記し続けたら10,000文字程度になってしまったので、急遽目次を作成しました。
準備するもの
必要なもの
- Lenovo / ThinkCentre M75q-1 Tiny
- USB接続のキーボードとマウス
- 容量が4GB以上のUSBメディア
あるといいもの
- 増設用メモリ(RAM)
- M.2接続のWi-Fiカード
- タッチパネルディスプレイ(ゲームを遊ぶなら)
今回はRAM:8GB*1枚、NVMe SSD:128GBといういわゆる最小構成に別途メモリ8GB(2666MHz動作)を1枚追加した形になっています。ACアダプタは付属の65Wのものを使用しています。
Ubuntuのインストール
WindowsとデュアルブートするかAndroid-x86 on Linux専用にするかでちょっと手順がかわります。多くの方は最小構成でついてきた128GBのM.2 SSDを他のSSDに換装してるでしょうから、余ったSSDのバックアップは取ったうえでLinuxをクリーンインストールしてもいいかもしれませんね。
Windowsとデュアルブートする場合、Windows起動→エクスプローラー→PCを右クリック→管理→ディスクの管理→ボリュームの縮小で未使用領域を確保します。フォーマットはLinux上でやるので不要です。容量はLinuxとAndroid-x86のOS2種とゲームを入れるので最低でも32GBは必要です。ちなみにデレステとミリシタでデータダウンロードすると2つのアプリだけで22GBも使用していました。
ここからの手順は共通です。作業するOSはWindows/Linuxどちらでも可能です。
- Ubuntu 20.04 LTSのISOをダウンロード。
(他のLinuxディストリビューションでもいいのですが、ぼくはUbuntuしか知らないので。) - WindowsならRufus等、LinuxならUNetbootinやddコマンドでブータブルUSBメディアを作成。
- USBメディアを挿したまま再起動。
- 直後、F2かDeleteキーを押しっぱなしにしてBIOSへ。
- Security→SecureBoot→”Disable” に設定→Save & EXIT
- 直後、F12キーを押しっぱなしにしてBoot選択画面へ。
- Boot選択画面でUSBメディア(Ubuntu 20.04 LTS)を選択。
- Ubuntuをインストール。最小構成/アップデートなしでOK。デュアルブートする場合はWindows領域を消さないよう注意。
完了後に再起動すればUbuntu(とWindows)が起動するようになります。
Android-x86のインストール
ここからはUbuntu上での作業となりますが、開始する前に生粋のWindows使いが生まれてはじめてLinuxを触っていて悩んだことや気づいたこと、感じたことをちょっとまとめておきます。基本的にはGUIだし少し触れば慣れると思います。
- システム部を触る場合はターミナル(端末)を使用する。(WindowsでいうCMDやPowerShell)
- ファイルがドラッグ&ドロップで移動/コピーできないことがある。権限不要なディレクトリならCtrl+C→Ctrl+VでOK。権限が必要な場合はターミナル上でコマンドを叩く。
- ターミナルで文字を貼り付ける場合はドラッグ&ドロップかCtrl+Shift+V。
- デュアルブートの概念が違う。なんとパーティションを分ける必要がない。(一番の衝撃でした)
さていよいよAndroid-x86のインストールです。以前はターミナルで長々とコマンドを打ち込んでましたが、今はJ.Kさんが作成してくださったAndroid-x86インストーラースクリプトがめちゃくちゃ優秀なのでありがたく使わせていただきましょう。本当に感謝です。
というわけで、上記URL群から
- Android-x86 9.0 r2のISO (J.KさんのOne Driveより)
- android_inst.sh (同上)
- kernel.tar.gz (同上)
- Opengapps.zip (公式HPより。x86_64/9.0/picoを選択してDL)
- linux-firmware.tar.gz (gitのサーバーより)
をダウンロードします。
DL完了したらすべてのファイルを “/home/ユーザー名/android” にコピー。あとは上で紹介したJ.Kさんの手順書に従ってインストールしてください。kernelとlinux-farmware(J.Kさん作成のISOを使用する場合はOpengappsも)をきちんと更新しておきましょう。ダイアログにしたがってファイルを選択していけば自動でインストールを行ってくれます。
インストール終了後に再起動してgrubで “Android-x86” を選択すればAndroidのセットアップが開始されます。もし起動しない場合は、BIOSのSecureBootが “Disable” になっているか確認。
grubの編集(必要な人のみ)
ここからの設定は必須ではないですが、ぼくの場合はAndroid-x86専用機にしたいので、grubでBoot OSの選択をなくす(入力デバイスはタッチパネルディスプレイだけで完結させる)ためにgrubを編集しました。Ubuntuを起動しターミナルで以下のコマンドを入力。
sudo gedit /etc/default/grub
テキストエディタが起動しますのでgrub起動時のカーソル初期位置を編集します。”GRUB_DEFAULT=0″ を “GRUB_DEFAULT=3” と変更しテキストエディタを保存してからターミナルで
sudo update-grub
として再起動。grubが起動すると下の画像のようにカーソル初期位置が変更されているはずです。
カーソル初期位置がAndroid-x86になっているのを確認してからUbuntuを起動してgrubを再編集。”GRUB_TIMEOUT=-1″ (grub起動-1秒後にタイムアウトする=タイムアウトしない)の部分を “GRUB_TIMEOUT=1” (grub起動1秒後にタイムアウトする)と変更して保存後再起動。ちなみに “0” にするとgrubは起動せず常にデフォルトOSで起動しますが、他のOSに入れなくなるので注意です。
これでM75q-1の電源を入れれば自動的にAndroid-x86が起動するようになるはずです。Ubuntuを起動したい場合はgrubが起動するまで画面を凝視するか、電源投入後キーボードの上下キーを適当に押しておけば大丈夫です。あ、左右はダメですよ、一応。
インストール後の注意点
Android-x86 9.0 r1から発生するようになったのですが、M75q-1 TinyやDeskMini A300などマザーボードにWi-Fiカードスロットがあるものだと、スロット空いていると有線LANを接続していようがネットワークを掴めないという不具合があります。これはUbuntu上でinit.shを編集するか、適当なWi-Fiカードを挿しておくことによって回避できます。
init.shを編集する方法は下記を参考にさせていただきました。
init.shを編集するにはUbuntuを起動してターミナルで
cd /android/system/etc sudo gedit init.sh
と入力。テキストエディタが起動しますのでCtrl+Fで “virt_wifi” と検索して当該箇所の行頭に # を入れてコメントアウトします。
こちらはテキストエディタで保存すればOKです。再起動してAndroidが動作するか確認。
init.shはAndroidのシステム部なので、コメントアウトする場所を間違えると起動しなくなったり著しくパフォーマンスが低下したりします。難しいと思う方は素直に2,000円程度追い金してM.2のWi-Fiカードを購入して挿しておきましょう。Wi-Fiスロットさえ埋めておけば設定なしで有線LANが有効になります。アンテナの接続は不要ですのでそちらの方が楽です。
これに限らず、わからなくなったら大人しくUbuntuから入れ直すのが近道です。(経験談)
Android-x86起動後の設定
そのままでは英語だったりゲームが起動しなかったり描写が崩れたりするので先手を打っておきます。
- 設定→System→Language & input→Languages→Add a Language→下の方にある日本語を選択。1.を日本語にするかEnglishを削除すると日本語化されます。
- 初期のランチャーアプリTaskbarは描写が崩壊するのでデフォルトアプリ設定で変更する。
- 設定→Android-x86 options→Enabele native bridgeをONにする。(重要)
- 設定→システム→タブレット情報→ビルド番号を10回ぐらい連続タップして管理者向けオプションの画面に入れるようにする。(以下、開発者向けオプションの設定)
- ハードウェアアクセラレーテッドレンダリングの”GPUレンダリングを使用”と”HWオーバーレイを無効”にチェック。
- マルチタスクボタンが消えてる場合は描写→”最小幅”を変更。13インチ1080pの場合800ぐらい。
- スリープは復帰に失敗することが多いので”電源接続時はスリープしない”にチェック。
- “アニメスケール”をオフまたは.5Xにするとタスク切換えがキビキビ動きます。
デレステ/ミリシタを起動するなら必ずnative bridgeをONにしてください。ONにすると64bit ARMのエミュレートに必要なファイル(houdini.sys)を自動でダウンロードしてくれます。少し時間がかかりますが数分後には問題なく当該アプリが起動するようになります。
操作についてはタッチパネルディスプレイがあればタブレット感覚で操作可能です。キーボードとマウスでも操作できますが、例えばミリシタならゲーム部はもちろん無理ですが、なぜかキャラとのふれあいができなかったりと完全に操作できるわけではありません。MVを視聴するぐらいなら問題ないです。
動作確認
1080pで分配してキャプチャしてみました。右上の黄色い数字はGLToolsで表示させたfpsです。
ミリシタの13人ライブは実プレイも問題ありません。39人ライブはMV試聴が限界ですね。
デレステはソフトフィルタを入れると特定の描写でかなり重くなるのでフィルタなしが推奨です。5人ライブなら問題ない(最近の曲は怪しいかも?)ですが、15人ライブは60fps張り付きとはいきません。135W ACアダプタに換装したらどうなるか興味はありますが未確認です。
Android-x86 FAQ的なもの
・音が出ない!
USB DACが安定です。起動する前に電源を入れておく必要があります。アナログ出力はbuild.propに
hal.audio.primary.hdmi=0
と記入して再起動すると動作することが多いです。(M75q-1 Tinyでは未確認)
・2画面出力したい!
残念ながらAndroid-x86はマルチモニタ非対応です。HDMIやDP分配器を導入してください。
・画面を回転させたい!
init.shを編集したら動くかもしれません。できたらこっそり教えてください。
・解像度を変更したい!
Android-x86上でAlt+F1を押すとターミナルが起動するので、1920*1080 60Hz にしたい場合は
setprop debug.drm.mode.force=1920x1080@60
と入力してEnter。Alt+F7でターミナルから抜けて動作を確認後、build.propエディタで
debug.drm.mode.force=1920x1080@60
と入力して再起動すればOK。ターミナル上なら表示できない解像度を設定しても最悪再起動すれば大丈夫ですが、build.propで表示できない解像度を指定してしまうと再インストールが必要になるので慎重に。
・スリープの復帰に失敗するんだが?
Android-x86はスリープ周りの挙動がよくないです。運用でカバーしてください。
・ゲームの動作fpsを表示させたい!
Root下でGLToolsをインストールしてください。インストール時にGoogleさんに怒られますが気にしない。余談ですが、以前はデレステを動作させるにはGLToolsでGPUを偽装する必要がありましたが今は不要です。
・ゲーム以外に入れとけってアプリある?
BuildPropエディタ、GLTools、スクリーンショットイージー、FTP接続できるファイラー(ファイルマネージャーなど)、それとGoogle Mobile Serviceのアプリですかね。特にGoogle Photoを入れて設定しておけばゲームのスクリーンショットなども自動でアップロードしてくれるので便利です。
・Rootのせいで特定のアプリが起動しない!
Magiskで非Root偽装できるらしいですが興味がないので不明です。もしくはUbuntu上で root/system/bin/su のディレクトリをリネームするといいそうです。(未確認)
・特定のアプリが落ちる!描写が崩れる!
わりとよくあること。特にデフォルトランチャーのTaskbarは描写が崩れるしよく落ちますね。大人しく別のアプリを使って下さい。アプリによってはアイコン長押し→権限→ストレージへのアクセス権限を許可すると動作するものもあります。(ときめきアイドルや雀魂)
・デレステ/ミリシタが起動しない!
ネットワークに接続した状態で、設定からnative bridgeをONにしてしばらく待ってください。ネットワークがつながらない場合はWi-Fiカードを刺すか、init.shを書き換えてください。
・なにもしてないのにミリシタの文字が化けて読めない!
なにもしてないからですよ。開発者向けオプション→ハードウェアアクセラレーテッドレンダリング→GPUレンダリングをONにしてください。
・デレステ/ミリシタのタップ音がズレるんだけど?
残念ながら仕様です。タップ音を入れると動作がかなり重くなるので、諦めてOFFにしましょう。
・デレステ/ミリシタの動作は快適?iPad Proぐらい早い?
M75q-1ですと5人ライブの通常プレイは非常に快適ですが、デレステ15人MVやミリシタ39人MVでの60fps張り付きは厳しいです。ローディングも含めたゲーム速度はiOSが優位です。ミリシタ2周年イベントではRyzen 5 3400G+8GB*2(3200MHz)+NVMe SSDで友人のiPhone XSと並走しましたが、同等かこちらのほうがやや遅いぐらいでした。Androidのハイエンド機並には早いかもしれませんが、iPad Proには及びません。
・デレステ/ミリシタを4K60p以上で動作させたい!
M75q-1では無理ですが、Ryzen 3 3300X+RX480程度のスペックがあればデレステ15人MVやミリシタ39人MVで4K60fps以上も余裕みたいですね。Zen+ CPUだとSMTをONにすると悪影響があるけど、Zen+ APUやZen2 CPUだと問題なかったりと挙動に謎が多いです。ちなみにGPUはRadeon推奨です。nVidiaだとLinuxにドライバーが入ってない(?)のでダメだそうです。(←よくわかってない
・hogehogeってアプリは動作する?
確かみてみろ!(`・ω・´)
その他 FAQ的なもの
・メモリは8GB*1枚じゃダメ?
ダメじゃないけどデュアルチャネルのほうがつよいし、そもそもスロット空いてたら気持ち悪くない?真面目な話をするとデレステがGPU依存で、APUでGPU性能をあげるにはACアダプタを交換するかメモリを盛るしかないのです。とりあえず1枚でやってみて不満があるなら135W ACアダプタを買うなり追いメモリをしましょう。
・なんでLinuxからインストするの?x86のISO焼いてBootしたらよくね?
Android-x86の公式インストーラーに不具合があるのと、付属されているkernelやmesa、firmwareが古いためです。kernelやfirmwareを最新にすることによってx86の動作が大きく改善します。また後から設定を変更する際、Android-x86上でやるよりもUbuntuからやったほうが楽で応用もきくので。
・なんか増設したらUSB Type-Cで画面出力できるらしいのだが?
のらねこ!さんのブログが非常に参考になります。電源とDisplayPort Alternate Modeでの映像出力(4K60p)にも対応しているそうですが、残念ながらUSBのデータ転送には非対応なのでタッチパネルディスプレイで操作はできません。非常に惜しい。
後ろへ向かって前進 Act.2: ThinkCentre M75q-1 TinyからType-C経由で画面出力をする(成功)
・タッチパネルディスプレイを導入してゲームしたいけどどんなのがいい?
ぼくはAliexpressにて4K60p HDR対応の13インチを3万円程度で購入しました。当初は4K60p分配+パススルー+1080pキャプチャ環境を構築しようとして悪戦苦闘した結果、妥協して1080pで運用しているのですが、色々と思うことがあったのでつらつらと記載しておきます。
- 4K60pは分配とキャプチャ環境の構築が大変。(解像度切替ができる分配器があると便利)
- 中華TPのHDRはまともなHDRではないので不要かも。
- Ryzen 5 3400Gの定格で4K60pは厳しい。
- そもそも一部のゲームしか4K60p以上に対応してない。(ミリシタは720p)
- 13インチ程度の画面だと4Kにしてもかわんねぇな…。
という感じだったので、M75q-1 Tinyで使用する場合は1080p対応でHDMI入力つきの10点タッチが最低条件で、USB接続で電源とデータのやり取りはできるものが良いでしょう。4K60pについては先々にもっとつよいPCでAndroid-x86を導入したいとかキャプチャしたいという方にはいいかもしれませんが、今回はおすすめしません。
ディスプレイサイズは好みですが、x86界隈では15~17インチが人気のようです。Dellの24インチを利用されてる方もいらっしゃいますね。ぼくは指が短いので13インチにしましたが、iPad Proみたいな感覚でプレイできるので満足しています。
・これってエミュじゃないの?BANされるんじゃない?
エミュレーターではなく実機です。BANされるかどうかはしりませんが1年半ほど利用していてそういった事態に遭遇したことはないですね。もちろん保証はできません。
終わりに
今回驚いたのは、CPUもメモリもクロック制限があるM75q-1 TinyがDeskMini A300(3400G+8GB*2+NVMe SSD)と同程度に動いていたことです。
これまでRyzen APUでAndroid-x86を動作させる場合、ミリシタはCPU/デレステはGPUのクロックがカギになるという認識だったのですが、CPUもメモリ(APUはRAMクロックでGPU性能が上がる)もA300より低いクロックで動いているにもかかわらず、1080pであればほぼ不満がないレベルとなっています。もちろん「すべてがヌルサク60fps!」というわけではありませんが、この価格でこれだけ動くAndroid機もそうないかと思います。
Android-x86自体も7.1.2 Nougatの頃はミリシタを動作させるために6.0 Marshmallowのファイルをもってきて移植したり、起動したらしたでプチフリーズ回避のためにマザーボードの設定をいじりまくらなきゃいけなかったりと大変だったんですが、9.0 r1 Pieから非常に安定するようになったので、他の方にもおすすめしやすくなったように感じます。
というわけで、もしAndroid-x86が気になりましたらぜひ触ってみてください。
こちらの情報を参考に、何とかAndroid x86のインストールに成功しました、貴重な情報ありがとうございます!!
質問なのですが、Android x86ではThinkCentre側の無線LANモジュール(intelモジュール)は認識しないのでしょうか?ubuntu側では自動認識したので油断していました(汗)。この場合は有線接続してnative bridgeのダウンロードを行うことになるのでしょうか?
コメントありがとうございます。
参考になったとのことで、非常に嬉しく思います。
M75q-1 Tinyで検証したわけではないので確かではないのですが、
DeskMini A300+Intel AX200+init.sh未編集でWi-Fiは掴めた記憶があるのですが、
なにかの拍子で速度が大幅に落ち込むこともありましたので、
有線での接続が可能であればそちらの利用を推奨します。
書き忘れていましたが、bluetoothやWi-Fiといった無線周りもあまり安定しないですね。
こちらの情報を読んでうちのM75q-1で試してみたくなり、試行錯誤の末やっと動く状態までこぎつけました。
僕はデレステ/ミリシタのタブレットユーザーで、選択肢が少なく買い替えに毎回悩んでいましたが今後心に余裕が持てそうです!。ありがとうございます!
Ubuntu初心者で躓いた点が多かったので、似た現象で悩んでる方がいたらと思って投稿させていただきました。
先人たちは当たり前のようにご存じかもですし、間違ってる点もあるかと思うので、生暖かい目で見ていただけると嬉しいです。
ほぼ同じタイミングで先行してインストールを始め、情報をくれた友人にも感謝。
〇Ubuntuでlzipのインストールを試みると「パッケージがない、インストールできないよ」と言われることがある
→そのままにすると、Android x86にGappsが入らない
☆解決策: Ubuntuをネットワークにつないだ状態で
sudo apt-get update
sudo apt install lzip
でパッケージが入り正常にインストールが続行される
〇Andorid x86を起動するとすぐにシャットダウンされてしまい何もできない
おそらくの原因:電力消費が大きい周辺機器が繋いであると、バッテリー電力が保てないと判断したAndroid OSが強制シャットダウンする
うちのM75q-1は、128MB M.2 NVMe+1TB HDDの構成です。NVMeにパーティションを区切ってWindowsとのデュアルブートを目論んでAndroidをインストールし、起動すると上記症状が。
☆解決策:HDDを物理的に切り離すと起動できました。毎回物理で切り離すのは面倒なので、UEFI Settings(BIOS)で
Devices > SATA Drive1 > Disabled
にすると起動できました。 Windows/UbuntuでHDD使うときは Enabledに戻せばOKです。
USB-DACや、USB無線キーボード/マウスでも起きました。その時は周辺機器を変えるしかないのかな?(あとでHDD繋いでも起動できました。その違いは謎です)
〇Android x86 のインストールに失敗した場合
Gappsのインストール失敗などでUbuntu上から/Androidフォルダを消したりGRUBを編集しようとして深みにはまりました。
☆解決策: デュアルブートWindowsやUSB起動のOSから、インストールしたUbuntuのパーティション丸ごと消去して、Ubuntuインストールからやり直したほうが初心者には優しい気がします。
〇Android x86 でUSBキーボード、マウスが反応しない
☆解決策: USB刺す場所が固定。本体裏のHDMIの隣しか反応しないそう
ほかのUSB機器はどこのポートでもOKなのに変なの・・・
〇音まわり
手持ちのUSB-DACでシャットダウンを食らったので、
hal.audio.primary.hdmi=0
を試してみました。結果、本体のしょぼいスピーカーから音が!
キーボードの音量調整ボタン、設定からめいっぱい音量UPして本体のφ3.5イヤホンジャックから音が取れました。
また、
hal.audio.primary.hdmi=0
が記述してあるとアナログオーディオに固定されるようなのでbuild.propから消して
HDMI-HDMIでは音声が出ないという書き込みがとある掲示板にあったため
DP > HDMI変換で接続したところHDMI側から音声が出力されました。(ここにたどり着くのに何時間かかったことやら)
友人もHDMIで音声出力できたようです。
〇houdini.sfs
解説で「自動で落ちてくる」とのこと、待ってましたがなかなか落ちてこず・・・なかなかゲームが起動せず・・・
☆解決策:自力で取りに行きました。
http://dl.android-x86.org/houdini/9_y/houdini.sfs
ダウンロードしたファイルをhoudini9_y.sfsにリネームし,/data/arm/にコピー。フォルダがなければ自分で作成。
(参考:https://www.haruyjsn.xyz/archives/1037)
長文すみませんでした!
蛇足:
うちの環境はどうもホームアプリが固まります・・・何か失敗したのかなあ。
スクスタは起動が厳しそうですねえ・・・大画面で見たかった。
サガ スカーレットグレイス は、マウスとキーボードじゃ何もできない!対応するUSBコントローラーがあればプレイできました。被写界深度オンでもぬるぬる!
タッチパネル迷ってます~何がいいかな~他にもいろいろ試してみます~ここまで来れて悩めることに感謝。
コメントありがとうございます。めっちゃ力(リキ)の入った文章、読み応えありました。無事動作したようでよかったです。
今見たらJ.Kさんのところにlzipインストールの記載もありましたが、たしかに画像下で気づきづらい部分もあるかもですね。ぼくもよくlzipの導入を忘れて解凍できねーとなったので気持はよくわかります。houdiniの件はなんでかわかりませんが、サーバ側の不調かenable native bridgeがONになってなかったとかでしょうかね。
M75q-1個別のトラブルについての情報、非常に助かります。特に音周りはAndroid-x86のハマりどころですが、対策方法が提示されたのはありがたいです。ぼくのところで試したときはメモリとWi-Fi以外は最小構成で、DACもセルフパワーだったり電池内蔵だったりしたので、電力不足で起動しないーというのは盲点でした。ホームアプリについては挙動が安定しないですね。これに関しては諦めて運用でカバーしていくのが無難でしょうか。
また何かお気づきの点などありましたらぜひとも教えてください。
あ、スクスタの件わすれてました。
ぼくはプレイしないので詳しくないですが、どうもRoot環境下だとだめなようですね。suフォルダをリネームするといいそうです。ただそうすると動作しないアプリもあるので悩みどころですね。
参考URL:https://halfcoin.blog.fc2.com/blog-entry-103.html