作者gR7P4zXH (tpn7gpdx)
看板PCReDive
标题[聊天] How to Run PCRedive on Linux
时间Thu Feb 6 08:35:21 2020
--------------------------
2020/07/23 update
使用QEMU启动的可再处理完image後参考下列参数启动
qemu-system-x86_64 -enable-kvm -m 4096 -smp
4,sockets=1,cores=4,threads=1 \
-cpu host \
-drive file=pcredive.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 \
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
\
-soundhw ac97 -machine vmport=off -usb -device usb-tablet,bus=usb-bus.0 \
-netdev user,id=mynet,hostfwd=tcp::5555-:5555 \
-device virtio-net-pci,netdev=mynet \
-device virtio-vga,virgl=on -display gtk,gl=es -name 'PCRedive'
注意-display参数,与一般gl=on的差别是gl=es
减少一次复制,能有效减少cpu使用量并增进效能
--------------------------
各位佑树好,考虑到Linux使用者日益增加,我希望也能在Linux上运行公主连结,在
linux上透过QEMU/KVM来建构为Android-x86基础的虚拟机执行游戏。windows使用者请左
转,谢谢,前方有Blues____和夜O模拟器。
(先感谢实验室小精灵提供技术)
http://i.imgur.com/Spm75kl.jpg
测试环境(Testing environment)
‧Ubuntu 19.10
‧libvirt 5.4.0
‧qemu-system-x86 4.0
硬体设备(Hardware)
‧I7-6700
‧32G Ram
‧Intel 512G SSD
测试方式(Testing)
‧创建Android x86虚拟机
‧打Magisk上去对PCReDive隐藏root
‧绕过PCReDive对虚拟机的设下的重重障碍
‧开心课金
动机(Motivation)
‧买不起手机且现有手机跑不动PCReDive
‧三个伺服器有六个帐号要顾
‧想在Linux上面跑
贡献(Contribution)
‧打上最新版的Magisk到Android-x86
‧可以Migration的虚拟机!
------------------------------------------------------------------------------
1.创建Android x86虚拟机
安装libvirt+qemu/kvm
sudo apt install virt-manager
下载Android-x86 (
https://www.android-x86.org/)安装档,并用virt-manager创建虚拟
机。libhoudini是intel用来转译arm到x86的闭源函式库,android-x86各版本搭载的
libhoudini支援度有所不同,建议各位下载8.1版。
android-x86 hostOS guestOS libhoudini 跑公连测试结果
7.1 (32bit) x86 x86 x decoder有问题导致3d动画无法显现
8.1 (64bit) x64 x86 y 一切正常,推荐使用
9.0 (32bit) x86 x86 ? 在开启游戏时会用64bit libhoudini
开导致错误 (Intel退坑,android x
86社群没人想port)
https://i.imgur.com/eEiE5O5.png
https://i.imgur.com/aJyLHBZ.png
初次开启PCReDive遇到闪退的问题,且可用logcat观察到以下讯息,请启用Native
bridge
02-06 00:40:15.047 9274 9274 E art : No implementation found for void
com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (tried
Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator and
Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator__)
https://i.imgur.com/2iLmS6l.png
-----------------------------------------------------------------------------
2. Magisk
我们对现有的kernel打上Magisk,需要一点Android知识,不过照着下列操作,完全不需
要!
先将虚拟机关机,并将必要档案提取出。
sudo -i
mkdir /mnt/vmdk /mnt/workspace
guestmount -a /var/lib/libvirt/images/vm1-1.qcow2 -m /dev/sda1 /mnt/vmdk
cp /mnt/vmdk/android-7.1-r3/ramdisk.img /mnt/workspace/ramdisk.img
不忘记备份
cd /mnt/workspace
cp ramdisk.img ramdisk.img.bak
查看ramdisk.img的格式并将其压缩,这意味着我们可以用mkbootimg制作boot.img,在已
安装Magisk的android上对此boot.img进行patch。
# file ramdisk.img
ramdisk.img: gzip compressed data, from Unix, original size modulo 2^32
4208896
# mv ramdisk.img ramdisk.img.gz
# gunzip ramdisk.img.gz
# file /mnt/workspace/ramdisk.img
/mnt/workspace/ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
# git clone
https://github.com/xiaolu/mkbootimg_tools.git
# cd mkbootimg_tools
# ./mkbootimg --kernel /mnt/vmdk/android-7.1-r3/kernel --ramdisk
/mnt/workspace/ramdisk.img -o /mnt/workspace/boot.img
用任何方式送进已安装Magisk的android,装好的Android-x86自然也能帮上忙,於Magisk
选择Install > Select and Patch a File。
https://i.imgur.com/beRF8xq.png
成功!取得magisk_patched.img,取出ramdisk.img送回虚拟机算是大功告成
https://i.imgur.com/IwPzMBV.png
# cd mkbootimg_tools
# ./mkboot /mnt/workspace/magisk_patched.img /mnt/workspace/magisk_patched
Unpack & decompress ../magisk_patched.img to magisk_patched
kernel : kernel
ramdisk : ramdisk
page size : 2048
kernel size : 6008384
ramdisk size : 4794092
base : 0x10000000
kernel offset : 0x00008000
ramdisk offset : 0x01000000
tags offset : 0x00000100
cmd line :
ramdisk is unknown format,can't unpack ramdisk
Unpack completed.
# file /mnt/workspace/magisk_patched/ramdisk.packed
/mnt/workspace/magisk_patched/ramdisk.packed: ASCII cpio archive (SVR4 with
no CRC)
# mv ramdisk.packed ramdisk.img
# gzip ramdisk.img
# mv ramdisk.img.gz ramdisk.img
# cp ramdisk.img /mnt/vmdk/android-7.1-r3/ramdisk.img
最後卸载并开机
umount /mnt/vmdk
终於能启用Magisk Hide加入PCReDive
https://i.imgur.com/PwVtqsZ.png
https://i.imgur.com/6vyOK4z.png
------------------------------------------------------------------------------
3. 绕过PCReDive对虚拟机的限制
世界上已有解法,请各位自己去问log猫和goo狗。
------------------------------------------------------------------------------
4. 实际游玩
On 8.1:
https://youtu.be/oYTWmPDKIvM
On 7.1:
https://www.youtube.com/watch?v=5zKJpVKoDrY
(2/7更新)
1F:推 v72807647: 7.1r3的virgl和h264 decoder有问题,改用8.1-64bit可解02/07 07:18
2F:→ v72807647: 顺畅度会提升很多,而且影片也可以播放02/07 07:19
------------------------------------------------------------------------------
5. 小结
在android-x86 8.1上运行能顺利完成每日任务打公会战
此外用libvirt+qemu/kvm玩有几个优点
‧随时migrate到其他host,由会长代刀
‧使用快照save/load,取最佳输出
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 192.168.0.1 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PCReDive/M.1580949325.A.64E.html
※ 编辑: gR7P4zXH (114.137.120.99 台湾), 02/06/2020 08:37:09
4F:推 a37805: VM你自己弄的吗...(跪02/06 08:38
5F:推 peter0627: 太神啦02/06 08:39
6F:推 plzza0cats: 大师02/06 08:39
7F:推 r22742557: 想在实验室偷玩公主连结?02/06 08:39
8F:推 sweetmiki: 天了噜02/06 08:44
9F:→ sweetmiki: 人人有公主玩给推 02/06 08:44
10F:推 sweetmiki: 只要能打公会战都不是问题(X02/06 08:46
11F:→ shinobunodok: 你想在实验室玩公主连结吼02/06 08:48
12F:推 ae323436: 慾望果然是人类进步的原动力 02/06 09:00
13F:推 mapleyu: 神人推 02/06 09:18
14F:推 sopdet: Linux使用者日益增加...? 02/06 09:23
15F:推 fly9588: 日益增加没错啊 02/06 09:25
16F:推 smart0eddie: OAO 02/06 09:31
17F:推 Raynor: 想在lab偷玩齁 02/06 09:38
18F:推 sismiku: 嗯嗯嗯 跟我想的一样 02/06 09:49
19F:推 miss80423: 我看了什麽 02/06 09:56
20F:推 david22649: 太强了吧.... XD 02/06 10:06
21F:推 aleckleehaha: 你是不是要叫学弟们一起测轴? 02/06 10:06
22F:推 tomphone: 慾望无限 02/06 10:08
23F:推 Incredible99: 你是不是想推教授入坑 02/06 10:19
24F:→ Incredible99: 每次meeting 都在讨论轴 02/06 10:20
25F:→ Incredible99: 计画通欸牛逼逼 02/06 10:20
明年度的计划,基於QEMU-KVM虚拟机器的公主连结容错技术(X)
26F:推 Jmoe: 喔喔还不错 刚好也有类似需求~ 不然linux的模拟器都不大行 02/06 10:25
27F:推 ArrowEye: (′・ω・‵)b 02/06 10:30
28F:推 x80307: 窝不知道 02/06 10:40
29F:推 karta3223567: 推 02/06 10:53
30F:→ lou3612: 嗯嗯 果然跟我想的一模一样 02/06 11:00
31F:推 driver5566: 先推不然别人以为我看不懂 02/06 11:02
32F:推 suits890726: 嗯嗯跟我想的一样 02/06 11:04
33F:推 d9123155: 虽然不是Linux使用者 还是跪着推 02/06 11:04
34F:推 SHiroo: 推 02/06 11:06
35F:推 PTTallener: ... 02/06 11:07
36F:嘘 s8802228: 这个格式 宅气冲天 02/06 11:09
37F:推 Kuroyukihime: 我以为会来这版就够宅了XD 02/06 11:12
38F:推 bheegrl: 真爱 02/06 11:31
39F:推 x41122x: 慾望使人进步 02/06 11:49
40F:推 ap9xxx: 看不懂总之先推 02/06 11:50
41F:推 abjeffop: 这专业不凡 我还是先跪再推 02/06 11:52
42F:推 wutomy2000: 公主连结是一款真正适合工程师的游戏 02/06 11:54
43F:推 dan901054: 先推,不然被人发现我看不懂 02/06 11:58
44F:推 chons2332: 教授:欸欸那个你等等帮我出个刀 02/06 11:59
45F:推 arrenwu: 看了这个教学,我还是用Windows好了 02/06 12:04
46F:→ Ericz7000: 扯 02/06 12:07
47F:推 AL107: 下午眯挺麻烦交出最新的轴 泄泄 02/06 12:07
48F:推 sirakuma: meeting结束了很闲齁 02/06 12:14
49F:推 leo0519: 你的IP好酷 02/06 12:29
50F:推 windmai: 刚刚哪个学弟乱出刀的! 02/06 12:35
51F:推 Xunion: 研究精神给推 02/06 12:42
52F:推 enders346: 虽然看不懂但是先推再说 02/06 13:02
53F:推 hankstak: 记得高中电脑课用linux 什麽游戏都玩不了 02/06 13:16
https://twitter.com/i/status/1191012727583473666
54F:推 globalspirit: 暴雪:你没有手机吗? 02/06 13:27
https://www.youtube.com/watch?v=ly10r6m_-n8
55F:推 kirimaru73: 请问你们fine tune轴用的optimizer是哪一种?02/06 13:41
56F:推 longkiss0618: 有这等实力竟买不起手机02/06 14:03
小精灵有买二手旗舰机,他只是觉得好玩搞这个
57F:推 os5566ga: 不要在lab偷玩好不好XD02/06 14:11
58F:推 StCor: 萤幕右边 02/06 15:14
59F:推 a65482913: 你484来晒挂轴的www 02/06 15:22
在测轴
60F:推 longkiss5566: 教授在你後面 他非常火02/06 15:33
61F:推 Jimmy030489: 优文02/06 15:41
62F:推 eplovecm: 好猛啊02/06 17:35
63F:推 rhythm7321: 推 以後可以在lab 灌公主了02/06 18:06
64F:→ rhythm7321: 在lab 打公会战lul02/06 18:07
65F:推 s9m87o: 优文02/06 19:29
66F:推 HuashenBAO: 为什麽我的实验室没有小精灵ㄋ02/06 20:42
半夜留守实验室会发现
67F:推 ShibaTatsuya: 优文02/06 21:14
68F:推 v72807647: 7.1r3的virgl和h264 decoder有问题,改用8.1-64bit可解02/07 07:18
69F:→ v72807647: 顺畅度会提升很多,而且影片也可以播放02/07 07:19
71F:推 max410286: 等等去lab测一下那个轴02/07 07:23
※ 编辑: gR7P4zXH (1.163.8.163 台湾), 02/08/2020 16:58:03
※ 编辑: gR7P4zXH (1.163.8.163 台湾), 02/08/2020 16:58:49
※ 编辑: gR7P4zXH (140.115.52.18 台湾), 07/23/2020 20:27:24