Re: [分享] GPU Passthrough設定及一些眉角分享

作者: AKSN74 (AKS-74n)   2021-06-30 20:14:00
這邊再分享幾個後續的部分,包括原本提到的會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的額外功能參考
作者: Kitten1156 (Frank_kitten)   2021-07-02 19:22:00
推 我都還用實體鍵切螢幕滑鼠鍵盤

Links booklink

Contact Us: admin [ a t ] ucptt.com