Linux

Xen:輔助 GPU 直通後 domU 上的圖形輸出

  • January 26, 2019

我已經完成了到 Linux domU 的輔助 GPU 直通,但我不知道如何從輔助 GPU 輸出 Xorg。

dom0 使用的是 Intel 集成顯卡。我正在通過 AMD 6450 到 domU,因為這裡有兩次提到它:

https ://wiki.xenproject.org/wiki/Xen_VGA_Passthrough_Tested_Adapters

我所做的簡短列表:

  1. 在主機板 BIOS 中啟用 VT-d
  2. 添加intel_iommu=on到 dom0 GRUB
  3. GPU的黑名單模組及其音頻子系統
  4. modprobe xen-pciback
  5. xl pci-assignable-add _______適用於 GPU 及其音頻子系統
  6. 在 Xen 配置文件中添加了兩個 PCI ID:pci = [ '_____', '_____' ]
  7. 在 domU 中引導並安裝 Linux

當我啟動時,經過上述步驟,我收到一條錯誤消息:

libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0

儘管出現上述錯誤,但當我lspci -nnk在 domU 上執行時,它顯示了 GPU 和音頻子設備,包括以下幾行:

Kernel driver in use: radeon

Kernel driver in use: snd_hda_intel

當然,還有一行主 domU 虛擬 GPU:

Kernel driver in use: cirrus

然後,如果我將 VGA 或 DVI 電纜從通過的 GPU 連接到顯示器,顯示器將保持開啟狀態(綠色電源按鈕)並顯示深灰色螢幕。而通常,當顯示器沒有檢測到輸入時,它會直接進入待機狀態(橙色電源按鈕)。所以有某種GPU輸出。

如果我通過VNCstartx執行xrandr,似乎沒有任何物理監視器的跡象,似乎只有虛擬化的VNC / cirrus監視器。

如果我添加gfx_passthru=1到配置文件,它總是在啟動時失敗。添加時出現的第一條錯誤消息gfx_passthru=1是:

libxl: error: libxl_dm.c:1302:libxl__build_device_model_args_new: unable to detect required gfx_passthru_kind

在我使用虛擬化之前,將輸出從主/次顯卡切換到另一個,我通常只需更改 BIOS 中的設置,Linux 就會隨之而來。所以 Xorg + domU 對我來說是非常不同的領域。

在此之後,有誰知道我如何通過 domU 中的輔助 GPU 輸出 Xorg?各種線上 GPU 直通指南僅涵蓋 Windows。

更新

在 StrongBad 的回應之後,我已經從 Debian wiki domU 從 Arch domU 遷移到 Debian 8.8,因為fglrx官方的 Arch 儲存庫中不再存在。

然而,與 Arch domU 不同的是,當通過 GPU 連接到顯示器時,Debian domU 沒有神秘的深灰色顯示器輸出和常亮的綠色電源按鈕。

儘管如此,我還是做了以下事情:

  1. 已安裝fglrx
  2. sudo aticonfig --initial
  3. 從 Debian wiki添加了四行/etc/xorg.conf

但是,當我startx從 VNC TTY 執行時,它會崩潰。狀態中的第一條錯誤消息Xorg.0.log

(EE) fglrx(0): Failed to open CMMQS connection

看起來你已經很遠了。我或多或少地成功獲得了與 Xen 4.4.0(和一些更高版本)一起使用的輔助 VGA 直通。我在使用 4.7 版時遇到了問題,但從未真正嘗試過調試它。如果我沒記錯的話,在我的工作系統中,我還會收到如下錯誤:

libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0

在嘗試使二級直通工作時,我在 Xen 列表上提出了一個問題。我有兩個問題我永遠無法解決。首先是TTY 在主設備上,所以我看不到任何引導消息,只能使用 X 會話。第二個問題是我只能使用專有的催化劑驅動程序。看起來您正在嘗試使用 Radeon 驅動程序,所以這可能是您的問題。

我很確定gfx_passthru=1僅用於主要直通,因此您可能不想要它。我在 Xen 郵件列表上詢問了主要和次要傳遞之間的區別,除了很多痛苦之外,是什麼。回應是:

將介面作為主要介面傳遞的唯一優點(我從未真正見過這項工作的 FWIW)是在這種情況下,您可以在載入 GPU 之前看到 SeaBIOS POST 螢幕和 domU OS 啟動進度

引用自:https://unix.stackexchange.com/questions/369737