[Eisfair] [e1] eiskernel 4.2.0 und virtualbox
Uwe Kunze
u.kunze.sdh at t-online.de
So Dez 22 18:10:55 CET 2019
Hi @all,
ich habe gerade mal probiert, meine eierlegende Wollmilchsau (e1,
Bj.2004, Kernel 3.2.87-virt) auf den 4er Kernel upzudaten .... was
erstaunlicherweise ohne große Probleme gelang (mal von "selbstgemachten
Problemchen" abgesehen).
Unter dem alten 3er Kernel lief eine Virtualbox, deren Treiber für den
4er Kernel neu kompiliert werden müssen.
Daher also das kernel-dev-Paket installiert und das vbox-eigene
Treiber-Script (/etc/init.d/vboxdrv setup) gestartet. Leider gibt es die
folgende Fehlermeldung:
> make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 CONFIG_MODULE_SIG= -C /lib/modules/4.9.196-eisfair-1-VIRT/build modules
> 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
> gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./
> gcc -Wp,-MD,/tmp/vbox.0/.SUPDrv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./arch/x86/inc
> gcc -Wp,-MD,/tmp/vbox.0/.SUPDrvGip.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./arch/x86/
> gcc -Wp,-MD,/tmp/vbox.0/.SUPDrvSem.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./arch/x86/
> gcc -Wp,-MD,/tmp/vbox.0/.SUPDrvTracer.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./arch/x
> gcc -Wp,-MD,/tmp/vbox.0/.SUPLibAll.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./arch/x86/
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/.alloc-r0drv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./a
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/.initterm-r0drv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/.memobj-r0drv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/include -I./
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/.mpnotification-r0drv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/incl
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/.powernotification-r0drv.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/i
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/linux/.assert-r0drv-linux.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/
> gcc -Wp,-MD,/tmp/vbox.0/r0drv/linux/.alloc-r0drv-linux.o.d -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/8/include -I./arch/x86/i
> In file included from ./arch/x86/include/asm/paravirt_types.h:44,
> from ./arch/x86/include/asm/ptrace.h:71,
> from ./arch/x86/include/asm/math_emu.h:4,
> from ./arch/x86/include/asm/processor.h:11,
> from ./arch/x86/include/asm/cpufeature.h:4,
> from ./arch/x86/include/asm/thread_info.h:52,
> from ./include/linux/thread_info.h:58,
> from ./arch/x86/include/asm/preempt.h:6,
> from ./include/linux/preempt.h:59,
> from ./include/linux/spinlock.h:50,
> from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:71,
> from /tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.c:31:
> /tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.c: In function 'rtR0MemAllocEx':
> /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:252:42: error: 'cpu_has_pge' undeclared (first use in this function); did you mean 'cpu_has_b
> # define MY_PAGE_KERNEL_EXEC __pgprot(cpu_has_pge ? __PAGE_KERNEL_EXEC | _PAGE_GLOBAL : __PAGE_KERNEL_EXEC)
> ^~~~~~~~~~~
> ./arch/x86/include/asm/pgtable_types.h:396:36: note: in definition of macro '__pgprot'
> #define __pgprot(x) ((pgprot_t) { (x) } )
> ^
> /tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.c:269:100: note: in expansion of macro 'MY_PAGE_KERNEL_EXEC'
> pHdr = (PRTMEMHDR)__vmalloc(cb + sizeof(*pHdr), GFP_KERNEL | __GFP_HIGHMEM | __GFP_NOWARN, MY_PAGE_KERNEL_EXEC);
> ^~~~~~~~~~~~~~~~~~~
> /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:252:42: note: each undeclared identifier is reported only once for each function it appears i
> # define MY_PAGE_KERNEL_EXEC __pgprot(cpu_has_pge ? __PAGE_KERNEL_EXEC | _PAGE_GLOBAL : __PAGE_KERNEL_EXEC)
> ^~~~~~~~~~~
> ./arch/x86/include/asm/pgtable_types.h:396:36: note: in definition of macro '__pgprot'
> #define __pgprot(x) ((pgprot_t) { (x) } )
> ^
> /tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.c:269:100: note: in expansion of macro 'MY_PAGE_KERNEL_EXEC'
> pHdr = (PRTMEMHDR)__vmalloc(cb + sizeof(*pHdr), GFP_KERNEL | __GFP_HIGHMEM | __GFP_NOWARN, MY_PAGE_KERNEL_EXEC);
> ^~~~~~~~~~~~~~~~~~~
> scripts/Makefile.build:304: recipe for target '/tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.o' failed
> make[2]: *** [/tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.o] Error 1
> Makefile:1527: recipe for target '_module_/tmp/vbox.0' failed
> make[1]: *** [_module_/tmp/vbox.0] Error 2
> Makefile:298: recipe for target 'vboxdrv' failed
> make: *** [vboxdrv] Error 2
Aus älteren Kernel-Wechseln wusste ich noch, dass es wichtig ist,
denselben Compiler zu verwenden, mit dem auch der Kernel kompiliert ist.
Auf meinem eis ist aktuell
> S: 2.8.5 GCC - C - 8.1.1 - The GNU C Compiler 2019-06-29
dieses Paket drauf (und aktiv).
Kann bitte jemand helfen und sich das Problem mal anschauen ?
Danke und Grüße.
Uwe
Mehr Informationen über die Mailingliste Eisfair