[聊天] How to Run PCRedive on Linux
--------------------------
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
初次開啟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
------------------------------------------------------------------------------3. 繞過PCReDive對虛擬機的限制
世界上已有解法,請各位自己去問log貓和goo狗。
------------------------------------------------------------------------------4. 實際遊玩
On 8.1: https://youtu.be/oYTWmPDKIvM
On 7.1: https://www.youtube.com/watch?v=5zKJpVKoDrY
(2/7更新)
------------------------------------------------------------------------------5. 小結
在android-x86 8.1上運行能順利完成每日任務打公會戰
此外用libvirt+qemu/kvm玩有幾個優點
‧隨時migrate到其他host,由會長代刀
‧使用快照save/load,取最佳輸出
--
VM你自己弄的嗎...(跪
太神啦
大師
想在實驗室偷玩公主連結?
天了嚕
人人有公主玩給推
只要能打公會戰都不是問題(X
你想在實驗室玩公主連結吼
慾望果然是人類進步的原動力
神人推
Linux使用者日益增加...?
日益增加沒錯啊
OAO
想在lab偷玩齁
嗯嗯嗯 跟我想的一樣
我看了什麼
太強了吧.... XD
你是不是要叫學弟們一起測軸?
慾望無限
你是不是想推教授入坑
每次meeting 都在討論軸
計畫通欸牛逼逼
明年度的計劃,基於QEMU-KVM虛擬機器的公主連結容錯技術(X)
喔喔還不錯 剛好也有類似需求~ 不然linux的模擬器都不大行
(′・ω・‵)b
窩不知道
推
嗯嗯 果然跟我想的一模一樣
先推不然別人以為我看不懂
嗯嗯跟我想的一樣
雖然不是Linux使用者 還是跪著推
推
...
這個格式 宅氣沖天
我以為會來這版就夠宅了XD
真愛
慾望使人進步
看不懂總之先推
這專業不凡 我還是先跪再推
公主連結是一款真正適合工程師的遊戲
先推,不然被人發現我看不懂
教授:欸欸那個你等等幫我出個刀
看了這個教學,我還是用Windows好了
扯
下午瞇挺麻煩交出最新的軸 洩洩
meeting結束了很閒齁
你的IP好酷
剛剛哪個學弟亂出刀的!
研究精神給推
雖然看不懂但是先推再說
記得高中電腦課用linux 什麼遊戲都玩不了
暴雪:你沒有手機嗎?
請問你們fine tune軸用的optimizer是哪一種?
有這等實力竟買不起手機
小精靈有買二手旗艦機,他只是覺得好玩搞這個
不要在lab偷玩好不好XD
螢幕右邊
你484來曬掛軸的www
在測軸
教授在你後面 他非常火
優文
好猛啊
推 以後可以在lab 灌公主了
在lab 打公會戰lul
優文
為什麼我的實驗室沒有小精靈ㄋ
半夜留守實驗室會發現
優文
7.1r3的virgl和h264 decoder有問題,改用8.1-64bit可解
順暢度會提升很多,而且影片也可以播放
可兩倍速,四倍仍有問題 https://youtu.be/oYTWmPDKIvM
等等去lab測一下那個軸
27
[心得] 手機跑dockerWe need to go deeper... 基本上,Android手機沒辦法直接跑docker,因為kernel根本就不支援。雖然如此,我們還 有QEMU虛擬機呀,可惜KVM也沒辦法用。 網誌好讀版: 架構:Termux模擬器建立QEMU虛擬機,虛擬機裡面安裝Docker,然後再通訊埠轉發。27
[討論] Android 13能跑Windows虛擬機了來自XDA的新聞 Android 13預覽版加入了pKVM的功能 所以就有人拿來裝Windows 11 ARM了 沒有GPU加速但效能接近原生,能夠玩老遊戲20
[閒聊] 有人用過intel的內顯虛擬化嗎?安安 小弟之前無聊查資料 發現intel內顯有一個很神的功能,就是顯卡虛擬化intel GVT-g 為什麼說它神呢?因為AMD和NVIDIA最便宜支援虛擬化的顯卡,價位都差不多2080ti的價 格13
[軟體] 雙系統vs虛擬機mac OS中有強大的bootcamp可以協助安裝雙系統與資源管理 但看到很多網友留言說 如果只是偶爾用到windows,用虛擬機就好了 不知道具體原因是什麼? 另外安裝雙系統從微軟官網下載映像檔後,不需要啟動序號嗎? mac比較推薦的虛擬機應用程式是virtual box還是VM Ware呢?16
[問卦] Ubuntu 為什麼不買下 Linux Mint?Ubuntu 的桌面真的很難用 而且不能改 classic 模式,難用死了 = = 相較起來,Linux Mint 的桌面好用多了 比較像一個桌面系統該有的樣子 反正 Linux Mint 是基於 Ubuntu9
[心得] AMD 顯卡在 linux host/VM 間熱插拔現況得益於 Valve 大力推動 Steam Deck 和其中的 Proton,linux 如今已經可以執行不少 Windows only 的遊戲[1],然而線上遊戲的防外掛軟體仍是個大麻煩,因此偶爾仍需要 用 Windows 虛擬機器並 passthrough 顯卡到 VM 中才能愉快的玩多數線上遊戲。 在 linux 5.14 之前 AMD 的顯卡有熱插拔的問題[2],使得 passthrough 到 VM 的顯卡 很難回到 host 上繼續使用,在只有一張效能較佳顯卡的主機上需要重開機才能讓 host7
Fw: [請益] Windows接收Airplay疑問作者: LastAttack (全台最大內容農場ETtoday) 看板: Headphone 標題: [請益] Windows接收Airplay疑問 時間: Wed Aug 3 14:50:09 2022 先把問題丟前面,後面是我的心路歷程(X),供大家看趣味也供後來人參考 --問題--3
[問卦] 用linux裝windows算是用linuxㄇ?如題 小弟最近組新電腦了拉 這次想玩一些新的 把工作環境全部虛擬化 就裝惹Proxmox VE(linux),然後在上面用虛擬機跑windows 10- 作者: LastAttack (全台最大內容農場ETtoday) 看板: Headphone 標題: [請益] Windows接收Airplay疑問 時間: Wed Aug 3 14:50:09 2022 先把問題丟前面,後面是我的心路歷程(X),供大家看趣味也供後來人參考 --問題--
- 我曾經有五年的時間 只使用Linux的一台IBM筆電作所有事情 包括上PTT 後來買了MACbook Pro 所以就淘汰了舊的筆電