如何玩遊戲 - Linux

Charlotte avatar
By Charlotte
at 2016-04-18T22:43

Table of Contents

比較新的教學文...就不另外發了> , ^
http://lifed.gitlab.io/blogger/2016/08/26/PCI-passthrough-2/

---
linux很麻煩但我喜歡,喜歡它帶給我的問題與解決的成就感,它也來許多新穎的觀點,
好讓我們學習、吸收與成長,即使這只是linux世界中的一個點。

本篇基於arch的antergos,其他的發行商就抱歉啦!:Q

題外話...線上安裝antergos的時候,有些設定檔不正確,導致pci passthrough的一些
問題,要跟的話請用arch或manjaro。

---

Wine-staging
說到wine大家都知道,說到玩遊戲專用的wine非wine-staging莫屬。

詳情請見官方網...(這不是本篇的重點)

---

BIOS設定
https://db.tt/NN94KqlB
https://db.tt/3i01FdeF
https://db.tt/nFMruNv1
這裡一個大重點請用HOST的顯卡開機

舉例來說

我有HD4600(Host, linux)與R9-390(Guest, win)
開機必須使用HD4600(linux)開機絕對不是用R9-390那張顯卡去開機,這點錯後面全都不用做了。

大概是這幾點沒講好又用影片混淆了視聽

在此先測試的人說聲抱歉了<(_ _)>

---

qemu/kvm(pci passthrough)

先看影片(沒興趣就可以左轉了) :<

https://www.youtube.com/watch?v=37D2bRsthfI

簡單來講linux開一台win虛擬機,而win有近乎原生的效能(意味著你可以玩任何遊戲)。

實際上我也正在使用,這個方法有許多意想不到的優點存在,最後在慢慢舉例吧!

1. 電腦配備必須要有兩張(或以上)GPU(intel+amd, intel+nv, nv+nv, etc...)
2. 虛擬技術支援且BIOS記得打開...
備註:需要一顆很強大的內心

配備
CPU: i7-4790, RAM: 24g, GPU: intel hd4600 + r9-390, monitor: vh242, mg279q
內顯--hdmi-->vh242
外顯--dp to mini dp -->mg279q

安裝必要軟體
# yaourt -S qemu linux-vfio rpmextract synergy bridge-utils
注意這裡使用原生的kernel(3.12以上)也可以,但須自行測試。

---
設定
---

# vim /etc/default/grub
#pcie_acs_override=downstream必須使用linux-vfio才有效果
...
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on intel_iommu=pt pcie_acs_override=downstream hugepagesz=2M transparent_hugepage=never
"

# grub-mkconfig -o /boot/grub/grub.cfg

# vim /etc/mkinitcpio.conf
...
MODULES="vfio_pci vfio vfio_iommu_type1 vfio_virqfd"
...
# mkinitcpio -p linux-vfio

# vim /etc/modprobe.d/kvm-iommu.conf
#[重要]這部份nv passthrough的額外參數要在找一下,有關於效能、體驗的問題。
options kvm allow_unsafe_assigned_interrupts=1
options vfio_iommu_type1 allow_unsafe_interrupts=1
options i915 enable_hd_vgaarb=1

# lspci -nn
紅色為擷取重點
...
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii PRO [Radeon R9 290] [1002:67b1] (rev 80)
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:aac8]


# /etc/modprobe.d/vfio.conf
#如果不要顯卡音效可以不必加入
options vfio-pci ids=1002:67b1,1002:aac8
options vfio-pci disable_vga=1

# vim /etc/fstab
...
hugetlbfs /dev/hugepages hugetlbfs mode=1770,gid=78 0 0
...

# vim /etc/sysctl.d/40-hugepage.conf
#設定公式"qemu設定的記憶體/2在多一點點"
#如這裡是12G那就是1024*12/2+100
vm.nr_hugepages = 6244

# brctl addbr br0
# 修正有連線能力裝置的名稱
# brctl addif br0 eno1
# ip link set up dev br0
# dhcpcd br0
# 選填 是否給eno1裝置IP(供synergy使用)
# ifconfig eno1 123.123.123.123

---
實戰
---

下載UEFI的BIOS edk2.git-ovmf-x64
https://www.kraxel.org/repos/jenkins/edk2/
# rpmextract.sh edk2.git-ovmf-x64-*.rpm
# cp -R ./usr/share/* /usr/share

