Opened 4 years ago
Closed 4 years ago
#19863 closed defect (fixed)
Guest additions 6.1.14 won't build in RHEL 8.3 beta (fixed in trunk)
Reported by: | nixuser | Owned by: | Frank Batschulat (Oracle) |
---|---|---|---|
Component: | guest additions | Version: | VirtualBox 6.1.14 |
Keywords: | RHEL 8.3 CentsOS 8 OL 8.3 | Cc: | |
Guest type: | Linux | Host type: | Windows |
Description
Guest additions version 6.1.14 won't build in Red Hat Enterprise Linux 8.3 beta with kernel-4.18.0-221.el8.x86_64. This will impact derived distros like CentOS eventually also.
Attachments (3)
Change History (29)
by , 4 years ago
Attachment: | vboxadd-setup.log added |
---|
comment:1 by , 4 years ago
The error is:
Building the main Guest Additions 6.1.14 module for kernel 4.18.0-221.el8.x86_64. Building the shared folder support module. Building the graphics driver module. Error building the module. Build output follows. make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.18.0-221.el8.x86_64/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j2 modules make[1]: warning: -jN forced in submake: disabling jobserver mode. test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \ echo >&2; \ echo >&2 " ERROR: Kernel configuration is invalid."; \ echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\ echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo >&2 ; \ /bin/false) mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/* make -f ./scripts/Makefile.build obj=/tmp/vbox.0 (cat /dev/null; echo kernel//tmp/vbox.0/vboxvideo.ko;) > /tmp/vbox.0/modules.order gcc -Wp,-MD,/tmp/vbox.0/.hgsmi_base.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -I./include -I/tmp/vbox.0/ -I./include/drm -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DRT_ARCH_AMD64 -DMODULE -DKBUILD_BASENAME='"hgsmi_base"' -DKBUILD_MODNAME='"vboxvideo"' -c -o /tmp/vbox.0/.tmp_hgsmi_base.o /tmp/vbox.0/hgsmi_base.c gcc -Wp,-MD,/tmp/vbox.0/.modesetting.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/8/include -I./arch/x86/include -I./arch/x86/include/generated -I./include/drm-backport -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -g -gdwarf-4 -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -I./include -I/tmp/vbox.0/ -I./include/drm -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DRT_ARCH_AMD64 -DMODULE -DKBUILD_BASENAME='"modesetting"' -DKBUILD_MODNAME='"vboxvideo"' -c -o /tmp/vbox.0/.tmp_modesetting.o /tmp/vbox.0/modesetting.c In file included from /tmp/vbox.0/hgsmi_base.c:27: /tmp/vbox.0/vbox_drv.h:151:11: fatal error: drm/drmP.h: No such file or directory # include <drm/drmP.h> ^~~~~~~~~~~~ compilation terminated. make[2]: *** [scripts/Makefile.build:315: /tmp/vbox.0/hgsmi_base.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /tmp/vbox.0/vboxvideo_guest.h:34, from /tmp/vbox.0/modesetting.c:27: /tmp/vbox.0/vbox_drv.h:151:11: fatal error: drm/drmP.h: No such file or directory # include <drm/drmP.h> ^~~~~~~~~~~~ compilation terminated.
Our code does: trunk/src/VBox/Additions/linux/drm/vbox_drv.h
154 #if RTLNX_VER_MAX(5,5,0) 155 # include <drm/drmP.h> 156 #else /* >= 5.5.0 */ 157 # include <drm/drm_file.h> 158 # include <drm/drm_drv.h> 159 # include <drm/drm_device.h> 160 # include <drm/drm_ioctl.h> 161 # include <drm/drm_fourcc.h> 162 # include <drm/drm_irq.h> 163 # include <drm/drm_vblank.h> 164 #endif /* >= 5.5.0 */
I just did that for the 5.5 kernel support so that implies that RH did backport something to RHEL 8.3 and kernel 4.18.0-221.el8.x86_64 that broke this.
comment:2 by , 4 years ago
Submitter, please provide the output of:
#cat /etc/os-release #cat /etc/redhat-release
thanks
comment:3 by , 4 years ago
rhel8b3$ cat /etc/os-release NAME="Red Hat Enterprise Linux" VERSION="8.3 (Ootpa)" ID="rhel" ID_LIKE="fedora" VERSION_ID="8.3" PLATFORM_ID="platform:el8" PRETTY_NAME="Red Hat Enterprise Linux 8.3 Beta (Ootpa)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:redhat:enterprise_linux:8.3:beta" HOME_URL="https://www.redhat.com/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" REDHAT_BUGZILLA_PRODUCT_VERSION=8.3 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" REDHAT_SUPPORT_PRODUCT_VERSION="8.3 Beta" rhel8b3$ cat /etc/redhat-release Red Hat Enterprise Linux release 8.3 Beta (Ootpa) rhel8b3$
comment:4 by , 4 years ago
see https://www.virtualbox.org/ticket/19145 for the details about the removal and changes related to drmP.h in the 5.5 kernel release. This must have been backported to RHEL 8.3 now.
Also the drm_connector related changes from 5.5 got backported.
comment:5 by , 4 years ago
This should fix the problem in file: trunk/src/VBox/Additions/linux/drm/vbox_drv.h
$ diff -c vbox_drv.h.orig vbox_drv.h *** vbox_drv.h.orig 2020-09-07 10:24:18.259718764 +0200 --- vbox_drv.h 2020-09-07 10:50:30.088925534 +0200 *************** *** 151,159 **** #define S64_MIN ((s64)(-S64_MAX - 1)) #endif ! #if RTLNX_VER_MAX(5,5,0) # include <drm/drmP.h> ! #else /* >= 5.5.0 */ # include <drm/drm_file.h> # include <drm/drm_drv.h> # include <drm/drm_device.h> --- 151,159 ---- #define S64_MIN ((s64)(-S64_MAX - 1)) #endif ! #if RTLNX_VER_MAX(5,5,0) && RTLNX_RHEL_MAX(8,3) # include <drm/drmP.h> ! #else /* >= 5.5.0 || RHEL >= 8.3 */ # include <drm/drm_file.h> # include <drm/drm_drv.h> # include <drm/drm_device.h> *************** *** 161,167 **** # include <drm/drm_fourcc.h> # include <drm/drm_irq.h> # include <drm/drm_vblank.h> ! #endif /* >= 5.5.0 */ #if RTLNX_VER_MIN(4,11,0) || RTLNX_RHEL_MAJ_PREREQ(7,5) # include <drm/drm_encoder.h> #endif --- 161,167 ---- # include <drm/drm_fourcc.h> # include <drm/drm_irq.h> # include <drm/drm_vblank.h> ! #endif /* >= 5.5.0 || RHEL >= 8.3 */ #if RTLNX_VER_MIN(4,11,0) || RTLNX_RHEL_MAJ_PREREQ(7,5) # include <drm/drm_encoder.h> #endif
comment:6 by , 4 years ago
Any suggestion where I can get a RHEL 8.3 Beta install DVD from to verify the fix?
comment:7 by , 4 years ago
You will need a Red Hat Developer Account which you can get for free as a developer. Check here https://developers.redhat.com/articles/getting-red-hat-developer-subscription-what-rhel-users-need-know. You can then simply download the beta here https://developers.redhat.com/products/rhel/download. Hope this helps.
comment:8 by , 4 years ago
Actually I believe you can do everything from the second link, and create the account at the time of download. Sorry but it's been a long while since I had to do this, and the pages have changed.
comment:9 by , 4 years ago
Owner: | set to |
---|---|
Status: | new → accepted |
comment:10 by , 4 years ago
Status: | accepted → awaitsfeedback |
---|
from RedHat on an attempt to get the beta with a developer subscription:
RHEL Beta subscriptions are only available to customers who have an active subscription for a Red Hat product. However, subscriptions that will let you evaluate Red Hat Enterprise Linux Beta are available at no cost by requesting a Red Hat Enterprise Linux evaluation or by joining the Red Hat Developer Program. If you are unsure whether you already have a Red Hat Enterprise Linux Beta subscription, you can check by visiting the Red Hat Customer Portal, https://access.redhat.com/management/ Learn more about Red Hat Enterprise Linux Beta: https://access.redhat.com/products/red-hat-enterprise-linux/beta For more information about Red Hat Enterprise Linux Beta and requirements, visit: https://access.redhat.com/site/solutions/534743
I actually have the Red Hat Beta Access but the download is not available to me in the Downloads section, maybe it is hidden somewhere in the HTML emails I got as a result. I don't know. I don't have time for this.
So just wake me up when RHEL 8.3 is released or you figure out a way to provide early access for us or test the above suggested fix I put in on your systems GAs and report the result back.
comment:11 by , 4 years ago
Owner: | removed |
---|---|
Status: | awaitsfeedback → new |
comment:12 by , 4 years ago
Status: | new → awaitsfeedback |
---|
follow-up: 14 comment:13 by , 4 years ago
If you are logged into your Red Hat account, the following link should work:
https://access.redhat.com/downloads/content/486/ver=/rhel---8/8.3%20Beta/x86_64/product-software
comment:14 by , 4 years ago
Replying to nixuser:
If you are logged into your Red Hat account, the following link should work:
https://access.redhat.com/downloads/content/486/ver=/rhel---8/8.3%20Beta/x86_64/product-software
Yes, that indeed worked and I now have a corresponding RHEL 8.3 Beta VM running, however it does not come with any software repos enabled so hard to install gcc make kernel-devel and kernel-headers. I am sure the final distro once releases will be more easy to handle and test then this beta testing stuff.
comment:15 by , 4 years ago
You need to register the machine and connect it to a free beta entitlement. However I completely forgot the fact that after the install the graphical registration program was completely broken for me.... I had to do it from the command line and nothing I read from other people in the community portal seemed to work for me.... I got it working only after a lot of hacking and experimenting.
No chance to describe how I did it because I'm not even sure myself how I got it going! But that's how I got the repos up and running. I think you're right, this will have to wait for final release sadly.
Sorry about that, I had forgotten what a fight it was to get the repos working.
comment:16 by , 4 years ago
You can apply the suggested fix from comment https://www.virtualbox.org/ticket/19863#comment:5 to your installed GA in the RHEL 5.3beta VM and test it.
the file to change is in directory : /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo filename: vbox_drv.h
after you applied the diffs, you build and install the GAs again with:
# cd /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14 # make # make install
Then reboot the VM.
follow-up: 18 comment:17 by , 4 years ago
The same bug affects CentOS 8 Stream from https://www.centos.org/download/ Release identifier inside the OS: CentOS Linux release 8.2.2004 (Core)
the current kernel affected is 4.18.0-236.el8.x86_64
comment:18 by , 4 years ago
Owner: | set to |
---|---|
Status: | awaitsfeedback → assigned |
Replying to jre:
The same bug affects CentOS 8 Stream from https://www.centos.org/download/ Release identifier inside the OS: CentOS Linux release 8.2.2004 (Core)
the current kernel affected is 4.18.0-236.el8.x86_64
Jepp, thanks! I can reproduce it using that. That's something I can work with.
comment:19 by , 4 years ago
So the drmP.h issue mentioned initially is only the first problem, when fixing it as suggested in comment #5 we stumble over the next issue :
t/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo/vbox_fb.c /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo/vbox_drv.c: In function ‘vbox_pci_probe’: /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo/vbox_drv.c:61:9: error: implicit declaration of function ‘drm_get_pci_dev’; did you mean ‘acpi_get_pci_dev’? [-Werror=implicit-function-declaration] #else ^ acpi_get_pci_dev /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo/vbox_drv.c: At top level: /opt/VBoxGuestAdditions-6.1.14/src/vboxguest-6.1.14/vboxvideo/vbox_drv.c:308:6: error: ‘DRIVER_PRIME’ undeclared here (not in a function); did you mean ‘DRIVER_NAME’? #else /* >= 5.4.0 */ ^~~~~~~~~~~~ DRIVER_NAME
comment:20 by , 4 years ago
they have not only backported changes from the 5.5 kernel, but also changes from the 5.4 kernel, namely the vma_manager related ones, see previous 5.4 support ticket #18945
comment:22 by , 4 years ago
Keywords: | CentsOS 8 OL added |
---|
by , 4 years ago
Attachment: | rhel83-614-diff2.txt added |
---|
GA diffs for 6.1.14 Rhel 83 & CentOS 8 stream
comment:25 by , 4 years ago
you can test the fix using the following test builds and GA additions from the test build page Testbuilds
Trunk:
https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_6.1.97-140464.iso
6.1.X:
https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_6.1.15-140463.iso
comment:26 by , 4 years ago
the fix will be contained within the next maintenance release of !Virtualbox following the current 6.1.14 release.
comment:27 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Summary: | Guest additions 6.1.14 won't build in RHEL 8.3 beta → Guest additions 6.1.14 won't build in RHEL 8.3 beta (fixed in trunk) |
vboxadd-setup.log