Question Comment changer le micrologiciel utilisé pour ma carte sans fil


J'essaie de mettre à jour le firmware de ma carte sans fil, un Intel 8260 avec le iwlwifi chauffeur. /lib/firmware/ a les fichiers suivants, entre autres:

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

(J'ai utilisé l'information à https://packages.debian.org/sid/firmware-iwlwifi identifier les versions de ces fichiers).

lshw montre que le firmware actuel est la version 16.242414.0. Comment le changer pour que la version 22.361476.0 soit utilisée?


4
2018-06-02 20:21


origine


Pourquoi utilisez-vous des paquets Debian sur Ubuntu? Est-ce que 22.361476.0 charge / travaille? Je suggère de supprimer 16.242414.0 comme solution la plus simple (en supposant que 22.361476.0 fonctionne). - Panther
Pour les autres, je pense que vous essayez finalement d'utiliser la réponse ici résoudre ton problème - Zanna
@Zanna je suis d'accord. Le dernier paquet est maintenant ceci: mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/… - chili555
@ bodhi.zazen - Je n'utilise pas les paquets debian, je me contente d'utiliser cette page comme référence. Je pense que le reste de vos commentaires est exactement ce que j'essaie d'apprendre en premier lieu. Je ne sais pas ce que tu veux dire par eux. - PiotrChernin
sudo apt-get purge iwlwifi puis installez la version que vous voulez avec apt-get ou à partir de .deb - Panther


Réponses:


La version du micrologiciel demandée est écrite dans le code du pilote. Comme vous pouvez le voir, la version particulière si iwlwifi que vous utilisez des demandes de microprogramme -16. Vous pouvez charger plusieurs fichiers ucode différents dans /lib/firmware et le pilote appellera la version pour laquelle il a été écrit.

REMARQUE: Dans certains cas, il existe une incompatibilité entre ce que le code du pilote semble exiger et ce qui est réellement chargé.

Vous pouvez installer une version ultérieure de iwlwifi; En général, cela se fait en installant une version Ubuntu plus récente. Dans Ubuntu 17.04, modinfo iwlwifi dit:

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 <linuxwifi@intel.com>
description:    Intel(R) Wireless WiFi driver for Linux
<snip>
firmware:       iwlwifi-8000C-26.ucode
<snip>

Le correspondant linux-firmware le paquet contient -13, -16 et -21; mais pas -26!

Vous pouvez certainement mettre à jour votre firmware. Dans tous les cas, le pilote chargera le fichier de firmware dont il a besoin pour écrire. Dans de nombreux cas, le pilote sera écrit pour utiliser plusieurs versions; par exemple, -6, -7, -8 ou -9. Le pilote recherche le plus récent qu'il peut trouver dans /lib/firmware et, si elle ne parvient pas à le trouver, charge le plus récent et ainsi de suite. Dans l'exemple ci-dessus, si le dernier progiciel contient -6, -7, -8, -9 et -10, aucun dommage ne sera causé. Le pilote charge simplement le fichier le plus récent et le plus récent pour lequel il est écrit et ignore le reste. -10 ne chargera pas.

Pour mettre à jour les vôtres:

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

Si votre désir de charger un nouveau micrologiciel est motivé par un problème de réseau sans fil, nous aimerions l'entendre et essayer de l'aider.


1
2018-06-09 00:00



Merci beaucoup! Je peux voir que j'ai mal compris plusieurs choses. J'essayais de suivre la première réponse à ce question, qui commence par la mise à niveau du firmware. Il semble que je ne puisse plus mettre à niveau mon firmware sans passer à une nouvelle version, est-ce exact? - PiotrChernin
Donc, la sortie de lshw montre la version du firmware que le pilote a besoin, pas celui qu'il utilise actuellement? Dans ce cas, comment un microprogramme a-t-il déjà été mis à niveau sans mettre à niveau le pilote lui-même? - PiotrChernin
S'il vous plaît voir mon édition ci-dessus dans quelques instants. lshw montre la version qui a chargé, comme le fait dmesg | grep iwl - chili555
Il y a encore quelque chose que je ne comprends pas. Si le pilote nécessite une version spécifique, alors comment puis-je mettre à niveau le micrologiciel? Il continuera à utiliser la version pour laquelle il a été écrit, peu importe la façon dont la version utilise la version 16, même si la version 22 est disponible. - PiotrChernin
Donc, cette compréhension est correcte: modprobe <drivername> montre quelle est la version du firmware Champs obligatoires; lshw et dmesg fournir la version du firmware qui chargé; les deux sont presque toujours les mêmes, sauf dans de rares cas. (?) - PiotrChernin