Lenovo / ThinkCentre M75q-1 TinyにAndroid-x86をインストールしてデレステやミリシタを動かした話

投稿者: | 2020年6月19日

昨年の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のものを使用しています。

実はこれ2台目なんですが、今回のメモリはRamaxelでした。(1台目はMicron)

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どちらでも可能です。

  1. Ubuntu 20.04 LTSのISOをダウンロード。
    (他のLinuxディストリビューションでもいいのですが、ぼくはUbuntuしか知らないので。)
  2. WindowsならRufus等、LinuxならUNetbootinやddコマンドでブータブルUSBメディアを作成。
  3. USBメディアを挿したまま再起動。
  4. 直後、F2かDeleteキーを押しっぱなしにしてBIOSへ。
  5. Security→SecureBoot→”Disable” に設定→Save & EXIT
  6. 直後、F12キーを押しっぱなしにしてBoot選択画面へ。
  7. Boot選択画面でUSBメディア(Ubuntu 20.04 LTS)を選択。
  8. 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インストーラースクリプトがめちゃくちゃ優秀なのでありがたく使わせていただきましょう。本当に感謝です。

簡易インストーラの簡易説明

pie-r2 – OneDrive

というわけで、上記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のサーバーより)

をダウンロードします。

WindowsでDLしておくとこんな感じなります。

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が起動すると下の画像のようにカーソル初期位置が変更されているはずです。


上から0、1、2、3となるので、”GRUB_DEFAULT=3″ としました。

カーソル初期位置が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” と検索して当該箇所の行頭に # を入れてコメントアウトします。

今回の場合50-60行目をコメントアウト。失敗するといろいろ破綻します。発色とか。

こちらはテキストエディタで保存すれば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程度でOK。
  • スリープは復帰に失敗することが多いので電源接続時はスリープしないをチェックする。
  • アニメスケールをオフまたは.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が気になりましたらぜひ触ってみてください。

Lenovo / ThinkCentre M75q-1 TinyにAndroid-x86をインストールしてデレステやミリシタを動かした話」への2件のフィードバック

  1. せいりゅ

    こちらの情報を参考に、何とかAndroid x86のインストールに成功しました、貴重な情報ありがとうございます!!
    質問なのですが、Android x86ではThinkCentre側の無線LANモジュール(intelモジュール)は認識しないのでしょうか?ubuntu側では自動認識したので油断していました(汗)。この場合は有線接続してnative bridgeのダウンロードを行うことになるのでしょうか?

    返信
    1. relorah 投稿作成者

      コメントありがとうございます。
      参考になったとのことで、非常に嬉しく思います。

      M75q-1 Tinyで検証したわけではないので確かではないのですが、
      DeskMini A300+Intel AX200+init.sh未編集でWi-Fiは掴めた記憶があるのですが、
      なにかの拍子で速度が大幅に落ち込むこともありましたので、
      有線での接続が可能であればそちらの利用を推奨します。

      書き忘れていましたが、bluetoothやWi-Fiといった無線周りもあまり安定しないですね。

      返信

コメントを残す

メールアドレスが公開されることはありません。