web-dev-qa-db-ja.com

SecureBootのiwlwifiカーネルモジュールに署名する

Kubuntu 19.10のカーネルアップデート後(つまり、通常のアップデートによる)、wifiが機能しなくなり、ドライバーが読み込まれなくなりました。 Sudo modprobe -v iwlwifiを実行しようとしましたが、次の結果で失敗しました:

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

これはSecureBootと、iwlwifiモジュールに署名する必要があるという事実が原因であると考えています。

SecureBootのカーネルモジュールに署名するための this の例を見つけ、そこに示されているVirtualBoxの例で試しました。これはVirtualBoxで機能しました。 (しばらくの間、VirtualBoxが機能しないことに悩みました。)次に、iwlwifiを使用して次のように同じことを試しました。

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

しかし、今回は効果がありませんでした。上記のエラーメッセージ(「操作は許可されていません」)が引き続き表示されます。

BIOSでSecureBootを無効にしてみましたが、Kubuntuが起動しなくなりました。パスワードを入力することはできましたが、デスクトップがグレー表示され、システムがフリーズしました。

そこで、セキュアブートをオンに戻しました。昨日の更新をリストすると、とりわけgrep " upgrade " /var/log/dpkg.logが生成されました。

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

物事を修正するために、私はbackport-iwlwifi-dkmsをアンインストールしてから再インストールしました。再インストール中に、セキュアブート用のモジュールに署名するプロセスを案内されました。これは最初は有望に見えましたが、再起動後、システムは起動しなくなりました。したがって、セキュアブートがアクティブ化されているかどうかにかかわらず、デスクトップがグレー表示されたフリーズシステムを取得しています。ただし、ブートメニューから以前のバージョンのカーネルを起動することはできます。

Eoanバックポートはソースリストで有効になっています。

以前のカーネルバージョンでは、dkms statusは次の出力を生成します。

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!)

そしてls -al /lib/modules/*/updates/dkmsは次の出力を生成します:

/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は、以下の回答の一部としていくつかのコマンドの出力を投稿するように求めました:

ステップ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は何も表示しません。 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

ステップ4:

virtualboxをアンインストールして再インストールしました(virtualbox-6.0が存在しなかったため)。手順4の残りの2つのコマンドは何も返しません。

ステップ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

ステップ6:

VirtualBoxを開けません。エラーメッセージ:

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.

バックポートを有効にし、backport-iwlwifi-dkmsを再インストールしたかったのですが、すでにそこにありました。 re-installをクリックしました。その後、dkms statusbackport-iwlwifi, 7906, 5.3.0-24-generic, x86_64: installedを返しました。 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

ステップ1

以前のカーネルで起動します。

少なくとも一時的にバックポートリポジトリを無効にし、ソフトウェアデータベースを更新します。

terminal...

Sudo dkms remove backport-iwlwifi/7906 --all#dkmsドライバを削除

Sudo dkms remove virtualbox/6.0.14 --all#dkmsドライバを削除

dkms status#何も表示しない

ls -al /lib/modules/*/updates/dkms#dkmsディレクトリを再確認

新しいカーネルで起動し、wifiが再び機能するかどうかを確認します。


ステップ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#何も表示しない

reboot#システムを再起動します

wifiを再確認してください。


ステップ#3

ls -al /etc/modprobe.d#confファイルを表示

more /etc/modprobe.d/iwlwifi.conf#見せて

dkms status#は何でもない

ls -al /lib/modules/*/updates/dkms#何も表示しない

Sudo lshw -C network#ネットワーク構成を表示


ステップ#4

Sudo apt-get remove virtualbox#VBをアンインストール

Sudo apt-get install virtualbox#VBを再インストール

dkms status#見せて

ls -al /lib/modules/*/updates/dkms#見せて


ステップ#5

ls -al /lib/modules/5.3.0-24-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko#オリジナルのiwlwifiカーネルモジュールを表示

modinfo iwlwifi#カーネルモジュール情報

dpkg -l *virtualbox*#見せて

cat /etc/network/interfaces#見せて

cat /etc/netplan/*.yaml#見せて


ステップ#6

さて...勇敢に前進するために...

dkms status#エラーなしでvirtualboxが表示されます

Virtualboxを試して、機能することを確認します。

バックポートリポジトリを再度有効にし、ソフトウェアデータベースを更新します。

Software Updaterを実行します#backport-iwlwifi-dkmsを再インストールします

現時点では、iwlwifiモジュールに再署名しないでください。

dkms status#もう一度表示

Sudo lshw -C network#もう一度表示

ls -al /lib/modules/*/updates/dkms#もう一度表示

wi-Fiを再テストする


最後の...

  • 以前の動作しているカーネルで起動

  • backport-iwlwifi dkmsカーネルモジュールをアンインストールしました

  • -24カーネルで再起動

  • 削除して再インストールしたvirtualboxおよびvirtualbox-dkms

  • virtualboxカーネルモジュールに再署名

  • wifiとvirtualboxの両方が現在機能しています

1
heynnema