2020-01-20 21:15:41 +01:00
|
|
|
Index: VirtualBox-6.1.2/src/VBox/HostDrivers/linux/Makefile
|
2019-12-19 06:12:48 +01:00
|
|
|
===================================================================
|
2020-01-20 21:15:41 +01:00
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/HostDrivers/linux/Makefile
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/HostDrivers/linux/Makefile
|
|
|
|
@@ -35,9 +35,6 @@ endif
|
|
|
|
ifneq ($(wildcard $(CURDIR)/vboxnetadp/Makefile),)
|
|
|
|
obj-m += vboxnetadp/
|
|
|
|
endif
|
|
|
|
-ifneq ($(wildcard $(CURDIR)/vboxpci/Makefile),)
|
|
|
|
- obj-m += vboxpci/
|
|
|
|
-endif
|
|
|
|
|
|
|
|
else # ! KERNELRELEASE
|
|
|
|
|
|
|
|
@@ -45,10 +42,11 @@ else # ! KERNELRELEASE
|
2019-12-19 06:12:48 +01:00
|
|
|
|
|
|
|
KBUILD_VERBOSE ?=
|
|
|
|
KERN_VER ?= $(shell uname -r)
|
2020-01-20 21:15:41 +01:00
|
|
|
-.PHONY: all install clean check unload load vboxdrv vboxnetflt vboxnetadp \
|
|
|
|
- vboxpci
|
2019-12-19 06:12:48 +01:00
|
|
|
+PWD ?= $(shell pwd)
|
|
|
|
+
|
2020-01-20 21:15:41 +01:00
|
|
|
+.PHONY: all install clean check unload load vboxdrv vboxnetflt vboxnetadp
|
|
|
|
|
|
|
|
-all: vboxdrv vboxnetflt vboxnetadp vboxpci
|
|
|
|
+all: vboxdrv vboxnetflt vboxnetadp
|
2019-12-19 06:12:48 +01:00
|
|
|
|
2020-01-20 21:15:41 +01:00
|
|
|
# We want to build on Linux 2.6.18 and later kernels.
|
|
|
|
ifneq ($(filter-out 1.% 2.0.% 2.1.% 2.2.% 2.3.% 2.4.% 2.5.%,$(KERN_VER)),)
|
|
|
|
@@ -64,6 +62,7 @@ vboxnetflt: vboxdrv
|
2019-12-19 06:12:48 +01:00
|
|
|
if [ -f vboxdrv/Module.symvers ]; then \
|
|
|
|
cp vboxdrv/Module.symvers vboxnetflt; \
|
|
|
|
fi; \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxnetflt/Module.symvers; \
|
|
|
|
echo "=== Building 'vboxnetflt' module ==="; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt || exit 1; \
|
|
|
|
cp vboxnetflt/vboxnetflt.ko .; \
|
2020-01-20 21:15:41 +01:00
|
|
|
@@ -75,41 +74,29 @@ vboxnetadp: vboxdrv
|
2019-12-19 06:12:48 +01:00
|
|
|
if [ -f vboxdrv/Module.symvers ]; then \
|
|
|
|
cp vboxdrv/Module.symvers vboxnetadp; \
|
|
|
|
fi; \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxnetadp/Module.symvers; \
|
|
|
|
echo "=== Building 'vboxnetadp' module ==="; \
|
|
|
|
- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp || exit 1; \
|
|
|
|
+ $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp || exit 1; \
|
|
|
|
cp vboxnetadp/vboxnetadp.ko .; \
|
|
|
|
echo; \
|
|
|
|
fi
|
2020-01-20 21:15:41 +01:00
|
|
|
|
|
|
|
-vboxpci: vboxdrv
|
|
|
|
- @if [ -d vboxpci ]; then \
|
|
|
|
- if [ -f vboxdrv/Module.symvers ]; then \
|
|
|
|
- cp vboxdrv/Module.symvers vboxpci; \
|
|
|
|
- fi; \
|
|
|
|
- echo "=== Building 'vboxpci' module ==="; \
|
|
|
|
- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci || exit 1; \
|
|
|
|
- cp vboxpci/vboxpci.ko .; \
|
|
|
|
- echo; \
|
|
|
|
- fi
|
|
|
|
-
|
2019-12-19 06:12:48 +01:00
|
|
|
install:
|
|
|
|
@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install
|
|
|
|
@if [ -d vboxnetflt ]; then \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxnetflt/Module.symvers; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \
|
|
|
|
fi
|
|
|
|
@if [ -d vboxnetadp ]; then \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxnetadp/Module.symvers; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \
|
|
|
|
fi
|
2020-01-20 21:15:41 +01:00
|
|
|
- @if [ -d vboxpci ]; then \
|
|
|
|
- $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \
|
|
|
|
- fi
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
vboxdrv:
|
|
|
|
vboxnetflt:
|
|
|
|
vboxnetadp:
|
|
|
|
-vboxpci:
|
|
|
|
install:
|
|
|
|
|
|
|
|
endif
|
|
|
|
@@ -122,16 +109,13 @@ clean:
|
|
|
|
@if [ -d vboxnetadp ]; then \
|
|
|
|
$(MAKE) -C vboxnetadp clean; \
|
2019-12-19 06:12:48 +01:00
|
|
|
fi
|
2020-01-20 21:15:41 +01:00
|
|
|
- @if [ -d vboxpci ]; then \
|
|
|
|
- $(MAKE) -C vboxpci clean; \
|
|
|
|
- fi
|
|
|
|
- rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko vboxpci.ko
|
|
|
|
+ rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko
|
|
|
|
|
|
|
|
check:
|
|
|
|
@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv check
|
|
|
|
|
|
|
|
unload:
|
|
|
|
- @for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do \
|
|
|
|
+ @for module in vboxnetadp vboxnetflt vboxdrv; do \
|
|
|
|
if grep "^$$module " /proc/modules >/dev/null; then \
|
|
|
|
echo "Removing previously installed $$module module"; \
|
|
|
|
/sbin/rmmod $$module; \
|
|
|
|
@@ -139,7 +123,7 @@ unload:
|
|
|
|
done
|
|
|
|
|
|
|
|
load: unload
|
|
|
|
- @for module in vboxdrv vboxnetflt vboxnetadp vboxpci; do \
|
|
|
|
+ @for module in vboxdrv vboxnetflt vboxnetadp; do \
|
|
|
|
if test -f $$module.ko; then \
|
|
|
|
echo "Installing $$module module"; \
|
|
|
|
/sbin/insmod $$module.ko; \
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/Makefile
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/Makefile
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/Makefile
|
|
|
|
@@ -24,6 +24,7 @@ obj-m = vboxguest/ vboxsf/ vboxvideo/
|
|
|
|
else # ! KERNELRELEASE
|
|
|
|
|
|
|
|
KBUILD_VERBOSE =
|
|
|
|
+PWD ?= $(shell pwd)
|
|
|
|
ifeq ($(KBUILD_VERBOSE),)
|
|
|
|
VBOX_QUIET := @
|
|
|
|
VBOX_QUIET_SH := @
|
|
|
|
@@ -49,6 +50,7 @@ vboxsf: vboxguest
|
|
|
|
if [ -f vboxguest/Module.symvers ]; then \
|
|
|
|
cp vboxguest/Module.symvers vboxsf; \
|
|
|
|
fi; \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxsf/Module.symvers; \
|
|
|
|
echo "=== Building 'vboxsf' module ==="; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxsf/Module.symvers) -C vboxsf || exit 1; \
|
|
|
|
if [ -f vboxsf/vboxsf.ko ]; then \
|
|
|
|
@@ -64,6 +66,7 @@ vboxvideo:
|
|
|
|
if [ -f vboxguest/Module.symvers ]; then \
|
|
|
|
cp vboxguest/Module.symvers vboxvideo; \
|
|
|
|
fi; \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxvideo/Module.symvers; \
|
|
|
|
echo "=== Building 'vboxvideo' module ==="; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxvideo/Module.symvers) -C vboxvideo || exit 1; \
|
|
|
|
if [ -f vboxvideo/vboxvideo.ko ]; then \
|
|
|
|
@@ -77,9 +80,11 @@ vboxvideo:
|
|
|
|
install:
|
|
|
|
$(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
|
|
|
|
$(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxsf/Module.symvers; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
|
|
|
|
fi
|
|
|
|
$(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
|
|
|
|
+ export KBUILD_EXTRA_SYMBOLS=${PWD}/vboxvideo/Module.symvers; \
|
|
|
|
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
|
|
@@ -35,8 +35,18 @@
|
|
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/console.h>
|
|
|
|
#include <linux/vt_kern.h>
|
|
|
|
+#include <linux/version.h>
|
|
|
|
|
|
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0))
|
|
|
|
+#include <drm/drm_file.h>
|
|
|
|
+#include <drm/drm_drv.h>
|
|
|
|
+#include <drm/drm_device.h>
|
|
|
|
+#include <linux/pci.h>
|
|
|
|
+#include <drm/drm_ioctl.h>
|
|
|
|
+#include <drm/drm_pci.h>
|
|
|
|
+#else
|
|
|
|
#include <drm/drmP.h>
|
|
|
|
+#endif
|
|
|
|
#include <drm/drm_crtc_helper.h>
|
|
|
|
|
|
|
|
#include "vbox_drv.h"
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
|
|
@@ -103,7 +103,13 @@
|
|
|
|
#define S64_MIN ((s64)(-S64_MAX - 1))
|
|
|
|
#endif
|
|
|
|
|
|
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0))
|
|
|
|
+#include <drm/drm_file.h>
|
|
|
|
+#include <drm/drm_drv.h>
|
|
|
|
+#include <drm/drm_device.h>
|
|
|
|
+#else
|
|
|
|
#include <drm/drmP.h>
|
|
|
|
+#endif
|
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)
|
|
|
|
#include <drm/drm_encoder.h>
|
|
|
|
#endif
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_fb.c
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_fb.c
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_fb.c
|
|
|
|
@@ -42,7 +42,19 @@
|
|
|
|
#include <linux/fb.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
|
|
|
|
+#include <linux/version.h>
|
|
|
|
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0))
|
|
|
|
+#include <drm/drm_file.h>
|
|
|
|
+#include <drm/drm_drv.h>
|
|
|
|
+#include <drm/drm_device.h>
|
|
|
|
+#include <linux/pci.h>
|
|
|
|
+#include <drm/drm_fourcc.h>
|
|
|
|
+#include <drm/drm_pci.h>
|
|
|
|
+#include <drm/drm_ioctl.h>
|
|
|
|
+#define drm_compat_ioctl NULL
|
|
|
|
+#else
|
|
|
|
#include <drm/drmP.h>
|
|
|
|
+#endif
|
|
|
|
#include <drm/drm_crtc.h>
|
|
|
|
#include <drm/drm_fb_helper.h>
|
|
|
|
#include <drm/drm_crtc_helper.h>
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_mode.c
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_mode.c
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_mode.c
|
2020-01-23 19:19:38 +01:00
|
|
|
@@ -45,6 +45,14 @@
|
2020-01-20 21:15:41 +01:00
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) || defined(RHEL_81)
|
|
|
|
#include <drm/drm_probe_helper.h>
|
|
|
|
#endif
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
|
|
|
|
+#include <drm/drm_fourcc.h>
|
|
|
|
+#endif
|
2020-01-23 19:19:38 +01:00
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
|
2020-01-20 21:15:41 +01:00
|
|
|
+#include <drm/drm_vblank.h>
|
2020-01-23 19:19:38 +01:00
|
|
|
+#else
|
|
|
|
+#include <drm/drmP.h>
|
|
|
|
+#endif
|
2020-01-20 21:15:41 +01:00
|
|
|
|
|
|
|
#include "VBoxVideo.h"
|
|
|
|
|
2020-01-23 19:19:38 +01:00
|
|
|
@@ -398,6 +406,13 @@ static struct drm_encoder *drm_encoder_f
|
2020-01-20 21:15:41 +01:00
|
|
|
static struct drm_encoder *vbox_best_single_encoder(struct drm_connector
|
|
|
|
*connector)
|
|
|
|
{
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
|
|
|
|
+ struct drm_encoder *encoder;
|
|
|
|
+
|
|
|
|
+ /* There is only one encoder per connector */
|
|
|
|
+ drm_connector_for_each_possible_encoder(connector, encoder)
|
|
|
|
+ return encoder;
|
|
|
|
+#else
|
|
|
|
int enc_id = connector->encoder_ids[0];
|
|
|
|
|
|
|
|
/* pick the encoder ids */
|
2020-01-23 19:19:38 +01:00
|
|
|
@@ -410,6 +425,7 @@ static struct drm_encoder *vbox_best_sin
|
2020-01-20 21:15:41 +01:00
|
|
|
#else
|
|
|
|
return drm_encoder_find(connector->dev, enc_id);
|
|
|
|
#endif
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
|
|
@@ -34,6 +34,10 @@
|
|
|
|
*/
|
|
|
|
#include "vbox_drv.h"
|
|
|
|
#include <drm/ttm/ttm_page_alloc.h>
|
|
|
|
+#include <linux/pci.h>
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
|
|
|
|
+#include <drm/drm_fourcc.h>
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) && !defined(RHEL_72)
|
|
|
|
#define PLACEMENT_FLAGS(placement) (placement)
|
|
|
|
@@ -310,11 +314,12 @@ int vbox_mm_init(struct vbox_private *vb
|
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0) || defined(RHEL_71)
|
|
|
|
dev->anon_inode->i_mapping,
|
|
|
|
#endif
|
|
|
|
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
|
|
|
- DRM_FILE_PAGE_OFFSET, true);
|
|
|
|
-#else
|
|
|
|
- true);
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
|
|
|
|
+ bdev->vma_manager,
|
|
|
|
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)
|
|
|
|
+ DRM_FILE_PAGE_OFFSET,
|
|
|
|
#endif
|
|
|
|
+ true);
|
|
|
|
if (ret) {
|
|
|
|
DRM_ERROR("Error initialising bo driver; %d\n", ret);
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) && !defined(RHEL_77) && !defined(RHEL_81)
|
|
|
|
Index: VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_irq.c
|
|
|
|
===================================================================
|
|
|
|
--- VirtualBox-6.1.2.orig/src/VBox/Additions/linux/drm/vbox_irq.c
|
|
|
|
+++ VirtualBox-6.1.2/src/VBox/Additions/linux/drm/vbox_irq.c
|
|
|
|
@@ -42,6 +42,10 @@
|
|
|
|
#include <drm/drm_probe_helper.h>
|
|
|
|
#endif
|
|
|
|
#include <VBoxVideo.h>
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0)
|
|
|
|
+#include <drm/drm_irq.h>
|
|
|
|
+#include <linux/pci.h>
|
|
|
|
+#endif
|
2019-12-19 06:12:48 +01:00
|
|
|
|
2020-01-20 21:15:41 +01:00
|
|
|
static void vbox_clear_irq(void)
|
|
|
|
{
|