dkms plante sur toutes les compils depuis quelques temps

Demande d'aide : c'est ici.
Répondre
mattotop
Membre
Membre
Messages : 28
Inscription : 19 nov. 2019, 15:38
Status : Hors-ligne

Bonjour,
tout d'abord un peu de contexte sur ma config:

Code : Tout sélectionner

mj@mercure:~$ uname -a
Linux mercure 5.0.11-amd64 #1 SMP Fri May 3 23:29:19 CEST 2019 x86_64 GNU/Linux
mj@mercure:~$ lsb_release -d
Description:	Debian GNU/Linux 10 (buster)
mj@mercure:~$ inxi
CPU: 8-Core Intel Core i7-6900K (-MT MCP-) speed/min/max: 1200/1200/4000 MHz Kernel: 5.0.11-amd64 x86_64 Up: 6d 5h 00m 
Mem: 16630.0/64324.9 MiB (25.9%) Storage: 1.02 TiB (21.5% used) Procs: 424 Shell: bash 5.0.3 inxi: 3.0.32 
A noter qu'initialement, la machine a été installée en jessie et dist-upgradée 2 fois.

Le probléme:
Le dernier noyau que j'ai pu installer et où la compil dkms marchait était un 5.0.11 que j'avais compilé avec les sources prises sur kernel.org
C'est le noyau sur lequel je tourne en ce moment.
Il y a quelques temps, j'ai voulu installer le noyau 5.2 présent dans les backports, et c'est là que j'ai découvert que dkms ne compilait plus les modules nvidia et virtualbox.
Faute de comprendre ce qui clochait, j'ai testé en reprenant des noyaux 4 ou même 3, ou d'autres noyau 5, et j'ai aussi supprimmé/recompilé les modules de noyaux ou dkms compilait autrefois:
rien ne passe la compil.
La dernière compil sur le 5.2 de backports provoque les messages suivants:

Code : Tout sélectionner

Error! Bad return status for module build on kernel: 5.2.0-0.bpo.3-amd64 (x86_64)
Consult /var/lib/dkms/nvidia-current/418.74/build/make.log for more information.
Error! Bad return status for module build on kernel: 5.2.0-0.bpo.3-amd64 (x86_64)
Consult /var/lib/dkms/virtualbox/6.0.4/build/make.log for more information.
Les dernières lignes du rapport d'erreur pour le module nvidia (similaire pour virtualbox) sont:
:

Code : Tout sélectionner

(...)
   ./tools/objtool/objtool orc generate  --module --no-fp --retpoline --uaccess /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/uvm8_gpu.o
  if objdump -h /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/uvm8_gpu.o | grep -q __ksymtab; then  gcc-8 -E -D__GENKSYMS__ -Wp,-MD,/var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.uvm8_gpu.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/src/linux-headers-5.2.0-0.bpo.3-common/arch/x86/include -I./arch/x86/include/generated -I/usr/src/linux-headers-5.2.0-0.bpo.3-common/include -I./include -I/usr/src/linux-headers-5.2.0-0.bpo.3-common/arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I/usr/src/linux-headers-5.2.0-0.bpo.3-common/include/uapi -I./include/generated/uapi -include /usr/src/linux-headers-5.2.0-0.bpo.3-common/include/linux/kconfig.h -include /usr/src/linux-headers-5.2.0-0.bpo.3-common/include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -std=gnu89 -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 -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -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 -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-var-tracking-assignments -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=/usr/src/linux-headers-5.2.0-0.bpo.3-common/= -Wno-packed-not-aligned -I/var/lib/dkms/nvidia-current/418.74/build/common/inc -I/var/lib/dkms/nvidia-current/418.74/build -Wall -MD -Wno-cast-qual -Wno-error -Wno-format-extra-args -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"418.74\" -Wno-unused-function -Wuninitialized -fno-strict-aliasing -mno-red-zone -mcmodel=kernel -DNV_UVM_ENABLE -Werror=undef -DNV_SPECTRE_V2=0 -O2 -DNVIDIA_UVM_ENABLED -DNVIDIA_UNDEF_LEGACY_BIT_MACROS -DLinux -D__linux__ -I/var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm  -DMODULE  -DKBUILD_BASENAME='"uvm8_gpu"' -DKBUILD_MODNAME='"nvidia_uvm"' /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/uvm8_gpu.c | scripts/genksyms/genksyms    -r /dev/null > /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.tmp_uvm8_gpu.ver; ld -m elf_x86_64  -z max-page-size=0x200000 -r -o /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.tmp_uvm8_gpu.o /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/uvm8_gpu.o -T /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.tmp_uvm8_gpu.ver; mv -f /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.tmp_uvm8_gpu.o /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/uvm8_gpu.o; rm -f /var/lib/dkms/nvidia-current/418.74/build/nvidia-uvm/.tmp_uvm8_gpu.ver; fi
make[2]: *** [/usr/src/linux-headers-5.2.0-0.bpo.3-common/Makefile:1610: _module_/var/lib/dkms/nvidia-current/418.74/build] Error 2
make[2] : on quitte le répertoire « /usr/src/linux-headers-5.2.0-0.bpo.3-amd64 »
make[1]: *** [Makefile:179: sub-make] Error 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.2.0-0.bpo.3-common »
make: *** [Makefile:81: modules] Error 2
Et sinon, des infos de versions sur quelques trucs impliqués:

Code : Tout sélectionner

mj@mercure:~$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 5 févr. 25  2019 /usr/bin/gcc -> gcc-8
mj@mercure:~$ apt policy gcc-8 linux-headers-5.2.0-0.bpo.3-amd64 linux-headers-5.2.0-0.bpo.3-common linux-image-5.2.0-0.bpo.3-amd64 linux-kbuild-5.2 linux-support-5.2.0-0.bpo.3 nvidia-kernel-dkms nvidia-kernel-source 
gcc-8:
  Installé : 8.3.0-6
  Candidat : 8.3.0-6
 Table de version :
 *** 8.3.0-6 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
linux-headers-5.2.0-0.bpo.3-amd64:
  Installé : 5.2.17-1~bpo10+1
  Candidat : 5.2.17-1~bpo10+1
 Table de version :
 *** 5.2.17-1~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
linux-headers-5.2.0-0.bpo.3-common:
  Installé : 5.2.17-1~bpo10+1
  Candidat : 5.2.17-1~bpo10+1
 Table de version :
 *** 5.2.17-1~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 http://deb.debian.org/debian buster-backports/main i386 Packages
        100 /var/lib/dpkg/status
linux-image-5.2.0-0.bpo.3-amd64:
  Installé : 5.2.17-1~bpo10+1
  Candidat : 5.2.17-1~bpo10+1
 Table de version :
 *** 5.2.17-1~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
linux-kbuild-5.2:
  Installé : 5.2.17-1~bpo10+1
  Candidat : 5.2.17-1~bpo10+1
 Table de version :
 *** 5.2.17-1~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
linux-support-5.2.0-0.bpo.3:
  Installé : 5.2.17-1~bpo10+1
  Candidat : 5.2.17-1~bpo10+1
 Table de version :
 *** 5.2.17-1~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 http://deb.debian.org/debian buster-backports/main i386 Packages
        100 /var/lib/dpkg/status
nvidia-kernel-dkms:
  Installé : 418.74-1
  Candidat : 418.74-1
 Table de version :
 *** 418.74-1 500
        500 http://deb.debian.org/debian buster/non-free amd64 Packages
        100 /var/lib/dpkg/status
nvidia-kernel-source:
  Installé : 418.74-1
  Candidat : 418.74-1
 Table de version :
 *** 418.74-1 500
        500 http://deb.debian.org/debian buster/non-free amd64 Packages
        100 /var/lib/dpkg/status
Quelqu'un aurait il une idée de ou creuser ?
Les messages d'erreur ne sont pas trés causants.
--gilles--
Membre actif
Membre actif
Messages : 526
Inscription : 24 août 2016, 19:35
Localisation : Gnome 43 - debian 12
Status : Hors-ligne

Il faudrait chercher sur la totalité du fichier /var/lib/dkms/nvidia-current/418.74/build/make.log les mots du genre : missing, fail, failed, error, critical, fatal

N'oublie pas de te détendre, la compilation, cela peut user les nerfs. :wacko:
Parler de liberté n'a de sens qu'à condition que ce soit la liberté de dire aux gens ce qu'ils n'ont pas envie d'entendre. Eric Blair, George Orwell
mattotop
Membre
Membre
Messages : 28
Inscription : 19 nov. 2019, 15:38
Status : Hors-ligne

Pas plus parlant:

Code : Tout sélectionner

mj@mercure:~$ grep -E "{rror|issing|ail|ritical|atal}" /var/lib/dkms/nvidia-current/418.74/build/make.log
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
 CONFTEST: nvidia_vgpu_hyperv_available
 CONFTEST: drm_available
 CONFTEST: drm_atomic_available
Par contre, j'ai aussi le pb avec la compil virtualbox, et voilà le rapport d'erreur complet et là beaucoup plus facile de voir tout ce qui pourrait être une erreur, c'est bien plus court:

Code : Tout sélectionner

DKMS make.log for virtualbox-6.0.4 for kernel 5.2.0-0.bpo.3-amd64 (x86_64)
mardi 19 novembre 2019, 16:11:08 (UTC+0100)
make : on entre dans le répertoire « /usr/src/linux-headers-5.2.0-0.bpo.3-amd64 »
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/linux/SUPDrv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPDrv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPDrvGip.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPDrvSem.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPDrvTracer.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPLibAll.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/alloc-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/initterm-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/memobj-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/mpnotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/powernotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/mp-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/mpnotification-r0drv-linux.o
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjLinuxDoMmap’:
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:215:58: error: ‘MAP_SHARED’ undeclared (first use in this function); did you mean ‘VM_SHARED’?
         ulAddr = vm_mmap(NULL, R3PtrFixed, cb, fLnxProt, MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, 0);
                                                          ^~~~~~~~~~
                                                          VM_SHARED
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:215:58: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/usr/src/linux-headers-5.2.0-0.bpo.3-common/scripts/Makefile.build:284: /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[4]: *** Attente des tâches non terminées....
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o: warning: objtool: rtR0MemKernelCopyLnxWorker()+0x16: redundant CLD
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/linux/SUPDrv-linux.o: warning: objtool: VBoxDrvLinuxIOCtl_6_0_4()+0x98: call to VBoxHost_RTR0MemUserCopyFrom() with UACCESS enabled
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/SUPDrvTracer.o: warning: objtool: .text+0x7: indirect jump found in RETPOLINE build
make[3]: *** [/usr/src/linux-headers-5.2.0-0.bpo.3-common/scripts/Makefile.build:494: /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv] Error 2
make[2]: *** [/usr/src/linux-headers-5.2.0-0.bpo.3-common/Makefile:1610: _module_/var/lib/dkms/virtualbox/6.0.4/build] Error 2
make[1]: *** [Makefile:179: sub-make] Error 2
make: *** [Makefile:8: all] Error 2
make : on quitte le répertoire « /usr/src/linux-headers-5.2.0-0.bpo.3-amd64 »
Et du coup:

Je n'avais pas vu ça dans la compil nvidia, je vais envoyer lycos (ou un autre) sur
/var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjLinuxDoMmap’:
Même si:

Code : Tout sélectionner

mj@mercure:~$ grep "In function" /var/lib/dkms/nvidia-current/418.74/build/make.log
ne renvoie rien
mattotop
Membre
Membre
Messages : 28
Inscription : 19 nov. 2019, 15:38
Status : Hors-ligne