qemu測試開啟看pci passthrough是否正常啟動
# qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host,kvm=off \
-vga none \
-device vfio-pci,host=01:00.0 \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd

如果您到這邊都沒問題
1. pci passthrough沒問題
2. ovmf沒問題

來真的

下載 安裝win系列所缺少的驅動
https://fedorapeople.org/groups/virt/virtio-win/repo/latest/

https://db.tt/ZKMgFjFw

請依照Script的內容修改符合的位置,啟動後應當就像重灌win系列一樣,只是要多一個事先給virto的驅動。

# sh ./vm.sh

安裝完win系列開始設置synergy,linux為伺服端(server)而win為連線端(client)。
紅色部份為ip 記得server IP填寫在client那邊
橘色部份client的名稱要完全與server的設定頁面相同
螢幕的位置就照你想要的位置放
advanced server settings有一個use relative mouse moves(滑鼠相對移動?要開啟)
按下Scroll lokc來鎖定當下螢幕

https://db.tt/de8NPVd8

[喔嗚!?我記得synergy nightly可以好好試用試用...]

以上大功告成...

---
其他部份
---
像是可以啟用samba來達到win與linux之間的資料傳遞
https://db.tt/uKQLQSpw
然而samba又存在一些程式開啟上的問題,這時可以使用mklink
mklink /D "C:\Users\USERNAME\Desktop\SOMEWHERE" "\\1.1.1.111\galgame"
有些程式依然無解...萬惡的battle.net

遊戲在全螢幕的狀態下,滑鼠仍然可以在linux與win之間來去自如,像是開實況要開個網頁監控之類的就可以方便管理。
像是freesync需要在全螢幕下執行,這個方法就很方便了!左邊狂打game右邊逛網頁之類的無壓力!

鑑於板上好像沒有相似的文章來個拋磚引玉

希望之後會跑出virtmanager之類的host-passthrough…

這樣的虛擬機已經使用半年了且完全沒什麼問題,這也不一定僅可以玩遊戲,有問題的大多都是程式先天不相容(win10之類的)。
the division, hots, ark, gta5等等都跟原生win的電腦一樣爽爽跑,實在是沒有理由不去使用。

參考資料
https://bbs.archlinux.org/viewtopic.php?id=162768 (Arch的討論串)
裡面包含「虛擬機成功與失敗資料庫」,還有一堆問題與解決的方法。
http://vfio.blogspot.tw/ (aw大的blog)
裡面從硬體挑選到實機模擬講鉅細靡遺,但是裡面講的都很「英文」(沒有複製貼上的餘地)。
--

--
Tags: Linux

All Comments

