Micro-codes à répartir

Tags: #<Tag:0x00007f63f48af728>

Bonjour,
lors d’une installation de STRETCH, j’ai bien eu la détection des pilotes manquants en XXXXXXX.bin
Je n’ai pas pu les faire reconnaître/installer ni en paquet XXXXXX.deb, ni (à partir d’un XXXXX.deb ouvert )en XXXXXX.bin sur une clé USB.

Après l’installation de base, en modifiant les dépôts, j’ utilise :slight_smile:

$ apt search QCA9377

et

$ sudo apt-get install firmware-atheros

pour faire le job .

Or si je peux alors utiliser mon réseau Wi-fi, j’ai toujours un message d’erreur
au démarrage.

$ sudo dmesg | grep -iE 'firmware|microcode'

[    0.197566] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.568645] microcode: sig=0x406c4, pf=0x1, revision=0x40a
[    1.569303] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   11.822485] ath10k_pci 0000:02:00.0: firmware: failed to load ath10k/pre-cal-pci-0000:02:00.0.bin (-2)
[   11.822497] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:02:00.0.bin failed with error -2
[   11.822609] ath10k_pci 0000:02:00.0: firmware: failed to load ath10k/cal-pci-0000:02:00.0.bin (-2)
[   11.822618] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2
[   12.731292] ath10k_pci 0000:02:00.0: firmware: direct-loading firmware ath10k/QCA9377/hw1.0/firmware-5.bin
[   12.734440] ath10k_pci 0000:02:00.0: firmware ver WLAN.TF.1.0-00267-1 api 5 features ignore-otp crc32 79cea2c7
[   12.867076] ath10k_pci 0000:02:00.0: firmware: direct-loading firmware ath10k/QCA9377/hw1.0/board-2.bin

N’ai-je "rustiné " que le périphérique WI-FI ?

Les premières lignes concernent le microcode du processeur…est-ce lui qui demande
à son tour un “patch” ?

Si oui comment faire ?

Ces messages veulent-ils dire que l’installateur à choisi la meilleure version du microcode
adapté à mon noyau, mais qu’une partie matérielle de ma machine réclame une version
précédente ( la -2 ) ?
Je ne vais pas désosser ce portable, mais je promets de mieux choisir lanprochaine fois ;o)
Cela veut-il dire qu’il n’y a pas de compatibilité descendante entre les versions
successives du microcode/matériel ?
Cela donne une idée des difficultés des développeurs à intégrer de nouvelles fonctions
et la meilleure façon de les aider à évaluer les effets collatéraux , c’est bien de
rester dans un environnement libre .

Manifestement il faut les deux :

https://packages.debian.org/stretch/firmware-atheros

…
 * Qualcomm Atheros QCA9377 rev 1.0 board configuration, version 1
   (ath10k/QCA9377/hw1.0/board.bin)
 * Qualcomm Atheros QCA9377 rev 1.0 board configuration, version 2
   (ath10k/QCA9377/hw1.0/board-2.bin)
 * Qualcomm Atheros QCA9377 rev 1.0 firmware, version
   WLAN.TF.1.0-00267-1 (ath10k/QCA9377/hw1.0/firmware-5.bin)
…

Bonjour Jweber,

merci pour le lien…mais “manifestement” :wink: je gère mal l’installation.

$ apt search QCA9377 rev 1.0 
En train de trier... Fait
Recherche en texte intégral... Fait
firmware-atheros/stable,now 20161130-3 all  [installé]
  Binary firmware for Atheros wireless cards

veut bien dire que la version “rev 1.0” est comprise dans le paquet XXXXX-3 déjà installé ?

$ sudo apt-get install QCA9377 rev 1.0 

…
Note : sélection de gir1.2-gst-plugins-bad-1.0 pour l'expression rationnelle « 1.0 »
Note : sélection de gir1.2-appstreamglib-1.0 pour l'expression rationnelle « 1.0 »
Note : sélection de libghc-zxcvbn-c-prof-1.0.1-a4afc pour l'expression rationnelle « 1.0 »
Note : sélection de gir1.2-accounts-1.0 pour l'expression rationnelle « 1.0 »
Note : sélection de gir1.0-gupnp-1.0 pour l'expression rationnelle « 1.0 »
Note : sélection de libghc-convertible-dev-1.1.1.0-feefe pour l'expression rationnelle « 1.0 »
Note : sélection de gstreamer1.0-plugins-base-dbg pour l'expression rationnelle « 1.0 »
Note : sélection de libgom-1.0-common pour l'expression rationnelle « 1.0 »
Note : sélection de gir1.2-packagekitglib-1.0 pour l'expression rationnelle « 1.0 »
Note : sélection de libghc-conduit-combinators-dev-1.0.8.1-58180 pour l'expression rationnelle « 1.0 »
Note : sélection de libbson-1.0-0 pour l'expression rationnelle « 1.0 »
…

…Pour finir par :

…
Note : sélection de « libresult-ocaml » au lieu de « libresult-ocaml-k1z02 »
Note : sélection de « libresult-ocaml-dev » au lieu de « libresult-ocaml-dev-k1z02 »
Note : sélection de « libquantlib0v5 » au lieu de « libquantlib-1.0.0 »
Note : sélection de « notion » au lieu de « notion-api-3+2015061300 »
E: Impossible de trouver le paquet QCA9377
E: Impossible de trouver le paquet rev

Je veux bien comprendre que je devrais faire une installation progressive version 1 puis version 2…
mais est-ce compatible avec la version actuelle du noyau ?

