package: add kernel packages for kvm virtualization

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
Yousong Zhou 2016-11-24 00:03:40 +08:00 committed by Felix Fietkau
parent 49703b589b
commit d206dfdf35

View File

@ -0,0 +1,105 @@
#
# Copyright (C) 2016 Yousong Zhou <yszhou4tech@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define KernelPackage/vhost_net
SUBMENU:=Virtualization
TITLE:=Host kernel accelerator for virtio net
DEPENDS:=
KCONFIG:=CONFIG_VHOST_NET
FILES:= $(LINUX_DIR)/drivers/vhost/vhost_net.ko
AUTOLOAD:=$(call AutoProbe,vhost_net.ko)
endef
define KernelPackage/vhost_net/description
This kernel module can be loaded in host kernel to accelerate
guest networking with virtio_net. Not to be confused with virtio_net
module itself which needs to be loaded in guest kernel.
endef
$(eval $(call KernelPackage,vhost_net))
define KernelPackage/irqbypass
SUBMENU:=Virtualization
TITLE:=IRQ offload/bypass manager
KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
endef
define KernelPackage/irqbypass/description
Various virtualization hardware acceleration techniques allow bypassing or
offloading interrupts received from devices around the host kernel. Posted
Interrupts on Intel VT-d systems can allow interrupts to be received
directly by a virtual machine. ARM IRQ Forwarding allows forwarded physical
interrupts to be directly deactivated by the guest. This manager allows
interrupt producers and consumers to find each other to enable this sort of
bypass.
endef
$(eval $(call KernelPackage,irqbypass))
define KernelPackage/kvm-x86
SUBMENU:=Virtualization
TITLE:=Kernel-based Virtual Machine (KVM) support
DEPENDS:=@TARGET_x86 +kmod-irqbypass
KCONFIG:=\
CONFIG_VIRTUALIZATION=y \
CONFIG_KVM \
CONFIG_VHOST_NET=n \
CONFIG_VHOST_CROSS_ENDIAN_LEGACY=n \
CONFIG_TASK_XACCT=n \
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
AUTOLOAD:=$(call AutoProbe,kvm.ko)
endef
define KernelPackage/kvm-x86/description
Support hosting fully virtualized guest machines using hardware
virtualization extensions. You will need a fairly recent
processor equipped with virtualization extensions. You will also
need to select one or more of the processor modules.
This module provides access to the hardware capabilities through
a character device node named /dev/kvm.
endef
$(eval $(call KernelPackage,kvm-x86))
define KernelPackage/kvm-intel
SUBMENU:=Virtualization
TITLE:=KVM for Intel processors support
DEPENDS:=@TARGET_x86 +kmod-kvm-x86
KCONFIG:=CONFIG_KVM_INTEL CONFIG_KVM_AMD=n
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
endef
define KernelPackage/kvm-intel/description
Provides support for KVM on Intel processors equipped with the VT
extensions.
endef
$(eval $(call KernelPackage,kvm-intel))
define KernelPackage/kvm-amd
SUBMENU:=Virtualization
TITLE:=KVM for AMD processors support
DEPENDS:=@TARGET_x86 +kmod-kvm-x86
KCONFIG:=CONFIG_KVM_INTEL=n CONFIG_KVM_AMD
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
endef
define KernelPackage/kvm-amd/description
Provides support for KVM on AMD processors equipped with the AMD-V
(SVM) extensions.
endef
$(eval $(call KernelPackage,kvm-amd))