Ursula avatar
By Ursula
at 2016-04-21T00:33
怎麼感覺像黑科技
想玩,有沒有副作用?
我怕被系統搞爆掉或者不好還原
Christine avatar
By Christine
at 2016-04-24T12:24
滑鼠用起來怎麼樣?以前用vmware時滑鼠用起來很拖
Olive avatar
By Olive
at 2016-04-24T15:06
剛好最近有重灌過 明天來玩玩看
Kelly avatar
By Kelly
at 2016-04-26T07:57
的確可以這樣用呢
Sandy avatar
By Sandy
at 2016-04-26T16:17
玩steam就好了
Kelly avatar
By Kelly
at 2016-04-30T12:17
你內顯是不是標錯了(應為HD4600)
Elma avatar
By Elma
at 2016-05-04T17:23
VGA passthrough 比 pci passthrough 還麻煩
Megan avatar
By Megan
at 2016-05-05T10:18
要晶片組有支援才行,低階主機板和 cpu 大部份都不行
Ivy avatar
By Ivy
at 2016-05-06T09:31
intel+nv 比較有機會 , amd 支援的較少
Yedda avatar
By Yedda
at 2016-05-08T07:35
關鍵字 "galgame" lol
Ivy avatar
By Ivy
at 2016-05-09T12:32
滿厲害的。steam上的遊戲應該有限制吧 (opengl)
Lily avatar
By Lily
at 2016-05-10T10:19
6年前i5-750和H5x晶片組就有VT-d了,硬體該該不會那麼挑吧
Edwina avatar
By Edwina
at 2016-05-15T07:09
雖然我當初玩 gal 基本上 wine 就綽綽有餘就是 XD
但是有時候還是要用到別人做的語系 patch
Victoria avatar
By Victoria
at 2016-05-15T19:59
現在有些gal也走DX惹,動不動Wine就跑不起來
Susan avatar
By Susan
at 2016-05-17T00:02
liar的開起來有bug,用EAGLS的則是連開都不能開
其他大概就碰到影片才比較有問題需要調校
Jack avatar
By Jack
at 2016-05-21T13:12
cool
Sierra Rose avatar
By Sierra Rose
at 2016-05-21T17:53
synergy超好用XD 至於pci passthrough的話 VT-d支援
現在應該不大難找到吧
Victoria avatar
By Victoria
at 2016-05-21T23:56
推推!
Emma avatar
By Emma
at 2016-05-26T03:32
我記得之前板上好像是用xen的,不過我那時候搞不成功
Hamiltion avatar
By Hamiltion
at 2016-05-30T03:54
大推~ 這篇必須要收藏!!
Tom avatar
By Tom
at 2016-06-04T01:50
感謝分享,純推不玩
Thomas avatar
By Thomas
at 2016-06-06T17:04
今天試下來遇到了一點問題 options vfio_pci ids=...
Daph Bay avatar
By Daph Bay
at 2016-06-10T11:04
這段如果設定下去會導致開機的時候卡在載入 nvidia 模組
Jacky avatar
By Jacky
at 2016-06-12T20:19
會覺得不麻煩的一定是沒遇過 kernel panic 或開不起來的
Edith avatar
By Edith
at 2016-06-16T17:16
問題,核心也是常常這版 ok 下一版出問題,不過新機器加
kvm 的確是比較穩。 xen 或舊 cpu 要自求多福
Joseph avatar
By Joseph
at 2016-06-21T03:44
話說passthrough的可以是內顯嗎?
個人因為intel內顯沒辦法用dualscreen的關係要用獨顯
Belly avatar
By Belly
at 2016-06-25T17:06
CP64 要玩這些請避開nvidia驅動 問題超多XDrz
Ursula avatar
By Ursula
at 2016-06-28T08:22
沒炸過? Arch應該炸過得夠多了吧XDrz
Isla avatar
By Isla
at 2016-07-03T01:08
剛剛去查了些東西 果然是被雷到了 (趴
Elma avatar
By Elma
at 2016-07-06T10:23
我對passthrough的理解是把硬體直接交給VM去控制
Leila avatar
By Leila
at 2016-07-06T12:55
所以host要用的硬體不能pass過去對吧?
Mary avatar
By Mary
at 2016-07-09T15:20
那我的問題就很簡單啦,就只是問能不能把內顯pass過去
Victoria avatar
By Victoria
at 2016-07-13T23:35
有內顯獨顯,和接的螢幕數量無關
Carolina Franco avatar
By Carolina Franco
at 2016-07-15T10:02
是說Ubuntu好像沒有vfio可以裝
Dinah avatar
By Dinah
at 2016-07-17T08:03
ubuntu 印象中看過一篇也是這種做法的 可是連結不見了XD
Robert avatar
By Robert
at 2016-07-22T01:36
可不可以也寫一篇wine的(小聲
Jessica avatar
By Jessica
at 2016-07-26T01:56
wine 不是已經很方便了嗎?
Quanna avatar
By Quanna
at 2016-07-30T02:47
可能脫節太久 對wine的印象還停在1.0的時代
Isla avatar
By Isla
at 2016-07-30T22:02
使用方式好像沒變化太多 XD
Lydia avatar
By Lydia
at 2016-08-03T01:19
用 wine-staging 主要是有 CSMT,對某些遊戲可以用 CPU
去換 framerate,大幅提昇速度。
Enid avatar
By Enid
at 2016-08-05T00:10
自己常用的軟體幾乎都有linux版 除了office和遊戲外
Xanthe avatar
By Xanthe
at 2016-08-09T06:47
再加上少玩遊戲 結果使用wine這塊反而都沒有接觸到XD
Heather avatar
By Heather
at 2016-08-13T20:58
亞系的遊戲有很多問題都是卡在anticheat的垃圾上面...
Andrew avatar
By Andrew
at 2016-08-14T16:26
歐美的比較不容易出問題
Victoria avatar
By Victoria
at 2016-08-14T22:22
結果昨天晚上想說順便更新 bios 爆炸了 (囧
Olive avatar
By Olive
at 2016-08-18T00:35
感謝回答XD 這樣看樣子要玩還是雙系統切回去win比較方便
Lily avatar
By Lily
at 2016-08-22T17:42
更新開不了機的意思不是不能修,而是你拿掉參數後雖然可
以進 linux ,但你的 windows 就不能 passthrough 了
所以你唯一解就是 downgrade kernel ,這種情況難道不麻
Ida avatar
By Ida
at 2016-08-24T23:26
煩? 改 bootloader 是幾秒鐘就修好啟動問題,但你的 VM
也就掰了。 根本不是什麼修不修的好的問題
David avatar
By David
at 2016-08-25T13:42
跳針到要用 live-cd 再 chroot 根本多此一舉
改個 grub/syslinux 參數哪需要 live cd
Carol avatar
By Carol
at 2016-08-28T18:26
前幾週也想玩VGA passthrough,無奈主板不支援...
Erin avatar
By Erin
at 2016-08-29T18:50
原po要不要跑分看看kvm:host的效率比?
Annie avatar
By Annie
at 2016-09-03T11:06
我只是很好奇passthrough到底可以多接近實機啦!google到的
Gilbert avatar
By Gilbert
at 2016-09-04T08:46
都是說很接近,但沒看到數值描述。 很久已前我用過
CrystalMark 2004 ,可以在一個軟體中測含GPU內的各項數值
Noah avatar
By Noah
at 2016-09-07T03:51
cpu-z那個是拿你的去和資料庫比對嗎? 4790k 100% ??
Ethan avatar
By Ethan
at 2016-09-11T07:23
完全沒損耗,這麼強喔!
Ivy avatar
By Ivy
at 2016-09-15T21:09
結果試了 wine-staging 和 wine 跑ro卡都在更新程式
Suhail Hany avatar
By Suhail Hany
at 2016-09-18T10:29
用virt-manager搞定了 不過直接pass through音效卡
Adele avatar
By Adele
at 2016-09-20T08:39
不知道為什麼爆音有點嚴重
Liam avatar
By Liam
at 2016-09-24T01:54
太神辣
Cara avatar
By Cara
at 2016-09-26T04:18
Wine+Codeja

DNS 無法解析某網頁

David avatar
By David
at 2016-04-18T22:30
公司有架設自己的DNS,某個非網域內的網站DNS無法解析,但上層的DNS卻可以.. 想請問是甚麼問題呢? 像www.yahoo.com.tw 都可以解析出來.. 謝謝 - ...

szlin - 分散式編譯 icecream 使用心得

Olivia avatar
By Olivia
at 2016-04-17T13:08
http://blog.tossug.org/2016/04/szlin-icecream.html [2016/04/19] szlin 將介紹 icecream 如何透過分散式編譯, 將每台電腦都發揮到淋漓盡致~ * 使用普通機器組成的cluster可以大幅加快編譯速度. (以Linux 3.8 ...

proxmox zpool的問題

Jessica avatar
By Jessica
at 2016-04-15T22:37
各位前輩好 最近想將原本的系統改跑proxmox玩玩,看上的是web直接管理kvm跟想玩玩zfs。 目前的架構是1*ssd(Debian系統)+3*HD(RAID 5純資料) 若是系統被我玩掛了,即使將SSD重新安裝,也可以馬上掛載RAID 5的資料碟。 但是當我測試proxmox時,卻發現重新安裝系統後 ...

關於想自己架NAS的LINUX新手該怎麼學習

Kelly avatar
By Kelly
at 2016-04-15T19:31
各位有LINUX經驗的前輩好~ 我最近需要管理NAS,但是我對LINUX還不是很清楚, 我也有上過鳥哥查詢一些LINUX的一些基礎知識,但內容真的太豐富了, 因為現在正在課業最繁忙的時候(非資工、資管出生), 但我對基本計算機概論還是有些了解, 所以想請教各位前輩若時間上沒有那麼充裕我該怎麼從鳥哥上學習 有關 ...

有沒有 pctools 這樣的工具?

Yuri avatar
By Yuri
at 2016-04-14T22:32
大家好.... 若干年前 DOS 時代 ( 應該是 286 386 那時吧) 當時只用DOS 就像 linux console 功能當然就遠遠比不上 當時 有個工具軟體 pctools 可以在文字模式下執行 會出現很多選單 也就是把dos指令圖形化 andlt;--是這樣說嗎? 不知道linux 底 ...