FC2ブログ

Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://junksta.blog41.fc2.com/tb.php/28-d32071d3

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Android-x86でデレステとかミリシタを新しめのハードウェアで動かす時のメモ書き

後で思い出せるように。

Android-x86使って、Raven Ridgeとかでデレステとかミリシタ動かしたいって場合のメモ。

基本的には、kernel driverが対応してるかどうかがまず問題。
公式サイトで公開されてるものだと、
Marshmallow :kernel 4.4
Nougat, Oreo :kernel 4.9
で構築されてるので、これ以降のkernelを要求するものは基本的には動かない。
幸いソースは公開されているので、必要ならば自分で再構築すればいい。

既にAndroid-Pが動いてる今、さすがにMarshmallow環境はちょっと古くなりすぎた気もする。
kernel4.7以降に更新しようとすると、他にもいろいろ更新しないと動かないので一筋縄ではうまくいかない。
(既に環境が整っているなら割と安定しているとは思う。)
今から使うなら、Nougat以降の環境が無難かなあ。

さて。
動かしたいのはOSそのものではなくアプリのほうなので、自分が動かしたいアプリが
自分の満足する設定で動くかどうかが一番問題。
ということで、個人的に遊んでいる主なアプリについて。

・デレステ
何となく、日本でandroid-x86をいじくっている人の多くが動かしているんじゃないかと妄想。
1.GPUの性能要求は高い。FHDで3Dリッチ高解像度で遊ぶには400 GFLOPS程度は欲しいかなあ。
intel系のiGPUだとKaby Lake のUHD 620あたりで何とかなる感じ。
4kとか言い出すと、ある程度余裕も見て2 TFLOPSくらいあると安心かも。
2.CPUの性能要求は、素のAndroid-x86 7.1-r2でそこそこ動いていたくらいなので、
比較的おとなしめじゃないかな。(Android-x86 7.1-r2は複数コアをまともに使ってくれなかった)
3.GPU名称を偽装しないと解像度が残念なことに。GLtoolsを使うためにはroot環境が必要

・ミリシタ
最近はこればっかりやってる。個人的には3D環境でプレイしないと楽しさが半減な気がする。
1.GPUの性能要求は比較的おとなしめ。(描画が基本的には720pだからかな)
2.CPUの性能要求は比較的高め。性能が足りないとカクツキが頻発してプレイに多大な支障がでる。ていうかやってて楽しくない。
3.native bridgeが必須

・歌マクロス
某ニコ生の影響で始めて見た。あまりやりこんではいないので詳しいことはよくわからない。
とりあえず動作環境的に。
1.CPU・GPUの性能要求はよくわからない。デレ、ミリより重いってことはなさそうだけど、どうなんだろ。
2.root環境では動作不可。ラブライブとかと同じような感じ。

とりあえずこんな感じ。

GPUに関してハードウェア環境としては、
1.intel iGPU
割と動く。HDMI経由で音声出力できる環境が多いので性能が足りるならそこそこよい選択かも。
ただ、表示のバグが多い気がする。性能的にはCore i系の新しめのものなら400GFLOPS程度はある。
ATOM系は性能に期待する方が間違っているかも。

2.AMD系
2-1.dGPU系
kernel driverの関係上、
marshmallowではRadeon GCN 2nd系まで
nougat,OreoではRadeon GCN 4th系まで
それぞれ対応しているはず。それ以降はkernelを更新する必要がある。
kernel4.16にすればVegaも動くはず。
2-2.iGPU系
同様にkernelの関係上、
marshmallowではGodavari系まで
nougat,OreoではBristol Ridgeまで
それぞれ対応していると思う。
Raven Ridgeで動かしたい場合は、kernel 4.16以降が必要っぽい。
基本的に音声出力はUSBDACに頼るのが無難。
なんかの間違いでHDMI経由で音声出力できることもあるけど、あんまり期待はしない方がよさそう。

3.Nvidia系
Nouveauチームの皆様、頑張ってください。
なんかredhatの中の人がいろいろやってるとどこかで見た気がするけど、もうちょっとかかりそうかな。
kernel4.16環境だとPascalも動かすだけなら動かないこともないけど、あんまり意味はないような気もする。

