KVMゲストには次のグラフィック設定を使用しています。
...
<graphics type="spice">
<listen type="none"/>
<image compression="off"/>
<gl enable="yes" rendernode="/dev/dri/by-path/pci-0000:69:00.0-render"/>
</graphics>
...
<video>
<model type="virtio" heads="1" primary="yes">
<acceleration accel3d="yes"/>
</model>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
...
Fedora(32/33)とUbuntu(20.04)では非常にうまく動作しますが、これまでは他のディストリビューションでは機能しません。 Fedoraでもenable="yes"
インストール後に開いて()動作します(ライブCDでは機能しません)。しかし、その後はすぐに動作します。
マンジャロで同じ操作をしようとすると、メニューすら停止してgrub
使用できなくなります。私もsystemd-boot
それを試しました。ただし、実行すると画面が黒くなります(黒い画面にもかかわらず、マウスの統合は引き続き機能するため、正しく機能しているようです)。
修正する: これは最終的にカーネルの問題ではないようです。自動ログインが有効になっていてこれを見逃しましたが、lightdmでは正常に表示しました。実際に私に黒い画面を与えたのはDE(XFCE)でした。 WaylandとXorgのGnomeはうまくいきます。ただし、GRUBメニューはまだ機能しません。これはvirglとGRUB間の互換性の問題のようです。そしてXFCE。おそらくEFIなしで再試行しますが、元の問題はほとんど解決されました。
今、私はFedora / Ubuntuに何があるのか知りたいです。たとえば、manjaroが抜けていますか?これが欠けているカーネルオプションですか、それともいくつかのドライバパッケージですか?
Manjaroゲストにインストールしようとしましたが、virglrenderer
役に立ちませんでした(ゲストに適しているかどうかはわかりません)。
修正する:
黒い画面を持つManjaroゲストでSSHを使用すると、次の結果が表示されます。
dmesg | grep drm
[ 0.836414] [drm] pci: virtio-vga detected at 0000:00:01.0
[ 0.836420] fb0: switching to virtiodrmfb from EFI VGA
[ 0.836526] [drm] virgl 3d acceleration enabled
[ 0.836527] [drm] EDID support available.
[ 0.837182] [drm] number of scanouts: 1
[ 0.837186] [drm] number of cap sets: 2
[ 0.845823] [drm] cap set 0: id 1, max-version 1, max-size 308
[ 0.845964] [drm] cap set 1: id 2, max-version 2, max-size 688
[ 0.846341] [drm] Initialized virtio_gpu 0.1.0 0 for virtio0 on minor 0
[ 0.848777] virtio_gpu virtio0: fb0: virtio_gpudrmfb frame buffer device
[ 2.095162] systemd[1]: Condition check resulted in Load Kernel Module drm being skipped.
Fedoraのゲストもいます:
dmesg | grep drm
[ 2.164964] [drm] pci: virtio-vga detected at 0000:00:01.0
[ 2.177043] [drm] features: +virgl +edid
[ 2.177652] [drm] number of scanouts: 1
[ 2.177658] [drm] number of cap sets: 2
[ 2.193509] [drm] cap set 0: id 1, max-version 1, max-size 308
[ 2.193596] [drm] cap set 1: id 2, max-version 2, max-size 688
[ 2.193840] [drm] Initialized virtio_gpu 0.1.0 0 for virtio0 on minor 0
[ 2.217427] virtio_gpu virtio0: [drm] fb0: virtio_gpudrmfb frame buffer device
[ 3.552834] systemd[1]: Condition check resulted in Load Kernel Module drm being skipped.
ホストマシン(作業中のVMの出力は同じですが動作します):
qemu-system-x86_64 \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/ovmf/OVMF_CODE.fd \
-drive if=pflash,format=raw,readonly,file=/path/to/qemu/nvram/manjaro_VARS.fd \
-drive file=/path/to/manjaro.qcow2 \
-m 8192 -enable-kvm -M q35 -cpu host -smp 16,sockets=1,cores=16,threads=1 \
-vga virtio -display gtk,gl=on \
-usb -device usb-tablet \
-net user,hostfwd=tcp::10022-:22 -net nic
gl_version 46 - core profile enabled
vrend_renderer_fill_caps: Entering with stale GL error: 1280
GLSL feature level 430
ベストアンサー1
問題は、Xfwmの組み込みシンセサイザとvirglが一緒にうまく機能しないことです。
回避策:virgl = off(ビデオデバイス上)またはgl = off(モニター上)でVMを起動し、VMでxfwm4-tweaks-settingsを実行し、Compositorタブを選択して、Enable display compositing ""の選択を解除します。します。仮想マシンを終了し、virglを再度有効にします。
PicomはXfwmで動作し、同じ問題がないようです。したがって、シンセサイザが必要な場合は、Xfwmの内蔵シンセサイザを使用する代わりに、VMにpicomをインストール/使用してください。https://wiki.archlinux.org/index.php/Picom