[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