我正在努力找一份工作虚拟机通道致我的 gentoo kvm 客人。
我启用了为 gentoo guest 推荐的内核选项。由于该通道似乎是字符设备,我还在Virtio console
下启用了Character devices
。
尽管如此,客人似乎没有任何类似的设备/dev/vport0p1
。例如,我的 Fedora 来宾设备显示没有问题(并且来宾集成也可以工作)。不幸的是,到目前为止,我还没有发现工作客人与工作客人有dmesg
太大区别。lspci
这是vport
Fedora 上的样子:
# udevadm info /dev/vport2p1
P: /devices/pci0000:00/0000:00:02.1/0000:02:00.0/virtio2/virtio-ports/vport2p1
N: vport2p1
L: 0
S: virtio-ports/com.redhat.spice.0
E: DEVPATH=/devices/pci0000:00/0000:00:02.1/0000:02:00.0/virtio2/virtio-ports/vport2p1
E: DEVNAME=/dev/vport2p1
E: MAJOR=242
E: MINOR=1
E: SUBSYSTEM=virtio-ports
E: USEC_INITIALIZED=4427561
E: SYSTEMD_WANTS=spice-vdagentd.socket
E: DEVLINKS=/dev/virtio-ports/com.redhat.spice.0
E: TAGS=:systemd:
我是否只是缺少内核选项、udev 规则或类似的东西?并且:建立到访客的通道的基本要求(对于访客/内核)是什么?
Kernel version: 5.4.80-gentoo #3
启用的选项:
BLK_MQ_VIRTIO
VIRTIO_BLK
VIRTIO_BLK_SCSI
SCSI_VIRTIO
VIRTIO_NET
VIRTIO_CONSOLE
HW_RANDOM_VIRTIO
DRM_VIRTIO_GPU
VIRTIO
VIRTIO_MENU
VIRTIO_PCI
VIRTIO_BALLOON
VIRTIO_INPUT
VIRTIO_MMIO
VIRTIO_MMIO_CMDLINE_DEVICES
VIRTIO_FS
DRM_QXL (but I'm using virgl/virtio_gpu right now)
禁用选项:
VIRTIO_PCI_LEGACY
我的虚拟机配置中的通道:
<channel type="unix">
<target type="virtio" name="org.qemu.guest_agent.0"/>
<address type="virtio-serial" controller="0" bus="0" port="1"/>
</channel>
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
<address type="virtio-serial" controller="0" bus="0" port="2"/>
</channel>
答案1
我意识到已经过去两个多月了;但试试这个:
如果从 Gentoo 安装 CD 启动 VM,则应该请参阅vport*
中列出的字符设备/dev
以及virtio-ports
目录。尝试一下并确认它们。
从光盘和从我昨天完成的安装启动,我看到了这个:
# ls -l /dev/vport*
crw------- 1 root root 250, 1 Feb 11 04:53 /dev/vport1p1
crw------- 1 root root 250, 2 Feb 11 04:53 /dev/vport1p2
# ls -l /dev/virtio-ports
total 0
lrwxrwxrwx 1 root root 11 Feb 11 04:53 com.redhat.spice.0 -> ../vport1p2
lrwxrwxrwx 1 root root 11 Feb 11 04:53 org.qemu.guest_agent.0 -> ../vport1p1
如果一切正常,请继续,就像执行全新安装一样。
备份当前/usr/src/linux
目录和当前/boot
文件。
然后chroot
就像安装说明中一样。使用 GENKERNEL 进行编译,如下所示:
(chroot) livecd / # cd /usr/src/linux
(chroot) livecd / # make mrproper
(chroot) livecd / # make defconfig
# ~~~
### 5.4 kernel version, prior to kernel v.5.10 -- the kvmconfig target is available:
(chroot) livecd / # make kvmconfig
# ~~~
###
(chroot) livecd / # genkernel --virtio --menuconfig all
然后,按照提示进行操作Gentoo 维基页面就像你之前做的那样,另请参阅这一页,并设置那些推荐的内核选项。使用新内核启动,看看 /dev 中有什么。