web-dev-qa-db-fra.com

Signer le module du noyau iwlwifi pour SecureBoot

Après une mise à jour du noyau de Kubuntu 19.10 (c'est-à-dire via des mises à jour normales), le wifi a cessé de fonctionner et le pilote n'est plus chargé. J'ai essayé d'exécuter Sudo modprobe -v iwlwifi sans succès avec ce résultat:

insmod /lib/modules/5.3.0-24-generic/updates/dkms/compat.ko 
modprobe: ERROR: could not insert 'iwlwifi': Operation not permitted

Je pense que cela peut être dû à SecureBoot et au fait que je dois signer le module iwlwifi.

J'ai trouvé cet exemple pour signer des modules de noyau pour SecureBoot et l'ai essayé pour l'exemple VirtualBox montré ici. Cela a fonctionné pour VirtualBox. (Cela m'ennuyait depuis un moment que VirtualBox ne fonctionnait pas de toute façon.) Ensuite, j'ai essayé la même chose avec iwlwifi comme suit:

Sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n iwlwifi)

Mais cette fois, il n'y a eu aucun effet. Le message d'erreur ci-dessus ("Opération non autorisée") a persisté.

J'ai essayé de désactiver SecureBoot dans le BIOS, mais Kubuntu ne redémarrait plus. J'ai pu entrer le mot de passe, mais le bureau a été grisé et le système a gelé.

J'ai donc réactivé Secure Boot. Lors de la liste des mises à jour d'hier, grep " upgrade " /var/log/dpkg.log a donné, entre autres:

2019-12-07 09:47:31 upgrade backport-iwlwifi-dkms:all 7906-0ubuntu1 7906-0ubuntu2~19.10.1

Dans ma tentative de réparer les choses, j'ai désinstallé puis réinstallé backport-iwlwifi-dkms. Lors de la réinstallation, j'ai été guidé à travers le processus de signature du module pour Secure Boot. Cela semblait prometteur au départ, mais après un redémarrage, le système ne redémarrerait plus. Alors maintenant, je reçois un système de gel avec un bureau grisé avec ou sans Secure Boot activé. Cependant, je peux toujours démarrer dans la version précédente du noyau à partir du menu de démarrage.

Les rétroportages Eoan sont activés dans la liste des sources.

Dans la version précédente du noyau, dkms status donne la sortie suivante:

backport-iwlwifi, 7906, 5.3.0-24-generic, x86_64: installed (WARNING! Diff between built and installed module!)
virtualbox, 6.0.14, 5.3.0-23-generic, x86_64: installed
virtualbox, 6.0.14, 5.3.0-24-generic, x86_64: installed (WARNING! Diff between built and installed module!)

Et ls -al /lib/modules/*/updates/dkms donne la sortie suivante:

/lib/modules/5.3.0-23-generic/updates/dkms:
total 636
drwxr-xr-x 2 root root   4096 Dec  8 15:33 .
drwxr-xr-x 3 root root   4096 Nov 15 09:06 ..
-rw-r--r-- 1 root root 547635 Nov 15 09:06 vboxdrv.ko
-rw-r--r-- 1 root root  15523 Nov 15 09:06 vboxnetadp.ko
-rw-r--r-- 1 root root  38803 Nov 15 09:06 vboxnetflt.ko
-rw-r--r-- 1 root root  36331 Nov 15 09:06 vboxpci.ko

/lib/modules/5.3.0-24-generic/updates/dkms:
total 4408
drwxr-xr-x 2 root root    4096 Dec  8 15:37 .
drwxr-xr-x 3 root root    4096 Dec  7 09:49 ..
-rw-r--r-- 1 root root 1124323 Dec  8 15:37 cfg80211.ko
-rw-r--r-- 1 root root    7227 Dec  8 15:37 compat.ko
-rw-r--r-- 1 root root  684483 Dec  8 15:37 iwlmvm.ko
-rw-r--r-- 1 root root  676194 Dec  8 12:29 iwlwifi.ko
-rw-r--r-- 1 root root   82699 Dec  8 15:37 iwlxvt.ko
-rw-r--r-- 1 root root 1272979 Dec  8 15:37 mac80211.ko
-rw-r--r-- 1 root root  548088 Dec  8 12:06 vboxdrv.ko
-rw-r--r-- 1 root root   15523 Dec  7 09:49 vboxnetadp.ko
-rw-r--r-- 1 root root   38803 Dec  7 09:49 vboxnetflt.ko
-rw-r--r-- 1 root root   36331 Dec  7 09:49 vboxpci.ko

Edit : @heynnema m'a demandé de publier la sortie de plusieurs commandes dans le cadre de sa réponse ci-dessous:

Étape 3:

ls -al /etc/modprobe.d:

total 60
drwxr-xr-x   2 root root  4096 Dec  5 13:52 .
drwxr-xr-x 143 root root 12288 Dec  7 09:49 ..
-rw-r--r--   1 root root  2507 Jul 31  2015 alsa-base.conf
-rw-r--r--   1 root root   154 Aug  1 02:54 AMD64-microcode-blacklist.conf
-rw-r--r--   1 root root   325 Apr 30  2019 blacklist-ath_pci.conf
-rw-r--r--   1 root root  1518 Apr 30  2019 blacklist.conf
-rw-r--r--   1 root root   210 Apr 30  2019 blacklist-firewire.conf
-rw-r--r--   1 root root   677 Apr 30  2019 blacklist-framebuffer.conf
-rw-r--r--   1 root root   156 Jul 31  2015 blacklist-modem.conf
lrwxrwxrwx   1 root root    41 Oct 31 12:22 blacklist-oss.conf -> /lib/linux-sound-base/noOSS.modprobe.conf
-rw-r--r--   1 root root   583 Apr 30  2019 blacklist-rare-network.conf
-rw-r--r--   1 root root   127 Oct  3 10:38 dkms.conf
-rw-r--r--   1 root root   154 Sep 30 19:37 intel-microcode-blacklist.conf
-rw-r--r--   1 root root   347 Apr 30  2019 iwlwifi.conf

more /etc/modprobe.d/iwlwifi.conf:

# /etc/modprobe.d/iwlwifi.conf
# iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
# microcode file installed on the system.  When removing iwlwifi, first
# remove the iwl?vm module and then iwlwifi.
remove iwlwifi \
(/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
&& /sbin/modprobe -r mac80211

dkms status ne montre rien. ls -al /lib/modules/*/updates/dkms:

