virt.mk 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. #
  2. # Copyright (C) 2016 Yousong Zhou <[email protected]>
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. define KernelPackage/irqbypass
  8. SUBMENU:=Virtualization
  9. TITLE:=IRQ offload/bypass manager
  10. KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
  11. HIDDEN:=1
  12. FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
  13. AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
  14. endef
  15. $(eval $(call KernelPackage,irqbypass))
  16. define KernelPackage/kvm-x86
  17. SUBMENU:=Virtualization
  18. TITLE:=Kernel-based Virtual Machine (KVM) support
  19. DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
  20. KCONFIG:=\
  21. CONFIG_KVM \
  22. CONFIG_KVM_MMU_AUDIT=n \
  23. CONFIG_KVM_SMM=y \
  24. CONFIG_VIRTUALIZATION=y
  25. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
  26. AUTOLOAD:=$(call AutoProbe,kvm.ko)
  27. endef
  28. define KernelPackage/kvm-x86/description
  29. Support hosting fully virtualized guest machines using hardware
  30. virtualization extensions. You will need a fairly recent
  31. processor equipped with virtualization extensions. You will also
  32. need to select one or more of the processor modules.
  33. This module provides access to the hardware capabilities through
  34. a character device node named /dev/kvm.
  35. endef
  36. $(eval $(call KernelPackage,kvm-x86))
  37. define KernelPackage/kvm-intel
  38. SUBMENU:=Virtualization
  39. TITLE:=KVM for Intel processors support
  40. DEPENDS:=+kmod-kvm-x86
  41. KCONFIG:=CONFIG_KVM_INTEL
  42. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
  43. AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
  44. endef
  45. define KernelPackage/kvm-intel/description
  46. Provides support for KVM on Intel processors equipped with the VT
  47. extensions.
  48. endef
  49. $(eval $(call KernelPackage,kvm-intel))
  50. define KernelPackage/kvm-amd
  51. SUBMENU:=Virtualization
  52. TITLE:=KVM for AMD processors support
  53. DEPENDS:=+kmod-kvm-x86
  54. KCONFIG:=CONFIG_KVM_AMD
  55. FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
  56. AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
  57. endef
  58. define KernelPackage/kvm-amd/description
  59. Provides support for KVM on AMD processors equipped with the AMD-V
  60. (SVM) extensions.
  61. endef
  62. $(eval $(call KernelPackage,kvm-amd))
  63. define KernelPackage/vfio
  64. SUBMENU:=Virtualization
  65. TITLE:=VFIO Non-Privileged userspace driver framework
  66. DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
  67. KCONFIG:= \
  68. CONFIG_VFIO \
  69. CONFIG_VFIO_NOIOMMU=n \
  70. CONFIG_VFIO_MDEV=n
  71. FILES:= \
  72. $(LINUX_DIR)/drivers/vfio/vfio.ko \
  73. $(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
  74. AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1)
  75. endef
  76. define KernelPackage/vfio/description
  77. VFIO provides a framework for secure userspace device drivers.
  78. endef
  79. $(eval $(call KernelPackage,vfio))
  80. define KernelPackage/vfio-pci
  81. SUBMENU:=Virtualization
  82. TITLE:=Generic VFIO support for any PCI device
  83. DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
  84. KCONFIG:= \
  85. CONFIG_VFIO_PCI \
  86. CONFIG_VFIO_PCI_IGD=n
  87. FILES:= \
  88. $(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
  89. $(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
  90. AUTOLOAD:=$(call AutoProbe,vfio-pci)
  91. endef
  92. define KernelPackage/vfio-pci/description
  93. Support for the generic PCI VFIO bus driver which can connect any PCI
  94. device to the VFIO framework.
  95. endef
  96. $(eval $(call KernelPackage,vfio-pci))
  97. define KernelPackage/vhost
  98. SUBMENU:=Virtualization
  99. TITLE:=Host kernel accelerator for virtio (base)
  100. KCONFIG:=CONFIG_VHOST
  101. FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
  102. $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
  103. AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
  104. endef
  105. $(eval $(call KernelPackage,vhost))
  106. define KernelPackage/vhost-net
  107. SUBMENU:=Virtualization
  108. TITLE:=Host kernel accelerator for virtio-net
  109. DEPENDS:=+kmod-tun +kmod-vhost
  110. KCONFIG:=CONFIG_VHOST_NET
  111. FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
  112. AUTOLOAD:=$(call AutoProbe,vhost_net)
  113. endef
  114. $(eval $(call KernelPackage,vhost-net))
  115. define KernelPackage/vsock
  116. SUBMENU:=Virtualization
  117. TITLE:=Virtual Socket Protocol
  118. KCONFIG:= \
  119. CONFIG_VSOCKETS \
  120. CONFIG_VSOCKETS_LOOPBACK=n \
  121. CONFIG_HYPERV_VSOCKETS=n
  122. FILES:=$(LINUX_DIR)/net/vmw_vsock/vsock.ko
  123. AUTOLOAD:=$(call AutoProbe,vsock)
  124. endef
  125. define KernelPackage/vsock/description
  126. Kernel support support for the Virtual Socket Protocol.
  127. Often used when running in a VM to communicate with the hypervisor.
  128. Additionally needs a hypervisor-specific transport driver.
  129. endef
  130. $(eval $(call KernelPackage,vsock))
  131. define KernelPackage/vsock-virtio-common
  132. SUBMENU:=Virtualization
  133. TITLE:=Module used by other drivers to access Virtio Virtual Sockets
  134. DEPENDS:=+kmod-vsock
  135. KCONFIG:=CONFIG_VIRTIO_VSOCKETS_COMMON
  136. FILES:=$(LINUX_DIR)/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko
  137. AUTOLOAD:=$(call AutoProbe,vmw_vsock_virtio_transport_common)
  138. HIDDEN:=1
  139. endef
  140. $(eval $(call KernelPackage,vsock-virtio-common))
  141. define KernelPackage/vsock-virtio
  142. SUBMENU:=Virtualization
  143. TITLE:=Virtio transport driver for Virtual Sockets
  144. DEPENDS:= @VIRTIO_SUPPORT +kmod-vsock +kmod-vsock-virtio-common
  145. KCONFIG:=CONFIG_VIRTIO_VSOCKETS
  146. FILES:=$(LINUX_DIR)/net/vmw_vsock/vmw_vsock_virtio_transport.ko
  147. AUTOLOAD:=$(call AutoProbe,vmw_vsock_virtio_transport)
  148. endef
  149. define KernelPackage/vsock-virtio/description
  150. Kernel support for Virtual Sockets over virtio.
  151. Enable this transport if you plan to run OpenWRT in a virtual machine and the
  152. hypervisor supports Virtual Sockets over virtio (Incus for example).
  153. Usually needed by "guest agents" to function, as it provides a communication
  154. channel between the guest os and the hypervisor.
  155. The module will be called vmw_vsock_virtio_transport.
  156. endef
  157. $(eval $(call KernelPackage,vsock-virtio))