Linux 板


LINE

比較新的教學文...就不另外發了> , ^ 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) 裡面從硬體挑選到實機模擬講鉅細靡遺,但是裡面講的都很「英文」(沒有複製貼上的餘地)。 -- --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.203.240
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1460990620.A.B5D.html ※ 編輯: Shelllife (220.133.203.240), 04/18/2016 22:49:03
1F:推 a07051226: 怎麼感覺像黑科技 04/19 00:28
2F:→ a07051226: 想玩,有沒有副作用? 04/19 00:28
3F:→ a07051226: 我怕被系統搞爆掉或者不好還原 04/19 00:28
4F:→ qoopichu: 滑鼠用起來怎麼樣?以前用vmware時滑鼠用起來很拖 04/19 00:48
滑鼠很順就跟在windows一樣,synergy切換螢幕可以即時或是設定毫秒。
5F:→ CP64: 剛好最近有重灌過 明天來玩玩看 04/19 02:19
6F:推 Vdragon: 的確可以這樣用呢 04/19 02:45
7F:推 druid0214: 玩steam就好了 04/19 07:47
8F:→ George017: 你內顯是不是標錯了(應為HD4600) 04/19 09:30
感謝提醒:)
9F:→ HamalAri: VGA passthrough 比 pci passthrough 還麻煩 04/19 09:49
10F:→ HamalAri: 要晶片組有支援才行,低階主機板和 cpu 大部份都不行 04/19 09:50
11F:→ HamalAri: intel+nv 比較有機會 , amd 支援的較少 04/19 09:51
https://bbs.archlinux.org/viewtopic.php?id=162768 https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDURhyxa3sgqkGXmvNCIvIMenk/edit#gid=0 這邊有資料庫可以比對資訊,如果有相符的有成功大概就沒問題,不用擔心支援度的問題。 這方法2013(kernel的某一版後)就開始討論了,大多都成功的案例,passthrough就僅是多 一條參數並不會麻煩到哪裡去,可惜的是中文有討論的地方太少了。
12F:→ qoopichu: 關鍵字 "galgame" lol 04/19 12:23
13F:推 Adama: 滿厲害的。steam上的遊戲應該有限制吧 (opengl) 04/19 12:50
14F:→ Adama: 6年前i5-750和H5x晶片組就有VT-d了,硬體該該不會那麼挑吧 04/19 12:52
15F:→ CP64: 雖然我當初玩 gal 基本上 wine 就綽綽有餘就是 XD 04/19 13:23
16F:→ CP64: 但是有時候還是要用到別人做的語系 patch 04/19 13:23
LC_ALL=ja_JP.UTF-8? (誤)
17F:推 ChakraLinux: 現在有些gal也走DX惹,動不動Wine就跑不起來 04/19 14:08
dx是還好,是影片播放動不動導致wine崩壞的還滿多的,不然wine其實挺方便的!?
18F:→ qoopichu: liar的開起來有bug,用EAGLS的則是連開都不能開 04/19 14:10
19F:→ qoopichu: 其他大概就碰到影片才比較有問題需要調校 04/19 14:10
20F:推 winken2004: cool 04/19 15:06
※ 編輯: Shelllife (220.133.203.240), 04/19/2016 17:23:52
21F:推 danny8376: synergy超好用XD 至於pci passthrough的話 VT-d支援 04/19 19:18
22F:→ danny8376: 現在應該不大難找到吧 04/19 19:18
23F:推 POSIX: 推推! 04/19 20:56
24F:→ qoopichu: 我記得之前板上好像是用xen的,不過我那時候搞不成功 04/19 21:22
25F:推 undersky: 大推~ 這篇必須要收藏!! 04/20 13:54
26F:推 Neisseria: 感謝分享,純推不玩 04/20 14:15
27F:→ CP64: 今天試下來遇到了一點問題 options vfio_pci ids=... 04/20 15:20
28F:→ CP64: 這段如果設定下去會導致開機的時候卡在載入 nvidia 模組 04/20 15:21
29F:→ HamalAri: 會覺得不麻煩的一定是沒遇過 kernel panic 或開不起來的 04/20 17:38
30F:→ HamalAri: 問題,核心也是常常這版 ok 下一版出問題,不過新機器加 04/20 17:39
31F:→ HamalAri: kvm 的確是比較穩。 xen 或舊 cpu 要自求多福 04/20 17:39
arch的常客用aur的套件更新前看一下留言訊息基本上應該不會有什麼問題 我是沒遇到過啦,如果真的遇到了arch上面也會有更多慌張的人 頂多就livecd&arch-chroot修正(最常修的反而是grub..愛亂玩的話)
32F:→ qoopichu: 話說passthrough的可以是內顯嗎? 04/20 17:48
33F:→ qoopichu: 個人因為intel內顯沒辦法用dualscreen的關係要用獨顯 04/20 17:48
其實我不太懂這說法的意思...我看資料庫裡面也沒有人特別去pass內顯 只要單一螢幕有兩種接法就可以了 內顯vga接A螢幕的vga 外顯DVI接A螢幕的DVI這樣就可以了 玩的時候要切螢幕模式
34F:→ danny8376: CP64 要玩這些請避開nvidia驅動 問題超多XDrz 04/20 18:22
35F:→ danny8376: 沒炸過? Arch應該炸過得夠多了吧XDrz 04/20 18:25
36F:→ CP64: 剛剛去查了些東西 果然是被雷到了 (趴 04/20 18:27
玩這個東西我只有一個觀點 顯卡有成功過 主機板有成功過理論上就可行。 可能本文是初始設定講的太粗糙,導致許多未預期的事情發生等等趕工:P ※ 編輯: Shelllife (220.133.203.240), 04/20/2016 19:19:41
37F:→ qoopichu: 我對passthrough的理解是把硬體直接交給VM去控制 04/20 19:26
38F:→ qoopichu: 所以host要用的硬體不能pass過去對吧? 04/20 19:27
對:) ※ 編輯: Shelllife (220.133.203.240), 04/20/2016 19:57:22
39F:→ qoopichu: 那我的問題就很簡單啦,就只是問能不能把內顯pass過去 04/20 20:09
40F:→ qoopichu: 有內顯獨顯,和接的螢幕數量無關 04/20 20:10
41F:→ qoopichu: 是說Ubuntu好像沒有vfio可以裝 04/20 20:14
猜測是不行! 你可以試試顯卡開機&lspci | VGA把內顯給bind passthrough那邊改成內顯的看看,如果可以也是第一人阿 vfio類似的patch可能就要找一下了 ※ 編輯: Shelllife (220.133.203.240), 04/20/2016 21:12:59
42F:→ Bellkna: ubuntu 印象中看過一篇也是這種做法的 可是連結不見了XD 04/20 21:41
43F:→ Bellkna: 可不可以也寫一篇wine的(小聲 04/20 21:42
44F:推 Bencrie: wine 不是已經很方便了嗎? 04/20 21:43
45F:→ Bellkna: 可能脫節太久 對wine的印象還停在1.0的時代 04/20 21:47
46F:推 Bencrie: 使用方式好像沒變化太多 XD 04/20 23:30
47F:→ Bencrie: 用 wine-staging 主要是有 CSMT,對某些遊戲可以用 CPU 04/20 23:31
48F:→ Bencrie: 去換 framerate,大幅提昇速度。 04/20 23:31
49F:推 Bellkna: 自己常用的軟體幾乎都有linux版 除了office和遊戲外 04/21 02:32
50F:→ Bellkna: 再加上少玩遊戲 結果使用wine這塊反而都沒有接觸到XD 04/21 02:33
wine幾乎都是那個模樣,我是1.6那邊加入的,後來跑出staging讓人趨之若鶩,效能有爆炸性的增長根本天國。 當然缺點也是一籮筐,每天要追這次的staging commit的什麼哇哥,這次的哪個patch導 致破圖都要自己去找,更不用說有一陣子rebase的黑暗期,找不出來問題點的所在。 像如果要用wine玩台灣的遊戲幾乎是不可能...不是遊戲的問題而是「平台的問題」 各種軟體安裝可能裝了A,結果B因為某個conflict跑不起來,才會有許多wine分支的軟體 取而代之的方法就是虛擬一台與win系列效能近乎的虛擬機出來。 wine前期方便..後續要處理的問題跟山一樣高,隨著使用軟體的多樣性處理的時間也是... 虛擬機前期麻煩..後續沒什麼要處理的問題,有什麼問題丟給win自己解決就對啦XD ※ 編輯: Shelllife (220.133.203.240), 04/21/2016 09:40:25
51F:→ qoopichu: 亞系的遊戲有很多問題都是卡在anticheat的垃圾上面... 04/21 10:21
52F:→ qoopichu: 歐美的比較不容易出問題 04/21 10:22
53F:→ CP64: 結果昨天晚上想說順便更新 bios 爆炸了 (囧 04/21 10:27
為CP64默哀十秒...1...2...阿~太麻煩了...(茶)
54F:推 Bellkna: 感謝回答XD 這樣看樣子要玩還是雙系統切回去win比較方便 04/21 19:25
55F:→ HamalAri: 更新開不了機的意思不是不能修,而是你拿掉參數後雖然可 04/21 23:28
56F:→ HamalAri: 以進 linux ,但你的 windows 就不能 passthrough 了 04/21 23:28
57F:→ HamalAri: 所以你唯一解就是 downgrade kernel ,這種情況難道不麻 04/21 23:28
58F:→ HamalAri: 煩? 改 bootloader 是幾秒鐘就修好啟動問題,但你的 VM 04/21 23:29
59F:→ HamalAri: 也就掰了。 根本不是什麼修不修的好的問題 04/21 23:29
60F:→ HamalAri: 跳針到要用 live-cd 再 chroot 根本多此一舉 04/21 23:31
61F:→ HamalAri: 改個 grub/syslinux 參數哪需要 live cd 04/21 23:31
這位大大 面對linux問題也有很多不同的解法,面對linux日新月異的更新,誰都沒辦法清楚明瞭現在linux強大到哪種地步。 小弟僅是標記一下livecd->arch-chroot這種方法可以解、改bootloader參數也是一種可以參考的路線,如果kernel本身出問題可能不是改參數可以解決,或許會有某論壇的大大表示禁掉某些參數可以暫時過度解決。 畢竟livecd有個好處可以邊google邊修理並不是所有大大都精通grub/syslinux/linux等等。 有時候狀況都是剛開始沒講好導致一堆問題出現,像是我一開始沒講要內顯開機,這是一個重點而我習以為常,讓一堆人卡死在門口即使我以前也死在這裡過。 像用顯卡開機然後把自己的顯卡給bind,結果kernel覺的納悶出現問題,而這參數我也沒放在bootloader裡面。 有些東西是可以放到bootloader以利於測試而我沒有做,只因為不想讓grub_default看起來那麼肥。 還有這篇教學已經少掉很多驗證的步驟,我也測試過好幾次重新安裝系統再來一次,一般概念弄懂的話、這篇像複製貼上一樣簡單,就跟安裝arch一樣(抖)。 還有pci passthrough是從kernel 3.12就開始有的概念?(方法) ※ 編輯: Shelllife (220.133.203.240), 04/22/2016 09:18:47
62F:推 sppmg: 前幾週也想玩VGA passthrough,無奈主板不支援... 04/22 09:15
63F:→ sppmg: 原po要不要跑分看看kvm:host的效率比? 04/22 09:17
換硬體入坑啦!!! 跑分我是沒什麼興趣,CPU-Z淺淺跑一下是85%(4790)vs100%(4790k)。 CPU的部份又牽扯到很多,最主要還是遊戲的體感最為重要。 https://www.redhat.com/archives/vfio-users/2016-January/msg00124.html 像是這篇所講的用到libvirtd(這個技術我還弄不起來...一直失敗的狀態中T_T) emulatorpin & vcpupin & linux之間的核心分配,配置的好遊戲反而不會頓。 像我這樣的配置對於某些優化比較不佳的遊戲可能會有許多的影響,所以最後才說看有沒有大大可以用virt-manager教學一下。 我玩遊戲基本上都是host什麼設定kvm就什麼樣的設定,不太能容忍host能開kvm不行...。 ※ 編輯: Shelllife (220.133.203.240), 04/22/2016 09:38:09
64F:推 sppmg: 我只是很好奇passthrough到底可以多接近實機啦!google到的 04/22 12:59
65F:→ sppmg: 都是說很接近,但沒看到數值描述。 很久已前我用過 04/22 13:03
66F:→ sppmg: CrystalMark 2004 ,可以在一個軟體中測含GPU內的各項數值 04/22 13:03
67F:→ sppmg: cpu-z那個是拿你的去和資料庫比對嗎? 4790k 100% ?? 04/22 13:07
68F:→ sppmg: 完全沒損耗,這麼強喔! 04/22 13:08
我的是4790..不是4790k 效能損耗約10%上下。這邊只使用六核心 http://imgur.com/WIT8qFp ※ 編輯: Shelllife (220.133.203.240), 04/22/2016 19:11:16
69F:推 Bellkna: 結果試了 wine-staging 和 wine 跑ro卡都在更新程式 04/26 14:10
70F:推 jaid: 用virt-manager搞定了 不過直接pass through音效卡 05/01 21:49
71F:→ jaid: 不知道為什麼爆音有點嚴重 05/01 21:50
72F:推 onlyeric23: 太神辣 05/12 19:56
73F:→ wytec9: Wine+Codeja 05/17 01:36
※ 編輯: Shelllife (220.133.203.240), 07/19/2018 06:09:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP