Salut,
J’ai fait un petit bout de script pour détecter les firmwares utilisés sur une Debian (et les paquets associés), j’aimerais avoir un peu d’aide pour le tester.
Le point important est : seuls les modules actuellement chargés par le noyau sont pris en compte. Par exemple sur mon netbook (ma seule machine qui a besoin de firmwares), le script ne liste rien jusqu’à ce que j’insère une carte SD dans le lecteur pour forcer le chargement du module correspondant. Une fois le module chargé j’obtiens :
Module ums_eneub6250:
ene-ub6250/ms_rdwr.bin [firmware-linux-nonfree]
ene-ub6250/msp_rdwr.bin [firmware-linux-nonfree]
ene-ub6250/ms_init.bin [firmware-linux-nonfree]
ene-ub6250/sd_rdwr.bin [firmware-linux-nonfree]
ene-ub6250/sd_init2.bin [firmware-linux-nonfree]
ene-ub6250/sd_init1.bin [firmware-linux-nonfree]
Si je désinstalle [mono]firmware-linux-nonfree[/mono] :
Module ums_eneub6250:
ene-ub6250/ms_rdwr.bin [PAS INSTALLÉ]
ene-ub6250/msp_rdwr.bin [PAS INSTALLÉ]
ene-ub6250/ms_init.bin [PAS INSTALLÉ]
ene-ub6250/sd_rdwr.bin [PAS INSTALLÉ]
ene-ub6250/sd_init2.bin [PAS INSTALLÉ]
ene-ub6250/sd_init1.bin [PAS INSTALLÉ]
Voici donc le script, à copier/coller dans un fichier, rendre exécutable ([mono]chmod +x FICHIER[/mono]) et lancer en tant que simple utilisateur :
#!/bin/sh
cut -d ' ' -f 1 /proc/modules | while read -r MODULE ; do
FIRMWARES="$(/sbin/modinfo -F firmware "$MODULE" 2>/dev/null)"
if [ "$FIRMWARES" != "" ]; then
echo "Module $MODULE:"
echo "$FIRMWARES" | while read -r FIRMWARE ; do
PACKAGES="$(dpkg -S "/lib/firmware/$FIRMWARE" 2>/dev/null | cut -d ':' -f 1 | sort -u)"
[ "$PACKAGES" = "" ] && PACKAGES="PAS INSTALLÉ"
echo " $FIRMWARE ["$PACKAGES"]"
done
fi
done
Ça serait sympa si vous pouviez le tester sur un maximum de machines différentes voir s’il est fiable. Dans la mesure du possible, vérifiez qu’il liste bien tous les firmwares correspondant à votre matériel, en n’oubliant pas d’utiliser ledit matériel avant (exemple de mon lecteur SD qui a besoin que j’insère une carte SD pour être chargé).
Vous pouvez aussi voir quels paquets de firmwares sont installés sur votre machine à l’aide de : [mono]aptitude search ‘~ifirmware’ -F ‘%?p’[/mono]
Merci d’avance pour votre aide.
PS: Si vous voulez coller le résultat ici ça me gêne pas (ça permettra de voir un peu les matériels les plus communs), mais c’est pas obligé non plus du moment que vous validez (ou invalidez, mais j’espère pas) le fonctionnement du script.