web-dev-qa-db-ja.com

ワイヤレスカードに使用するファームウェアを変更するにはどうすればよいですか

iwlwifiドライバーを搭載したIntel 8260ワイヤレスカードのファームウェアを更新しようとしています。 /lib/firmware/には、とりわけ次のファイルがあります。

iwlwifi-8000C-16.ucode    (version 16.242414.0)
iwlwifi-8000C-22.ucode    (version 22.361476.0)

(これらのファイルのバージョンを識別するために https://packages.debian.org/sid/firmware-iwlwifi の情報を使用しました)。

lshwは、現在のファームウェアがバージョン16.242414.0であることを示します。バージョン22.361476.0が使用されるように変更するにはどうすればよいですか?

4
PiotrChernin

要求されたファームウェアバージョンは、ドライバーコードに書き込まれます。ご覧のとおり、iwlwifiを使用している特定のバージョンは、ファームウェアを要求します。いくつかの異なるucodeファイルを/lib/firmwareにロードすると、ドライバーは必要に応じて作成されたバージョンを呼び出します。

注:場合によっては、ドライバーコードが必要とするものと実際にロードするものとの間に不一致があります。

Iwlwifiの新しいバージョンをインストールできます。一般的に、これは新しいUbuntuバージョンをインストールすることで行われます。 Ubuntu 17.04では、modinfo iwlwifiのコメント:

filename:       /lib/modules/4.10.0-22-generic/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko
license:        GPL
author:         Copyright(c) 2003- 2015 Intel Corporation <[email protected]>
description:    Intel(R) Wireless WiFi driver for Linux
<snip>
firmware:       iwlwifi-8000C-26.ucode
<snip>

対応するlinux-firmwareパッケージには、-13、-16、-21が含まれます。 -26ではありません!

もちろん、ファームウェアをアップグレードできます。いずれの場合でも、ドライバーは、必要に応じて書き込まれたファームウェアファイルをロードします。多くの場合、ドライバーはいくつかのバージョンのいずれかを使用するように作成されます。たとえば、-6、-7、-8、-9。ドライバーは、/lib/firmwareで見つけることができる最新のものを探し、それが見つからない場合は、次の最新のものを読み込みます。上記の「たとえば」で、最新のファームウェアパッケージに-6、-7、-8、-9、-10が含まれている場合、害はありません。ドライバーは、書き込まれた最新のものと最新のものを単にロードし、残りは無視します。 -10はロードされません。

アップグレードするには:

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb
Sudo dpkg -i linux*.deb

新しいファームウェアをロードしたいという要望がワイヤレスの問題に起因している場合、私たちはそれを聞いて助けようとしています。

1
chili555