[oe] [meta-oe][PATCH] vboxguestdrivers: upgrade to 5.2.6

zboszor at pr.hu zboszor at pr.hu
Mon Feb 26 05:37:21 UTC 2018


2018-02-24 11:51 időpontban Martin Jansa ezt írta:

> * 5.1.26 doesn't build with 4.15 kernel

But 5.1.32 does IIRC.

Anyway, kernel 4.15 includes the vboxguest and vboxvideo
drivers which has the advantage that these drivers are
signed properly (in case you have set it in the kernel config)
unlike the drivers coming from vboxguestdrivers.

> 
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
> .../linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff | 90 
> ++++++++++++++++++++++
> ...drivers_5.1.26.bb => vboxguestdrivers_5.2.6.bb} | 22 ++++--
> 2 files changed, 107 insertions(+), 5 deletions(-)
> create mode 100644 
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff
> rename 
> meta-oe/recipes-support/vboxguestdrivers/{vboxguestdrivers_5.1.26.bb => 
> vboxguestdrivers_5.2.6.bb} (69%)
> 
> diff --git 
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff 
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff
> new file mode 100644
> index 0000000000..23a9021f04
> --- /dev/null
> +++ 
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff
> @@ -0,0 +1,90 @@
> +Based on:
> +https://raw.githubusercontent.com/mjmaravillo/misc/master/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff 
> [1]
> +
> +Upstream-Status: Pending (hopefully new vbox will be released soon 
> with proper 4.15 support, this patch isn't backwards compatible)
> +
> +--- vbox_module.orig/vboxvideo/vbox_mode.c 2018-02-18 
> 16:42:47.000000000 +0000
> ++++ vbox_module/vboxvideo/vbox_mode.c 2018-02-18 16:55:14.466029313 
> +0000
> +@@ -396,7 +396,7 @@
> +
> + /* pick the encoder ids */
> + if (enc_id)
> +- return drm_encoder_find(connector->dev, enc_id);
> ++ return drm_encoder_find(connector->dev, NULL, enc_id);
> +
> + return NULL;
> + }
> +--- vbox_module.orig/vboxguest/VBoxGuest-linux.c 2018-02-18 
> 16:42:28.000000000 +0000
> ++++ vbox_module/vboxguest/VBoxGuest-linux.c 2018-02-18 
> 16:54:36.793049118 +0000
> +@@ -1058,7 +1058,7 @@
> + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
> +
> + /** log and dbg_log parameter setter. */
> +-static int vgdrvLinuxParamLogGrpSet(const char *pszValue, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamLogGrpSet(const char *pszValue, const 
> struct kernel_param *pParam)
> + {
> + if (g_fLoggerCreated)
> + {
> +@@ -1073,7 +1073,7 @@
> + }
> +
> + /** log and dbg_log parameter getter. */
> +-static int vgdrvLinuxParamLogGrpGet(char *pszBuf, struct kernel_param 
> *pParam)
> ++static int vgdrvLinuxParamLogGrpGet(char *pszBuf, const struct 
> kernel_param *pParam)
> + {
> + PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : 
> RTLogRelGetDefaultInstance();
> + *pszBuf = '\0';
> +@@ -1084,7 +1084,7 @@
> +
> +
> + /** log and dbg_log_flags parameter setter. */
> +-static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, const 
> struct kernel_param *pParam)
> + {
> + if (g_fLoggerCreated)
> + {
> +@@ -1098,7 +1098,7 @@
> + }
> +
> + /** log and dbg_log_flags parameter getter. */
> +-static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, const struct 
> kernel_param *pParam)
> + {
> + PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : 
> RTLogRelGetDefaultInstance();
> + *pszBuf = '\0';
> +@@ -1109,7 +1109,7 @@
> +
> +
> + /** log and dbg_log_dest parameter setter. */
> +-static int vgdrvLinuxParamLogDstSet(const char *pszValue, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamLogDstSet(const char *pszValue, const 
> struct kernel_param *pParam)
> + {
> + if (g_fLoggerCreated)
> + {
> +@@ -1123,7 +1123,7 @@
> + }
> +
> + /** log and dbg_log_dest parameter getter. */
> +-static int vgdrvLinuxParamLogDstGet(char *pszBuf, struct kernel_param 
> *pParam)
> ++static int vgdrvLinuxParamLogDstGet(char *pszBuf, const struct 
> kernel_param *pParam)
> + {
> + PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : 
> RTLogRelGetDefaultInstance();
> + *pszBuf = '\0';
> +@@ -1134,7 +1134,7 @@
> +
> +
> + /** r3_log_to_host parameter setter. */
> +-static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, const 
> struct kernel_param *pParam)
> + {
> + if ( pszValue == NULL
> + || *pszValue == '\0'
> +@@ -1152,7 +1152,7 @@
> + }
> +
> + /** r3_log_to_host parameter getter. */
> +-static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, struct 
> kernel_param *pParam)
> ++static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, const struct 
> kernel_param *pParam)
> + {
> + strcpy(pszBuf, g_DevExt.fLoggingEnabled ? "enabled" : "disabled");
> + return strlen(pszBuf);
> diff --git 
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb 
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.6.bb
> similarity index 69%
> rename from 
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
> rename to 
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.6.bb
> index fdefe03172..c018b789f2 100644
> --- 
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
> +++ 
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.6.bb
> @@ -12,22 +12,27 @@ COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
> VBOX_NAME = "VirtualBox-${PV}"
> 
> SRC_URI = 
> "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 
> [2] \
> - file://Makefile.utils [3] \
> + file://Makefile.utils [3] \
> "
> -SRC_URI[md5sum] = "d3aec8190c649d7e0d92ba374779dfe3"
> -SRC_URI[sha256sum] = 
> "b5715035e681a11ef1475f83f9503d34a00f0276b89c572eebec363dda80c8a9"
> +
> +# For default linux-yocto 4.15
> +SRC_URI += "file://linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff [4]"
> +
> +SRC_URI[md5sum] = "4490d6929dfae41cdf05e34f583318c8"
> +SRC_URI[sha256sum] = 
> "fe705288ee50efcce10ff4c80e461a1c7091e461a7b55f98842fa1c9772ca4e7"
> 
> S = "${WORKDIR}/vbox_module"
> 
> export BUILD_TARGET_ARCH="${ARCH}"
> export BUILD_TARGET_ARCH_x86-64="amd64"
> -export KERN_DIR="${STAGING_KERNEL_DIR}"
> +
> +EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
> 
> addtask export_sources before do_patch after do_unpack
> 
> do_export_sources() {
> mkdir -p "${S}"
> - ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules 
> ${T}/vbox_modules.tar.gz
> + ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh 
> ${T}/vbox_modules.tar.gz
> tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
> 
> # add a mount utility to use shared folder from VBox Addition Source 
> Code
> @@ -38,6 +43,13 @@ do_export_sources() {
> 
> }
> 
> +do_configure_prepend() {
> + # 
> vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: 
> *** The variable KERN_DIR must be a kernel build folder and end with 
> /build without a trailing slash, or KERN_VER must be set. Stop.
> + # 
> vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: 
> *** The kernel build folder path must end in <version>/build, or the 
> variable KERN_VER must be set. Stop.
> + mkdir -p ${WORKDIR}/${KERNEL_VERSION}
> + ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
> +}
> +
> # compile and install mount utility
> do_compile_append() {
> oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
> --
> 2.15.1



Links:
------
[1] 
https://raw.githubusercontent.com/mjmaravillo/misc/master/linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff
[2] http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2
[3] file://Makefile.utils
[4] file://linux-4.15.0-rc8-VBoxGuestAdditions-amd64.diff



More information about the Openembedded-devel mailing list