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 <[email protected]>
---
.../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
--
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to