ということで対応状況としては、GPU性能が必要な場合はRadeon系が一番かな。
Marshmallowの場合は、Radeon 2xx(285を除く)あたり?
Nougat, OreoはPolaris系でもいいはず。(公式buildはmesaに問題があるとかないとか…)


・カスタムビルド関連
kernelを更新すれば新しめのハードでも動かせる。
更新は、githubからandroid-x86向けに更新されているkernelを持っくればいいだけなので難しくはない。
いくつか個人的な備忘録。
1.kernelを更新した場合は、native bridge対応パッチを当てないとミリシタとかで動作に支障が出る。
2.kernel configはDCN1.0対応にチェックが入っていなかったりする場合があるので要確認。
3.mesaを更新する場合は、LLVMも更新が必要。(正確には更新ではなく別途対応しているものを入れる)
4.firmwareは別になってるので、更新を忘れない。
5.Opengappsを一緒にbuildするとトラブルが多いので、zipから入れる方が楽。


・ということで、現環境

OS: Android-x86_64 (based on Android-x86_64 7.1-r2 )
CPU: AMD Ryzen 3 2200G
GPU: Radeon Vega 8 (Ryzen 3 2200G iGPU)
Mem: CFD W4U2400PS-4G (4GB ×2)
SSD: Intel SSD 545s SSDSC2KW256G8X1
M/B: MSI B350M MORTAR
DAC: SMSL M3
DISPLAY: GECHIC OnLap 1303I
…いくらなんでもメモリがヒドイ。
ナンの間違えなのか、一応HDMI経由でも音声出力できてます。

とりあえずこの環境でデレステ、ミリシタ、歌マクロスは不満なく動作。
歌マクロスを動かす時は、/system/bin/suと/system/xbin/suを消してdebugを0にする。ラブライブなんかもこれで動く。いつまでこの環境で遊ばせてくれるかわからないけど。

一番GPU要求が高いデレステについては、4k解像度で動かすと60fpsを維持しきれていないので、
どうせならRyzen 5 2400Gのほうが良かったかな。熱いけど。
今から新しく作るなら、Ryzen 5 2400G + GIGABYTE B450I AORUSあたりでコンパクトに遊んでみたい。
こんなこと書いておくとまた生えてきそう。

ベンチマークスコアを適当に。
Antutu7
antutu7.jpg

total: 362147
CPU: 160421
GPU: 107587
UX: 74935
MEM: 19204
…GPUスコアが低いのは多分Vulkanがうまく動いていないせい。

GeekBench
single: 4386
multi: 13530
compute: 6949
geek1.jpg
geek2.jpg

3Dmark
Sling Shot Extreme OpenGL ES 3.1: 7119
Sling Shot: 8397
ICE STORM: 120463




・インストール関連
android-x86のインストーラーはあまり出来がよろしくない感じなので、手動で入れる方が安心。
適当なLinux環境が既に入っていればとても簡単。

android-x86のISOファイル名がandroid-x86.isoで、
/android
に入れることを前提に。基本的にrootで操作。

mkdir /android
cd /android
mkdir data
mkdir iso
mount -o ro android-x86.iso iso
cp iso/kernel .
cp iso/initrd.img .
cp iso/ramdisk.img .
cp iso/system.sfs .
umount iso
rm -rf iso
/systemを展開する必要が無ければこれだけでOK。
展開する場合は、以下を追加。system.imgをコピーするだけでも良い気はする。
unsquqshfs system.sfs
mkdir tmp
mount -o loop squashfs-root/system.img tmp
cp -af tmp/ system
umount tmp
rm -rf tmp
rm -rf squashfs-root
rm system.sfs
こんな感じでファイルを配置。後はgrubを適切に設定するだけ。
(Oreoの場合は、SELinuxの関係上、cpのオプションにZを入れる。)
FHD以上の高解像度環境の場合は、kernel optionに
vmalloc=256M
を追加する必要がある場合があるっぽい。


・ramdisk.imgの展開と再構築
内容を編集したい場合などに。
展開
mkdir tmp
cd tmp
zcat ../ramdisk.img | cpio -idm >/dev/null

再構築
rm ../ramdisk.img
find . | cpio -o -H newc |gzip ..>ramdisk.img

こんな感じで。initrd.imgなんかも大体同じ。


…それにしても長い

スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://junksta.blog41.fc2.com/tb.php/28-d32071d3

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。