$ sudo apt-get install ath10k/QCA9377/hw1.0/board-2.bin

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet ath10k/QCA9377/hw1.0
E: Couldn't find any package by glob 'ath10k/QCA9377/hw1.0'
E: Impossible de trouver de paquet correspondant à l'expression rationnelle « ath10k/QCA9377/hw1.0 »

Faute de syntaxe ?

Il y a bien une erreur de syntaxe, apt installe un paquet complet et le nom d’un paquet ne doit pas contenir d’espace :

sudo apt-get install firmware-atheros

Après… si le wifi fonctionne ce n’est déjà pas mal. Les erreurs de dmesg… je ne sais pas, peut-être dus à l’ordre de chargement des modules et des firmwares (qui sont un sacré bazar). Chez moi, sur un pc ultra classique (thinkpad), il me reste un message d’erreur sur le chargement d’un module qui pourtant fonctionne parfaitement (réglage de la luminosité de l’écran).

Ce sont des firmwares, pas des pilotes.
Ce sont les pilotes du noyau qui ont besoin des firmwares manquants qui le signalent.
Le noyau serait incapable de connaître les noms de pilotes manquants, car il ne connaît que ses propres pilotes (qui savent de quels firmwares ils ont besoin).

Tu n’as rien rustiné du tout. Tu as juste installé des firmwares nécessaires au fonctionnement de l’interface wifi.

Pas le premier, qui concerne le firmware (BIOS, UEFI) de la carte mère.

Lui qui ? Le processeur ? Non, il ne demande rien.
C’est juste un message du pilote de microcode gérant le microcode du processeur.

Il a utilisé la meilleure version de firmware disponible. -2 est juste le code d’erreur. Apparemment ce pilote ath10k_pci peut utiliser un firmware différent en fonction de la localisation PCI de la carte wifi.

Non, ça veut juste dire que la chaîne “QCA9377 rev 1.0” a été trouvée dans la description du paquet firmware-atheros.

Soupir…
Qu’est-ce qui t’a pris de lancer cette commande ? apt-get install attent des noms de paquets, pas des morceaux de description.

Il n’y a rien à comprendre ; tu as lancé une commande absurde, et le résultat est à la hauteur. apt-get a essayé de trouver des paquets dont le nom correspond au mieux à chaque argument passé.

Oui, ath10k/QCA9377/hw1.0/board-2.bin n’est pas un nom de paquet.

1 J'aime

Bonjour et bravo pour toutes ces précisions…qui devraient permettre d’éclaircir le

en ce qui concerne mon approche empirique et tâtonnante je ne peux que faire confiance aux messages de DMESG ,tenter de déchiffrer correctement ses retours ou plutôt de comprendre ce que les concepteurs de la commande ont tenté de traduire…

La difficulté majeure c’est de savoir où on se situe. Je ne trouve pas simple du tout de jongler entre les diverses définitions de “firmware” sur wikipédia, Dico-du-Net et autre Jargon-Français… pour avoir une représentation du fonctionnement de la machine.
Même le terme “matériel” prend un sens particulier en électronique.
Je passe sur les inévitables nuances anglo-saxonnes et je remercie les forums qui permettent au pire une position " d’auditeur libre" et au mieux des retours adaptés, circonstanciés…sur des systèmes libres et ouverts :relieved:

Certes mon wifi fonctionne mais j’ai envie de comprendre comment en “dialoguant” au mieux avec le matériel au moyen des commandes que je peux lancer…+ou- absurdement…mais peut-être moins que ce processeur…“qui ne demande rien”:face_with_monocle:

En espérant ne pas provoquer trop de soupirs :slight_smile:

C’est donc le noyau avec le pilote intégré adéquat qui se manifeste ?
Ce pilote est intégré entant que module?

Sinon il me semble bien que la commande DMESG bégaie plus loin en renvoyant plusieurs fois les tentatives de connexions d’autres protocoles…à moins qu’elle soit stupidement soumise à la persévérance du noyau ou d’un périphérique "résistant "…mais c’est un autre sujet…:exploding_head:

En conclusion ( provisoire) de ma question initiale, indépendamment des glissements de sens entre “micro-code” “firmware” , je viens préciser que quitte à étudier une commande comme DMESG …et son résultat, il vaut mieux rajouter l’option “-a” à TYPE pour bien préciser si la commande est interne au shell…mais avec AUSSI…une implémentation externe.

Quant à la commande DMESG qui m’a gratifié d’un affichage couleur (circonstancié pour les initiés ) j’ai eu la curiosité de la filtrer avec:

sudo dmesg | less -N

==>Perte des couleurs mais surtout apparition de 303 lignes supplémentaires en ouverture porteuses de beaucoup d’informations sur le démarrage et les attributions de mémoire.

Comment éviter les cachotteries ?

Par quels détours LESS a pu faire “parler” DMESG ?:mage:

Ma demande initiale concernant l’activation de mon périphérique Wi-fi, j’en profite pour signaler les renseignements fournis par “IW LIST”…autre “taupe” du système :zzz:

Perte des couleurs : dmesg n’envoie des codes couleur que s’il détecte que le terminal de sortie peut les interpréter (terminal couleur). Si la sortie standard est redirigée vers un fichier ou l’entrée d’un autre programme, qui n’est pas un terminal couleur, alors pas de codes couleur.

Taille de la sortie visible : probablement limitée par la profondeur du tampon du terminal. Les premières lignes ont défilé trop vite pour que tu puisses le voir et sont sorties du tampon, remplacées par les suivantes. Si c’est un terminal graphique virtuel de type xterm, regarde dans les réglage s’il y a une option pour augmenter la taille du tampon.