看板 PCReDive 關於我們 聯絡資訊
-------------------------- 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更新)
v72807647: 7.1r3的virgl和h264 decoder有問題,改用8.1-64bit可解02/07 07:18
v72807647: 順暢度會提升很多,而且影片也可以播放02/07 07:19
v72807647: 可兩倍速,四倍仍有問題 https://youtu.be/oYTWmPDKIvM02/07 07:19
------------------------------------------------------------------------------ 5. 小結 在android-x86 8.1上運行能順利完成每日任務打公會戰 此外用libvirt+qemu/kvm玩有幾個優點 ‧隨時migrate到其他host,由會長代刀 ‧使用快照save/load,取最佳輸出 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.168.0.1 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PCReDive/M.1580949325.A.64E.html ※ 編輯: gR7P4zXH (114.137.120.99 臺灣), 02/06/2020 08:37:09
a37805: VM你自己弄的嗎...(跪02/06 08:38
peter0627: 太神啦02/06 08:39
plzza0cats: 大師02/06 08:39
r22742557: 想在實驗室偷玩公主連結?02/06 08:39
sweetmiki: 天了嚕02/06 08:44
sweetmiki: 人人有公主玩給推 02/06 08:44
sweetmiki: 只要能打公會戰都不是問題(X02/06 08:46
shinobunodok: 你想在實驗室玩公主連結吼02/06 08:48
ae323436: 慾望果然是人類進步的原動力 02/06 09:00
mapleyu: 神人推 02/06 09:18
sopdet: Linux使用者日益增加...? 02/06 09:23
fly9588: 日益增加沒錯啊 02/06 09:25
smart0eddie: OAO 02/06 09:31
Raynor: 想在lab偷玩齁 02/06 09:38
sismiku: 嗯嗯嗯 跟我想的一樣 02/06 09:49
miss80423: 我看了什麼 02/06 09:56
david22649: 太強了吧.... XD 02/06 10:06
aleckleehaha: 你是不是要叫學弟們一起測軸? 02/06 10:06
tomphone: 慾望無限 02/06 10:08
Incredible99: 你是不是想推教授入坑 02/06 10:19
Incredible99: 每次meeting 都在討論軸 02/06 10:20
Incredible99: 計畫通欸牛逼逼 02/06 10:20
明年度的計劃,基於QEMU-KVM虛擬機器的公主連結容錯技術(X)
Jmoe: 喔喔還不錯 剛好也有類似需求~ 不然linux的模擬器都不大行 02/06 10:25
ArrowEye: (′・ω・‵)b 02/06 10:30
x80307: 窩不知道 02/06 10:40
karta3223567: 推 02/06 10:53
lou3612: 嗯嗯 果然跟我想的一模一樣 02/06 11:00
driver5566: 先推不然別人以為我看不懂 02/06 11:02
suits890726: 嗯嗯跟我想的一樣 02/06 11:04
d9123155: 雖然不是Linux使用者 還是跪著推 02/06 11:04
SHiroo: 推 02/06 11:06
PTTallener: ... 02/06 11:07
s8802228: 這個格式 宅氣沖天 02/06 11:09
Kuroyukihime: 我以為會來這版就夠宅了XD 02/06 11:12
bheegrl: 真愛 02/06 11:31
x41122x: 慾望使人進步 02/06 11:49
ap9xxx: 看不懂總之先推 02/06 11:50
abjeffop: 這專業不凡 我還是先跪再推 02/06 11:52
wutomy2000: 公主連結是一款真正適合工程師的遊戲 02/06 11:54
dan901054: 先推,不然被人發現我看不懂 02/06 11:58
chons2332: 教授:欸欸那個你等等幫我出個刀 02/06 11:59
arrenwu: 看了這個教學,我還是用Windows好了 02/06 12:04
Ericz7000: 扯 02/06 12:07
AL107: 下午瞇挺麻煩交出最新的軸 洩洩 02/06 12:07
sirakuma: meeting結束了很閒齁 02/06 12:14
leo0519: 你的IP好酷 02/06 12:29
windmai: 剛剛哪個學弟亂出刀的! 02/06 12:35
Xunion: 研究精神給推 02/06 12:42
enders346: 雖然看不懂但是先推再說 02/06 13:02
hankstak: 記得高中電腦課用linux 什麼遊戲都玩不了 02/06 13:16
https://twitter.com/i/status/1191012727583473666
globalspirit: 暴雪:你沒有手機嗎? 02/06 13:27
https://www.youtube.com/watch?v=ly10r6m_-n8
kirimaru73: 請問你們fine tune軸用的optimizer是哪一種?02/06 13:41
longkiss0618: 有這等實力竟買不起手機02/06 14:03
小精靈有買二手旗艦機,他只是覺得好玩搞這個
os5566ga: 不要在lab偷玩好不好XD02/06 14:11
StCor: 螢幕右邊 02/06 15:14
a65482913: 你484來曬掛軸的www 02/06 15:22
在測軸
longkiss5566: 教授在你後面 他非常火02/06 15:33
Jimmy030489: 優文02/06 15:41
eplovecm: 好猛啊02/06 17:35
rhythm7321: 推 以後可以在lab 灌公主了02/06 18:06
rhythm7321: 在lab 打公會戰lul02/06 18:07
s9m87o: 優文02/06 19:29
HuashenBAO: 為什麼我的實驗室沒有小精靈ㄋ02/06 20:42
半夜留守實驗室會發現
ShibaTatsuya: 優文02/06 21:14
v72807647: 7.1r3的virgl和h264 decoder有問題,改用8.1-64bit可解02/07 07:18
v72807647: 順暢度會提升很多,而且影片也可以播放02/07 07:19
v72807647: 可兩倍速,四倍仍有問題 https://youtu.be/oYTWmPDKIvM02/07 07:19
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