total 8
drwxr-xr-x 2 root root 4096 Dec  8 17:25 .
drwxr-xr-x 3 root root 4096 Dec  7 09:49 ..

Sudo lshw -C network:

  *-network:0 UNCLAIMED     
       description: Network controller
       product: Cannon Point-LP CNVi [Wireless-AC]
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       version: 30
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix cap_list
       configuration: latency=0
       resources: memory:c9738000-c973bfff
  *-network:1
       description: Ethernet interface
       product: Ethernet Connection (6) I219-LM
       vendor: Intel Corporation
       physical id: 1f.6
       bus info: pci@0000:00:1f.6
       logical name: enp0s31f6
       version: 30
       serial: 98:fa:9b:d4:56:64
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.4-3 ip=192.168.1.213 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       resources: irq:147 memory:c9700000-c971ffff

Étape 4:

Désinstaller et réinstaller virtualbox (comme virtualbox-6.0 n'existait pas). Les deux commandes restantes de l'étape 4 ne renvoient rien.

Étape 5:

ls -al /lib/modules/5.3.0-24-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko:

-rw-r--r-- 1 root root 640985 Nov 13 22:41 /lib/modules/5.3.0-24-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko

modinfo iwlwifi:

filename:       /lib/modules/5.3.0-24-generic/updates/dkms/iwlwifi.ko
modinfo: ERROR: could not get modinfo from 'iwlwifi': No such file or directory

dpkg -l *virtualbox*:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version       Architecture Description
+++-==============================-=============-============-============================================================
ii  virtualbox                     6.0.14-dfsg-1 AMD64        x86 virtualization solution - base binaries
un  virtualbox-2.0                 <none>        <none>       (no description available)
un  virtualbox-2.1                 <none>        <none>       (no description available)
un  virtualbox-2.2                 <none>        <none>       (no description available)
un  virtualbox-3.0                 <none>        <none>       (no description available)
un  virtualbox-3.1                 <none>        <none>       (no description available)
un  virtualbox-3.2                 <none>        <none>       (no description available)
un  virtualbox-4.0                 <none>        <none>       (no description available)
un  virtualbox-4.1                 <none>        <none>       (no description available)
un  virtualbox-4.2                 <none>        <none>       (no description available)
un  virtualbox-4.3                 <none>        <none>       (no description available)
un  virtualbox-5.0                 <none>        <none>       (no description available)
un  virtualbox-5.1                 <none>        <none>       (no description available)
un  virtualbox-5.2                 <none>        <none>       (no description available)
un  virtualbox-6.0                 <none>        <none>       (no description available)
ii  virtualbox-dkms                6.0.14-dfsg-1 all          x86 virtualization solution - kernel module sources for dkms
un  virtualbox-guest-additions-iso <none>        <none>       (no description available)
un  virtualbox-guest-dkms          <none>        <none>       (no description available)
un  virtualbox-guest-modules       <none>        <none>       (no description available)
un  virtualbox-modules             <none>        <none>       (no description available)
ii  virtualbox-qt                  6.0.14-dfsg-1 AMD64        x86 virtualization solution - Qt based user interface
un  virtualbox-source              <none>        <none>       (no description available)

cat /etc/network/interfaces:

cat: /etc/network/interfaces: No such file or directory

cat /etc/netplan/*.yaml:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

Étape 6:

VirtualBox ne peut pas être ouvert. Message d'erreur:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please reinstall virtualbox-dkms package and load the kernel module by executing

'modprobe vboxdrv'

as root.

If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

Activé les rétroportages, voulu réinstaller backport-iwlwifi-dkms, mais il était déjà là. J'ai cliqué sur re-install. Après ça, dkms status revenu backport-iwlwifi, 7906, 5.3.0-24-generic, x86_64: installed. Sortie de Sudo lshw -C network:

  *-network:0               
       description: Network controller
       product: Cannon Point-LP CNVi [Wireless-AC]
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       version: 30
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list
       configuration: driver=iwlwifi latency=0
       resources: irq:16 memory:c9738000-c973bfff
  *-network:1
       description: Ethernet interface
       product: Ethernet Connection (6) I219-LM
       vendor: Intel Corporation
       physical id: 1f.6
       bus info: pci@0000:00:1f.6
       logical name: enp0s31f6
       version: 30
       serial: 98:fa:9b:d4:56:64
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.4-3 ip=192.168.1.213 latency=0 lin
       resources: irq:147 memory:c9700000-c971ffff

ls -al /lib/modules/*/updates/dkms:

total 3776
drwxr-xr-x 2 root root    4096 Dec  8 18:48 .
drwxr-xr-x 3 root root    4096 Dec  7 09:49 ..
-rw-r--r-- 1 root root 1124323 Dec  8 18:48 cfg80211.ko
-rw-r--r-- 1 root root    7227 Dec  8 18:48 compat.ko
-rw-r--r-- 1 root root  684483 Dec  8 18:48 iwlmvm.ko
-rw-r--r-- 1 root root  674835 Dec  8 18:48 iwlwifi.ko
-rw-r--r-- 1 root root   82699 Dec  8 18:48 iwlxvt.ko
-rw-r--r-- 1 root root 1272979 Dec  8 18:48 mac80211.ko
1
Philip Leifeld

Étape 1

Démarrez avec le noyau précédent.

Désactivez au moins temporairement le dépôt backports et mettez à jour les bases de données logicielles.

Dans terminal...

Sudo dkms remove backport-iwlwifi/7906 --all # supprimer le pilote dkms

Sudo dkms remove virtualbox/6.0.14 --all # supprimer le pilote dkms

dkms status # ne devrait rien montrer

ls -al /lib/modules/*/updates/dkms # recontrôle les répertoires dkms

Démarrez avec le noyau plus récent et vérifiez si le wifi fonctionne à nouveau.


Étape 2

Sudo rm -i /lib/modules/5.3.0-24-generic/updates/dkms/iwlwifi.ko

Sudo rm -i /lib/modules/5.3.0-24-generic/updates/dkms/vboxdrv.ko

ls -al /lib/modules/*/updates/dkms # ne devrait rien montrer

reboot # redémarrer le système

revérifiez le wifi.


Étape 3

ls -al /etc/modprobe.d # montre-moi les fichiers conf

more /etc/modprobe.d/iwlwifi.conf # montre moi

dkms status # ne devrait rien être

ls -al /lib/modules/*/updates/dkms # ne devrait rien montrer

Sudo lshw -C network # me montrer la configuration du réseau


Étape 4

Sudo apt-get remove virtualbox # désinstaller VB

Sudo apt-get install virtualbox # réinstaller VB

dkms status # montre moi

ls -al /lib/modules/*/updates/dkms # montre moi


Étape # 5

ls -al /lib/modules/5.3.0-24-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko # montrez-moi le module du noyau iwlwifi original

modinfo iwlwifi # Informations sur le module du noyau

dpkg -l *virtualbox* # montre moi

cat /etc/network/interfaces # montre moi

cat /etc/netplan/*.yaml # montre moi


Étape # 6

Maintenant ... pour aller courageusement de l'avant ...

dkms status # devrait afficher virtualbox, sans erreur

Essayez Virtualbox et assurez-vous que cela fonctionne.

Réactivez le dépôt de rétroportage et mettez à jour la base de données logicielle.

Courir Software Updater # réinstaller backport-iwlwifi-dkms

Ne signez pas le module iwlwifi pour l'instant.

dkms status # montre moi encore

Sudo lshw -C network # montre moi encore

ls -al /lib/modules/*/updates/dkms # montre moi encore

retester le wifi


Final...

  • démarré sur le noyau antérieur, fonctionnel

  • nous avons désinstallé le backport-iwlwifi module du noyau dkms

  • redémarré au noyau -24

  • supprimés et réinstallés virtualbox et virtualbox-dkms

  • a re-signé les modules du noyau virtualbox

  • wifi et virtualbox fonctionnent tous les deux maintenant

1
heynnema