Debian 12 linux-image-6.1.0-18-amd64 dist-upgradeがnvidia GPL互換性のないモジュールで失敗します。 nvidia.koはGPLシンボル「__rcu_read_lock」のみを使用します。

Debian 12 linux-image-6.1.0-18-amd64 dist-upgradeがnvidia GPL互換性のないモジュールで失敗します。 nvidia.koはGPLシンボル「__rcu_read_lock」のみを使用します。

私はapt-get upgradeandを実行しました。apt-get dist-upgrade

最後はこのメッセージで失敗します。後でNVidiaドライバにコンパイルすることに関連していることがわかります(私はDebianディストリビューションの1つを使用しています)。

dkms: autoinstall for kernel: 6.1.0-18-amd64 failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
sudo apt-get dist-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Calcul de la mise à jour... Fait
Les NOUVEAUX paquets suivants seront installés :
  libllvm16 linux-headers-6.1.0-18-amd64 linux-headers-6.1.0-18-common linux-image-6.1.0-18-amd64
Les paquets suivants seront mis à jour :
  linux-headers-amd64 linux-image-amd64 postgresql-14
3 mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/119 Mo dans les archives.
Après cette opération, 593 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O
Lecture des fichiers de modifications (« changelog »)... Terminé
Préconfiguration des paquets...
Sélection du paquet libllvm16:amd64 précédemment désélectionné.
(Lecture de la base de données... 822688 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../0-libllvm16_1%3a16.0.6-15~deb12u1_amd64.deb ...
Dépaquetage de libllvm16:amd64 (1:16.0.6-15~deb12u1) ...
Sélection du paquet linux-headers-6.1.0-18-common précédemment désélectionné.
Préparation du dépaquetage de .../1-linux-headers-6.1.0-18-common_6.1.76-1_all.deb ...
Dépaquetage de linux-headers-6.1.0-18-common (6.1.76-1) ...
Sélection du paquet linux-headers-6.1.0-18-amd64 précédemment désélectionné.
Préparation du dépaquetage de .../2-linux-headers-6.1.0-18-amd64_6.1.76-1_amd64.deb ...
Dépaquetage de linux-headers-6.1.0-18-amd64 (6.1.76-1) ...
Préparation du dépaquetage de .../3-linux-headers-amd64_6.1.76-1_amd64.deb ...
Dépaquetage de linux-headers-amd64 (6.1.76-1) sur (6.1.69-1) ...
Sélection du paquet linux-image-6.1.0-18-amd64 précédemment désélectionné.
Préparation du dépaquetage de .../4-linux-image-6.1.0-18-amd64_6.1.76-1_amd64.deb ...
Dépaquetage de linux-image-6.1.0-18-amd64 (6.1.76-1) ...
Préparation du dépaquetage de .../5-linux-image-amd64_6.1.76-1_amd64.deb ...
Dépaquetage de linux-image-amd64 (6.1.76-1) sur (6.1.69-1) ...
Préparation du dépaquetage de .../6-postgresql-14_14.11-1.pgdg120+1_amd64.deb ...
Dépaquetage de postgresql-14 (14.11-1.pgdg120+1) sur (14.10-1.pgdg120+1) ...
Paramétrage de linux-image-6.1.0-18-amd64 (6.1.76-1) ...
I: /vmlinuz.old is now a symlink to boot/vmlinuz-6.1.0-17-amd64
I: /initrd.img.old is now a symlink to boot/initrd.img-6.1.0-17-amd64
I: /vmlinuz is now a symlink to boot/vmlinuz-6.1.0-18-amd64
I: /initrd.img is now a symlink to boot/initrd.img-6.1.0-18-amd64
/etc/kernel/postinst.d/dkms:
dkms: running auto installation service for kernel 6.1.0-18-amd64.
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
env NV_VERBOSE=1 make -j32 modules KERNEL_UNAME=6.1.0-18-amd64........(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.1.0-18-amd64 (x86_64)
Consult /var/lib/dkms/nvidia-current/525.147.05/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.1.0-18-amd64 failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
dpkg: erreur de traitement du paquet linux-image-6.1.0-18-amd64 (--configure) :
 le sous-processus paquet linux-image-6.1.0-18-amd64 script post-installation installé a renvoyé un état de sortie d'erreur 1
dpkg: des problèmes de dépendances empêchent la configuration de linux-image-amd64 :
 linux-image-amd64 dépend de linux-image-6.1.0-18-amd64 (= 6.1.76-1); cependant :
 Le paquet linux-image-6.1.0-18-amd64 n'est pas encore configuré.

dpkg: erreur de traitement du paquet linux-image-amd64 (--configure) :
 problèmes de dépendances - laissé non configuré
Paramétrage de libllvm16:amd64 (1:16.0.6-15~deb12u1) ...
Paramétrage de linux-headers-6.1.0-18-common (6.1.76-1) ...
Paramétrage de postgresql-14 (14.11-1.pgdg120+1) ...
Paramétrage de linux-headers-6.1.0-18-amd64 (6.1.76-1) ...
/etc/kernel/header_postinst.d/dkms:
dkms: running auto installation service for kernel 6.1.0-18-amd64.
Sign command: /usr/lib/linux-kbuild-6.1/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
env NV_VERBOSE=1 make -j32 modules KERNEL_UNAME=6.1.0-18-amd64........(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.1.0-18-amd64 (x86_64)
Consult /var/lib/dkms/nvidia-current/525.147.05/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.1.0-18-amd64 failed!
run-parts: /etc/kernel/header_postinst.d/dkms exited with return code 11
Failed to process /etc/kernel/header_postinst.d at /var/lib/dpkg/info/linux-headers-6.1.0-18-amd64.postinst line 11.
dpkg: erreur de traitement du paquet linux-headers-6.1.0-18-amd64 (--configure) :
 le sous-processus paquet linux-headers-6.1.0-18-amd64 script post-installation installé a renvoyé un état de sortie d'erreur 1
dpkg: des problèmes de dépendances empêchent la configuration de linux-headers-amd64 :
 linux-headers-amd64 dépend de linux-headers-6.1.0-18-amd64 (= 6.1.76-1); cependant :
 Le paquet linux-headers-6.1.0-18-amd64 n'est pas encore configuré.

dpkg: erreur de traitement du paquet linux-headers-amd64 (--configure) :
 problèmes de dépendances - laissé non configuré
Traitement des actions différées (« triggers ») pour postgresql-common (257.pgdg120+1) ...
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
  en_us
  fr
Removing obsolete dictionary files:
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u4) ...
Des erreurs ont été rencontrées pendant l'exécution :
 linux-image-6.1.0-18-amd64
 linux-image-amd64
 linux-headers-6.1.0-18-amd64
 linux-headers-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

苦情が何であるかを見て、catそれが指すログファイルを調べて、次のことを見つけました。
NVidiaカードドライバのコンパイルの問題:

  ld -m elf_x86_64 -z noexecstack --no-warn-rwx-segments   -r -o /var/lib/dkms/nvidia-current/525.147.05/build/nvidia-uvm.o @/var/lib/dkms/nvidia-current/525.147.05/build/nvidia-uvm.mod 
  {   echo /var/lib/dkms/nvidia-current/525.147.05/build/nvidia.ko;   echo /var/lib/dkms/nvidia-current/525.147.05/build/nvidia-uvm.ko;   echo /var/lib/dkms/nvidia-current/525.147.05/build/nvidia-modeset.ko;   echo /var/lib/dkms/nvidia-current/525.147.05/build/nvidia-drm.ko;   echo /var/lib/dkms/nvidia-current/525.147.05/build/nvidia-peermem.ko; :; } > /var/lib/dkms/nvidia-current/525.147.05/build/modules.order
sh /usr/src/linux-headers-6.1.0-18-common/scripts/modules-check.sh /var/lib/dkms/nvidia-current/525.147.05/build/modules.order
make -f /usr/src/linux-headers-6.1.0-18-common/scripts/Makefile.modpost
   sed 's/ko$/o/'  /var/lib/dkms/nvidia-current/525.147.05/build/modules.order | scripts/mod/modpost -m     -o /var/lib/dkms/nvidia-current/525.147.05/build/Module.symvers -e -i Module.symvers -T - 
ERROR: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__rcu_read_lock'
ERROR: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__rcu_read_unlock'
make[3]: *** [/usr/src/linux-headers-6.1.0-18-common/scripts/Makefile.modpost:126 : /var/lib/dkms/nvidia-current/525.147.05/build/Module.symvers] Erreur 1
make[2]: *** [/usr/src/linux-headers-6.1.0-18-common/Makefile:1991 : modpost] Erreur 2
make[2] : on quitte le répertoire « /usr/src/linux-headers-6.1.0-18-amd64 »
make[1]: *** [Makefile:250 : __sub-make] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-6.1.0-18-common »
make: *** [Makefile:82 : modules] Erreur 2

ここで何をすべきですか?

今コンピュータを再起動すると危険ですか?との
中間ではないですか?6.1.0-176.1.0-18

ベストアンサー1

Debianディストリビューションのnvidiaドライバを使用していると思います。 nvidiaドライバはまだ新しいLinuxカーネルと互換性がありません。

誰かがドライバカーネルモジュールのソースコードに3つのファイルのパッチを書きました。私のapt-getが破損してドライバをインストールできないため、まだこのパッチをテストしていません。

しかし、進行方法は次のとおりです。

最初のファイル:/usr/src/nvidia-current-525.147.05/common/inc/nv-linux.h

2000行に次の行を追加します。

#if defined(CONFIG_HAVE_ARCH_PFN_VALID) || LINUX_VERSION_CODE < KERNEL_VERSION(6,1,76)
#  define nv_pfn_valid pfn_valid
#else
/* pre-6.1.76 kernel pfn_valid version without GPL rcu_read_lock/unlock() */
static inline int nv_pfn_valid(unsigned long pfn)
{
        struct mem_section *ms;

        if (PHYS_PFN(PFN_PHYS(pfn)) != pfn)
                return 0;

        if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
                return 0;

        ms = __pfn_to_section(pfn);
        if (!valid_section(ms))
                return 0;

        return early_section(ms) || pfn_section_valid(ms, pfn);
}
#endif

2番目のファイル:/usr/src/nvidia-current-525.147.05/nvidia/nv-mmap.c

578行目で次のようpfn_validに置き換えます。nv_pfn_valid

3番目のファイル:/usr/src/nvidia-current-525.147.05/nvidia/os-mlock.c

116行目で次のようpfn_validに置き換えます。nv_pfn_valid

190行目から次のものpfn_validに置き換えます。nv_pfn_valid

もともと470.223.02用に書かれたパッチソースなので、行番号は私が言ったものとは異なります。協会

おすすめ記事