GPU Passthrough設定及一些眉角分享 - Linux

Olga avatar
By Olga
at 2021-06-30T20:14

Table of Contents

這邊再分享幾個後續的部分,包括原本提到的會BSOD的問題




BSOD問題的解決

這個後來有找到問題的癥結點,不過也是我在reddit發文求救後10幾天的回應上試出來的

主要是因為有在guest OS上裝MSI Afterburner的關係

必須要把選項中的"Enable low-level IO driver"這個選項給停用

停用後把硬碟bus都換成virtio-scsi並測試,就沒再遇到BSOD的狀況

算是終於解決了BSOD的問題

至於GPU-Z顯示PCI-E通道異常的問題,後來也有問到那是會有的狀況,無解

也跟我遇到的BSOD狀況無關







USB控制器Passthrough

通常鍵盤、滑鼠、USB DAC等這些沒這麼複雜的USB裝置用libusb連通到VM內就正常

但一些多功能且複雜的比如接手機,libusb的連通功能就會有問題

比如接iPhone時,若啟用相片檔案連接模式時,會先中斷並以該模式重新連接

但libusb會以為該裝置已離線,導致變換模式後VM反而無法再聯繫到手機

因此若要完整地在KVM上發揮USB功能,最好方法是把主機板上的USB控制器連通進VM內

而AMD的B550與X570上的USB 3.1控制器剛好又是獨立的IOMMU群組

能夠直接透過VFIO連通進VM內使用







音效連通

這部分後來我也有找到方法了,基本上就是Pulseaudio的連通方式

做法上與以前相比差異也不大,並且就算是已經改使用Pipewire-Pulseaudio模式也可用

可以去找看看Archwiki關於VFIO的部分,裡面有一章就是講這個

唯一要注意的是QEMU在存取pulseaudio的時候可能會被Apparmor或SELinux阻擋

可以透過dmesg或是audit.log查看,有發現就把相關檔案列為白名單即可


另外Pulseaudio有分ICH9以及usb-audio兩種模式

後者的音質比較好,但使用後者的情況下會無法使用host端的麥克風,需要留意








單螢幕多輸入+單組鍵鼠的額外方案

前面有提到looking-glass,可以直接在Host端直接連上windows guest

可以操作且遊戲遊玩也很流暢的專案

缺點則是會吃重Guest端的CPU以及GPU效能


如果螢幕本身有多個輸入來源可以接,但又不想要額外買一組鍵鼠分別給兩端用

且擔心looking-glass會影響到VM的遊戲效能的話,則可以使用evdev的方式

參考教學:https://passthroughpo.st/using-evdev-passthrough-seamless-vm-input/
(長度剛好就不縮了)

若要在兩邊切換輸入,只需要同時按左右Ctrl就可以切換了,很方便


但使用這方式在掛接時需要留意兩點

1. 電競鍵鼠等有額外功能鍵可用的,會需要同時掛載至少兩個input event進來
像我的鍵盤是K70 LUX、滑鼠是G502,都要把兩個event給掛進來,功能才都正常

這兩個在/dev/input中的樣子:
https://i.imgur.com/axCUUgj.png

寫進XML內的樣子
https://i.imgur.com/AikkxQw.png

可以看到兩個我都把event-kbd、event-mouse、還有前面帶有if01字綴的都帶進去了
像G502必須要掛if01-event-kbd,它的側邊按鍵等才能在VM內作用
而K70則相反,必須要兩個都掛,否則VM內打字沒反應


2. 使用這方式還需要注意權限問題,主要要設定/etc/libvirt/qemu.conf
針對cgroup還有user這兩個選項做設定

不過文章內說的需要把user改成root這說法,其實也可以改成當前user
只是該user必須要先加入進input這個group內就是了

另外這個同樣也會遇到被Apparmor/SELinux阻擋的問題,因此也一樣需要設定白名單









關於上Windows 11的部分

這個最近我跟的Discord群組也有些大老在嘗試這部分,而以下是目前共同整理出來的點

1. 多數情況下TPM是必須的,而這個在比較新的QEMU還有libvirt都已經支援
可以新增虛擬的TPM裝置到VM內,經過一些驗證是可以裝Win11的

2. 需要TPM的同時也需要Secure Boot。這個目前OVMF已經有支援
但要注意部分Linux Distro自己所提供的OVMF不見得完整,有可能不會有
或者是有提供但裡面的Secure Boot編譯上不完整







大約是這樣,多一些GPU掛VM的額外功能參考

--
https://i.imgur.com/paUBacY.png
https://i.imgur.com/vsJ0Suy.png

--
Tags: Linux

All Comments

Hedda avatar
By Hedda
at 2021-07-01T14:26
推 我都還用實體鍵切螢幕滑鼠鍵盤

請問 Anbox 安裝 apk 錯誤怎麼解?

Megan avatar
By Megan
at 2021-06-29T11:31
最近因為 Windows 11 打算原生支援 Android Apps, 所以在 Arch Linux 安裝了 linux-zen 來試試 Anbox, 試著下載 EhViewer 來看看,安裝完全正常執行, 但是嘗試安裝 LINE 的時候出現了以下錯誤: ========================= ...

關於特定設備之網路監測

Donna avatar
By Donna
at 2021-06-29T08:55
小弟最近拿到幾台無牌的 android 手機/平板, 雖然開機後運行起來沒有什麼異狀,但是系統內也看不到相關的廠牌跟公司訊息, 有點擔心 OS 內部有被改過,會有一些異常的行為 (例如連上網後會偷連某個 server 之類的) 所以遲遲不敢連上自己的網路, 想問一下各位, 如果想要檢測一下這 ...

infiniband及rdma啟動問題

Dorothy avatar
By Dorothy
at 2021-06-23T17:26
各位版上大大好: 小弟學藝不精 在傻傻升級節點的系統後 (Centos 7.6 -andgt; 8.2) 發現系統內沒有rdma.service來啟用infiniband相關功能 使用ibv_devinfo顯示port_active 表示系統至少是知道插槽的存在(吧?) 那想請問版上大大 要如何開啟 ...

python-crontab無法執行

Lauren avatar
By Lauren
at 2021-06-21T15:57
各位前輩好,想請問各位前輩關於python-crontab無法執行問題,我有一個python檔,當 我直接執行時,都能夠順利執行,如下圖: https://i.imgur.com/NRXbrhM.jpg 然而當我使用用python所寫的crontab時,執行時卻沒有任何反應,如下圖 Python程式碼: ...

請問測硬碟速度軟體跟sshfs問題

Caroline avatar
By Caroline
at 2021-06-21T00:35
因有一個Oracle database 的disk空間不足,被告知說還要再撐半年, OS: Oracle Linux 5.x 現有接一usb disk (USB 2.0), 用dd測寫到usb速度 56.8MB/s https://imgur.com/Hd509a7 用dd測寫到linux local d ...