Bon, j'ai creusé un peu.
Les erreurs viennent bien d'un déplacement de déclaration de la constante MAP_SHARED d'un fichier à l'autre dans les headers des noyaux à partir du 5.2.
Du coup, je me suis dit que j'allais mettre un peu de sid dans mes sources, pour voir si les dernières sources nvidia et virtualbox compilaient mieux.
Sauf que:

Code : Tout sélectionner

mj@mercure:~$ sudo apt install nvidia-driver=430.64-1 nvidia-driver-libs-nonglvnd=430.64-1 nvidia-driver-bin=430.64-1 nvidia-vdpau-driver=430.64-1 nvidia-alternative=430.64-1 nvidia-kernel-dkms=430.64-1 nvidia-settings=430.64-1 libnvidia-cfg1=430.64-1 xserver-xorg-video-nvidia=430.64-1
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 nvidia-driver-bin : Dépend: libnvidia-ml1 (>= 319) mais ne sera pas installé
 nvidia-driver-libs-nonglvnd : Dépend: libgl1-nvidia-glx (= 430.64-1) mais ne sera pas installé
                               Dépend: libegl1-nvidia (= 430.64-1) mais ne sera pas installé
                               Recommande: nvidia-driver-libs-nonglvnd-i386
                               Recommande: libglx-nvidia0 (= 430.64-1) mais ne sera pas installé
                               Recommande: libgles-nvidia1 (= 430.64-1) mais ne sera pas installé
                               Recommande: libgles-nvidia2 (= 430.64-1) mais ne sera pas installé
                               Recommande: nvidia-nonglvnd-vulkan-icd (= 430.64-1) mais ne sera pas installé
 nvidia-kernel-dkms : Dépend: nvidia-kernel-support--v1
 nvidia-settings : Dépend: libxnvctrl0 (= 430.64-1) mais 418.74-1 devra être installé
                  [b] Dépend: libc6 (>= 2.29) mais 2.28-10 devra être installé[/b]
                   Recommande: libgl1-nvidia-glvnd-glx mais ne sera pas installé ou
                               libgl1-nvidia-glx mais ne sera pas installé ou
                               libgl1-nvidia-tesla-glvnd-glx mais il n'est pas installable ou
                               libgl1-nvidia-tesla-glx mais il n'est pas installable
                   Recommande: libnvidia-ml1 mais ne sera pas installé ou
                               libnvidia-tesla-ml1 mais il n'est pas installable
 xserver-xorg-video-nvidia : Dépend: libnvidia-glcore (= 430.64-1) mais 418.74-1 devra être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
Donc non, je ne vais pas installer la libc6 de sid juste pour avoir un meilleur noyau.
Donc j'abandonne, et je vais attendre que tout marche sans obliger à passer sur une libc6 en sid.
--gilles--
Membre actif
Membre actif
Messages : 526
Inscription : 24 août 2016, 19:35
Localisation : Gnome 43 - debian 12
Status : Hors-ligne

Sans passer à une nouvelle libc6, dans /var/lib/dkms/virtualbox/6.0.4/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c tu pourrais modifier ou rajouter en en-tête, selon le cas un include avec le .h qui contient déclaration de la constante MAP_SHARED et recompiler avec ce fichier modifié.
Parler de liberté n'a de sens qu'à condition que ce soit la liberté de dire aux gens ce qu'ils n'ont pas envie d'entendre. Eric Blair, George Orwell
mattotop
Membre
Membre
Messages : 28
Inscription : 19 nov. 2019, 15:38
Status : Hors-ligne

Oui remarque, j'ai même trouvé le patch, mais j'ai oublié en me disant que j'avais toujours mon 5.0 et 4.19 ou j'aurais peut être à recompiler et que ça me génerait peut être, donc j'ai oublié.
Merci, je vais essayer pour voir.
Répondre