kernel: add kmods for vsockets over virtio
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run

Add menuconfig options to include modules for (virtio) vsockets. These are
used when running as Guest OS in a VM.

OpenWRT can be run in a vm (mostly commonly on the x86/64 and armsr
targets). Often it is convenient to have some sort of guest agent running,
to ease communication from host to guest.
Virtual Sockets provide this communication channel.
Virtio is a transport for this communication channel.

Virtual Sockets over virtio are for example used by Incus.
Virtual Sockets in general are used by most hypervisors, including VMware,
Hyper-V, and libvirt (qemu). These may need other transport-specific
modules not included in this commit.

Signed-off-by: Mathijs Rietbergen <mathijs.rietbergen@proton.me>
This commit is contained in:
Mathijs Rietbergen 2025-12-27 11:04:52 +01:00 committed by Paul Spooren
parent ed66c2dfa3
commit c88e8a9816

View file

@ -139,3 +139,59 @@ define KernelPackage/vhost-net
endef
$(eval $(call KernelPackage,vhost-net))
define KernelPackage/vsock
SUBMENU:=Virtualization
TITLE:=Virtual Socket Protocol
KCONFIG:= \
CONFIG_VSOCKETS \
CONFIG_VSOCKETS_LOOPBACK=n \
CONFIG_HYPERV_VSOCKETS=n
FILES:=$(LINUX_DIR)/net/vmw_vsock/vsock.ko
AUTOLOAD:=$(call AutoProbe,vsock)
endef
define KernelPackage/vsock/description
Kernel support support for the Virtual Socket Protocol.
Often used when running in a VM to communicate with the hypervisor.
Additionally needs a hypervisor-specific transport driver.
endef
$(eval $(call KernelPackage,vsock))
define KernelPackage/vsock-virtio-common
SUBMENU:=Virtualization
TITLE:=Module used by other drivers to access Virtio Virtual Sockets
DEPENDS:=+kmod-vsock
KCONFIG:=CONFIG_VIRTIO_VSOCKETS_COMMON
FILES:=$(LINUX_DIR)/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko
AUTOLOAD:=$(call AutoProbe,vmw_vsock_virtio_transport_common)
HIDDEN:=1
endef
$(eval $(call KernelPackage,vsock-virtio-common))
define KernelPackage/vsock-virtio
SUBMENU:=Virtualization
TITLE:=Virtio transport driver for Virtual Sockets
DEPENDS:= @VIRTIO_SUPPORT +kmod-vsock +kmod-vsock-virtio-common
KCONFIG:=CONFIG_VIRTIO_VSOCKETS
FILES:=$(LINUX_DIR)/net/vmw_vsock/vmw_vsock_virtio_transport.ko
AUTOLOAD:=$(call AutoProbe,vmw_vsock_virtio_transport)
endef
define KernelPackage/vsock-virtio/description
Kernel support for Virtual Sockets over virtio.
Enable this transport if you plan to run OpenWRT in a virtual machine and the
hypervisor supports Virtual Sockets over virtio (Incus for example).
Usually needed by "guest agents" to function, as it provides a communication
channel between the guest os and the hypervisor.
The module will be called vmw_vsock_virtio_transport.
endef
$(eval $(call KernelPackage,vsock-virtio))