Linux kvm中已编译内核中缺少通道

Linux kvm中已编译内核中缺少通道,linux,linux-kernel,kvm,Linux,Linux Kernel,Kvm,我在虚拟机中使用libvirt安装了一个ubuntu。我已将我的来宾配置为创建管道和unix通道以用于跟踪病毒: <channel type='unix'> <source mode='connect' path='path/to/socket'/> <target type='virtio' name='unix-name'/> <address type='virtio-serial' controller='0' bus='0' por

我在虚拟机中使用libvirt安装了一个ubuntu。我已将我的来宾配置为创建管道和unix通道以用于跟踪病毒:

<channel type='unix'>
  <source mode='connect' path='path/to/socket'/>
  <target type='virtio' name='unix-name'/>
  <address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='pipe'>
  <source path='path/to/pipe'/>
  <target type='virtio' name='pipe-name'/>
  <address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>


在我的客户机中一切正常,我的虚拟机中有/dev中的通道,我可以使用这些通道向主机发送数据。但当我编译内核并将其安装在vm中并从grub中选择它时,这些通道就会消失。当我重新启动并选择原始内核时,它有通道并且工作正常。如何让kvm在我的虚拟机内的编译内核中创建通道?

确保为来宾构建的内核具有与工作内核相同的配置选项

您可以从
/proc/kconfig
(如果幸运的话,内核已经编译好了)或者从与内核一起分发的
config
目录(通常在
/boot
目录中)获取这些


相关的可能是所描述的来宾kvm选项。特别是,请确保启用了
VIRTIO
选项。我猜您缺少
VIRTIO\u控制台(实际上是字符设备)。

确保为来宾构建的内核与工作的内核具有相同的配置选项

您可以从
/proc/kconfig
(如果幸运的话,内核已经编译好了)或者从与内核一起分发的
config
目录(通常在
/boot
目录中)获取这些


相关选项可能是所述的来宾kvm选项。特别是,请确保启用了
VIRTIO
选项。我猜您缺少
VIRTIO\u控制台(实际上是字符设备).

谢谢你的回答!我复制了原始内核配置,新编译内核有通道!我不确定是哪个配置启用了通道,但现在我知道问题出在哪里,可以找到正确的通道了!谢谢你的回答!我复制了原始内核配置,新编译内核有通道!我不确定是哪个配置启用了通道,但现在我知道问题出在哪里了,我可以找到正确的答案了!