Fallait bien que je m’embrouille les pédales à un moment, avec tous ces modules et firmwares dans tous les sens…
Corrigé, merci.
[quote=“syam”]
Un firmware est un logiciel qui s’exécute sur le matériel lui-même. Par exemple dans le cas d’une carte wifi, tu as probablement un microcontrôleur sur la carte elle-même et c’est lui qui exécute le firmware et non pas ton processeur central (carte mère).
Les modules, eux, sont chargés par le noyau Linux et s’exécutent sur le processeur central. Un module ne peut donc pas être un firmware, mais il peut effectivement en contenir un, en plus du code du module lui-même. La différence peut paraître mince à première vue mais techniquement elle est importante.
Après, mon bout de script cherche simplement les firmwares externes à un module (autrement dit, présents dans un fichier séparé et non pas dans le module lui-même), il ne s’occupe pas qu’ils soient propriétaires ou open-source. Tu vas me dire, en pratique ça revient au même puisque les firmwares open-source sont directement intégrés dans les modules* et que seuls les firmwares propriétaires sont externalisés… Mais encore une fois ce n’est pas la même chose du point de vue technique : il n’y a pas si longtemps que ça beaucoup de firmwares propriétaires étaient encore inclus directement dans les modules, et mon script n’aurait pas pu les détecter puisqu’il ne sait distinguer que interne/externe et non pas libre/privateur.
Voilà, j’ai fini de pinailler sur les termes.
(*) À l’exception de ceux contenus dans [mono]firmware-linux-free[/mono] (à ma connaissance c’est le seul paquet contenant des firmwares libres).[/quote]
Merci, je comprends mieux.
Test sur un Dell Optiplex 740:
$ ./test-firmw.sh
Module tg3:
tigon/tg3_tso5.bin [PAS INSTALLÉ]
tigon/tg3_tso.bin [PAS INSTALLÉ]
tigon/tg3.bin [PAS INSTALLÉ]
La commande [mono]aptitude search ~ifirmware -F ‘%?p’[/mono] ne me renvoi rien…
Par contre, ma carte réseau “marche”… (je n’ai pas testé “au giga”, je n’ai pas “d’équipement” qui le supporte… mais en 10/100… aucun soucis)… merci au passage syam, j’avais pas de soucis avec cette machine, et toi, tu fais en sorte que j’en découvre…
édit: la machine en question est encore sous squeeze (à jour la squeeze, mais squeeze quand même… )
Y’a pas de quoi, ça me fait plaisir.
From my side :
./firmware.sh
Module r8169:
rtl_nic/rtl8168f-2.fw [firmware-realtek]
rtl_nic/rtl8168f-1.fw [firmware-realtek]
rtl_nic/rtl8105e-1.fw [firmware-realtek]
rtl_nic/rtl8168e-3.fw [firmware-realtek]
rtl_nic/rtl8168e-2.fw [firmware-realtek]
rtl_nic/rtl8168e-1.fw [firmware-realtek]
rtl_nic/rtl8168d-2.fw [firmware-realtek]
rtl_nic/rtl8168d-1.fw [firmware-realtek]
Carte Wi-Fi sur un Lenovo B590
La commande ne retourne rien non plus : [quote]aptitude search ~ifirmware -F '%?p’
zsh: no such user or named directory: ifirmware[/quote]
Y’a pas de quoi, ça me fait plaisir. [/quote]Salaud!!!
(faudra que je regarde ça un de ces 4… )
[quote=“M3t4linux”]La commande ne retourne rien non plus : [quote]aptitude search ~ifirmware -F ‘%?p’
zsh: no such user or named directory: ifirmware[/quote][/quote]
Sacré zsh. Avec les guillemets ça ira mieux : [mono]aptitude search ‘~ifirmware’ -F ‘%?p’[/mono]
[quote=“Num’s”]Salaud!!!
(faudra que je regarde ça un de ces 4… )[/quote]
Tu me connais, toujours prêt à rendre service.
Sinon, si tu tiens absolument à installer ces firmwares c’est dans [mono]firmware-linux-nonfree[/mono] (même sur squeeze : packages.debian.org/squeeze/firm … ux-nonfree voir à la fin de la liste). Enfin si ça marche déjà c’est pas forcément utile d’y toucher, mais fera pas de mal non plus.
Ah oui, pas eu le courage de corriger tiens
Du coup, aptitude search '~ifirmware' -F '%?p'
firmware-realtek
1
[quote=“syam”]Sinon, si tu tiens absolument à installer ces firmwares c’est dans firmware-linux-nonfree (même sur squeeze : packages.debian.org/squeeze/firm … ux-nonfree voir à la fin de la liste). Enfin si ça marche déjà c’est pas forcément utile d’y toucher, mais fera pas de mal non plus.[/quote]Oui, oui… ça, je sais… juste je ne sais pas si “au giga” ça tourne, m’étais jamais posé la question… faudra que j’essaie entre deux cartes gérant le giga avec un croisé (oui pas forcément besoin, mais bon… j’dois encore en avoir un dans un coin, du coup…)
Je viens de lancer le script avec succès sur une vieille machine de bureau utilisant le microcode proprio radeon (Wheezy + backports).
J’ai une autre machine de bureau plus récente à portée de main sur laquelle je l’essaierai tout à l’heure (version de Debian identique).
Je ne sais pas si ça vient de moi mas la sortie est pollué de mon coté :
~% cut -d ' ' -f 1 /proc/modules | while read -r MODULE ; do
pipe while> FIRMWARES="$(/sbin/modinfo -F firmware "$MODULE" 2>/dev/null)"
pipe while> if [ "$FIRMWARES" != "" ]; then
pipe while then> echo "Module $MODULE:"
pipe while then> echo "$FIRMWARES" | while read -r FIRMWARE ; do
pipe while then pipe while> PACKAGES="$(dpkg -S "/lib/firmware/$FIRMWARE" 2>/dev/null | cut -d ':' -f 1 | sort -u)"
pipe while then pipe while> [ "$PACKAGES" = "" ] && PACKAGES="PAS INSTALLÉ"
pipe while then pipe while> echo " $FIRMWARE ["$PACKAGES"]"
pipe while then pipe while> done
pipe while then> fi
pipe while> done
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
Module r8169:
zsh: exit 1
rtl_nic/rtl8168g-3.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168g-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8106e-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8106e-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8411-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8411-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8402-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168f-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168f-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8105e-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168e-3.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168e-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168e-1.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168d-2.fw [firmware-realtek]
zsh: exit 1
rtl_nic/rtl8168d-1.fw [firmware-realtek]
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
Module radeon:
zsh: exit 1
radeon/R520_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RS600_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RS690_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R420_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R300_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R200_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R100_cp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO2_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO2_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PALM_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PALM_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CYPRESS_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CYPRESS_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CYPRESS_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CYPRESS_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/JUNIPER_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/JUNIPER_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/JUNIPER_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/JUNIPER_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/REDWOOD_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/REDWOOD_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/REDWOOD_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/REDWOOD_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CEDAR_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CEDAR_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CEDAR_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CEDAR_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R700_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R600_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV710_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV710_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV710_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV740_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV730_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV730_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV730_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV770_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV770_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV770_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RS780_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RS780_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV670_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV670_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV635_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV635_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV620_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV620_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV630_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV630_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV610_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV610_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R600_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/R600_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/ARUBA_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/ARUBA_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/ARUBA_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAYMAN_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAYMAN_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAYMAN_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAYMAN_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAYMAN_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAICOS_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAICOS_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAICOS_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CAICOS_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TURKS_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TURKS_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TURKS_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TURKS_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BTC_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BARTS_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BARTS_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BARTS_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BARTS_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/HAINAN_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/OLAND_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/VERDE_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/PITCAIRN_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_smc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_uvd.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/TAHITI_uvd.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/SUMO_uvd.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/CYPRESS_uvd.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/RV710_uvd.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_sdma.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_mec.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/KABINI_pfp.bin [firmware-linux-nonfree]
radeon/KAVERI_sdma.bin [PAS INSTALLÉ]
radeon/KAVERI_rlc.bin [PAS INSTALLÉ]
radeon/KAVERI_mec.bin [PAS INSTALLÉ]
radeon/KAVERI_ce.bin [PAS INSTALLÉ]
radeon/KAVERI_me.bin [PAS INSTALLÉ]
radeon/KAVERI_pfp.bin [PAS INSTALLÉ]
radeon/BONAIRE_smc.bin [PAS INSTALLÉ]
zsh: exit 1
radeon/BONAIRE_sdma.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_rlc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_mc.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_mec.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_ce.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_me.bin [firmware-linux-nonfree]
zsh: exit 1
radeon/BONAIRE_pfp.bin [firmware-linux-nonfree]
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
zsh: exit 1
Il voie bien la carte graphique et la carte réseau mais pas pour le CPU (AMD64-microcode). Normal ?
Si tu as copié/collé le script directement dans ton terminal (ça semble être le cas) alors c’est pas étonnant : il est fait pour dash/bash pas pour zsh. C’est pour ça que je disais de passer par un fichier et le rendre exécutable.
Oui, le microcode CPU n’est pas géré par un module du noyau et donc il n’est pas détecté par cette méthode.
Sauf erreur de lecture de ma part, ce script affiche tous les firmwares susceptibles d’être utilisés par les modules chargés, et pas seulement les firmwares effectivement utilisés.
Quand un module est capable de gérer différents matériels utilisant chacun un firmware spécifique, il ne charge que le firmware nécessaire au fonctionnement du périphérique effectivement présent.
Le script ne renvoie rien sur un Esprimo Mobile de chez Fujitsu…
Vu que tout fonctionne WIFI inclus, je découvre avec joie que j’ai sous les mains un de ces trop rares portables où tout fonctionne avec du libre !
Installation d’une stable toute neuve sur un DD dédié à une seule chose : la videosurveillance avec ZoneMinder.
Au sujet de ce fil, après la mise à jour initiale, il m’envoie le classique warning :
: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
J’ai installé les dépots contrib et non-free mais je voudrais savoir lequel de ces paquets je dois installer ou si je dois les installer tous
Le script du début répond-il à ma demande ?
Parfois même sans le firmware non free, ça fonctionne quand même (interface réseau filaire).
Je me trompe ou ça ne concerne que le wifi ?
Si c’est ça, je n’en ai pas besoin car je pratique en filaire.
*_nic c’est pour une interface filaire.
Excuse-moi, je sais que je suis un énorme boulet mais :
Concrètement, que dois-je faire