在 QEMU 中创建新的 VirtIO 设备类型

 2022-01-08 

Creating a new VirtIO device type in QEMU

我看过这里,没有用。由于答案不令人满意,我决定问一个新的。我通过查看其他 virtio 设备的代码创建了一个新的设备类型,主要是气球、rng 和加密。
但我面临一个我不知道如何解决的问题。我收到一条错误消息,提示找不到设备"my-virtio-device"的"virtio-bus"总线。而且我不知道该怎么做,因为我没有为我的设备明确定义总线。 Virtio 为我做这件事。

一旦我完成了这个,我打算在 stackoverflow 文档中写下它。我似乎在任何地方的 qemu 中创建新的 virtio 设备一无所获!


问题似乎在于 virtio-bus 是一种抽象总线。所以我们不能直接使用该设备。我不得不扩展 VirtIOPCIDevice 并定义我的设备。 VirtIOPCIDevice 连接到 virtio-pci-bus。这有效,我的设备现在使用 lspci 命令显示在来宾中。

我希望简短的版本有所帮助。当然,正如问题中所Promise的,我打算在完成项目后写下我如何在 QEMU 中创建新的 virtio 设备。