mardi 26 mai 2015

Possible missing firmware for module tg3

Cette pas n'est pas un scoop, puisqu'il y a plusieurs articles sur internet qui traitent du même sujet.

Dans ce blog, je vais passer par toutes les étapent qui me permettront de comprendre d'où vient problème, ainsi pour arriver à une résolution.

1. Reproduire les différentes étapes qui conduisent au message d'erreur


$ sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64
W: Possible missing firmware /lib/firmware/tigon/tg3_tso5.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3_tso.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3

Le message dit clairement qu'il manque un pilote. Mais de quel pilote s'agit-il? Nous le saurons plus loin.

2. Les paquets utiles


Avant d'aller plus loin, je vous propose d'installer le paquet apt-file. Cet outil va nous permettre de retrouver à quel paquet appartient un fichier (ici pour la documentation en français).

Les fichiers concernés sont: tg3_tso5.bin, tg3_tso.bin et tg3.bin.

$ sudo apt-get install apt-file

!----message tronqué---!The following extra packages will be installed:
  libapt-pkg-perl libconfig-file-perl liblist-moreutils-perl
  libregexp-assemble-perl
The following NEW packages will be installed:
  apt-file libapt-pkg-perl libconfig-file-perl liblist-moreutils-perl
  libregexp-assemble-perl
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 252 kB of archives.
After this operation, 698 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
!----message tronqué---!The system-wide cache is empty. You may want to run 'apt-file update'
as root to update the cache. You can also run 'apt-file update' as
normal user to use a cache in the user's home directory.

$ apt-file search tg3

E: The cache is empty. You need to run 'apt-file update' first.

Et oui, on général on se précipite pour aller à l'étape suivante, heureusement qu'il y a un message qui nous indique ce qu'on devrait faire dans un premier temps.

$ apt-file update

apt-file is now using the user's cache directory.
If you want to switch back to the system-wide cache directory,
 run 'apt-file purge'
Downloading complete file http://ftp.ie.debian.org/debian/dists/jessie/main/Contents-amd64.gz
!----message tronqué---!

3. A la recherche du ou des paquets à installer


$ apt-file search tg3

aegis-web: /usr/share/aegis/en/html/proj_hstg3.rpt
allegro4-doc: /usr/share/man/man3/getg32.3alleg4.gz
firmware-linux-nonfree: /lib/firmware/tigon/tg3.bin
firmware-linux-nonfree: /lib/firmware/tigon/tg357766.bin
firmware-linux-nonfree: /lib/firmware/tigon/tg3_tso.bin
firmware-linux-nonfree: /lib/firmware/tigon/tg3_tso5.bin
gitg: /usr/share/gitg/icons/gitg32x32.png
libgivaro-dev: /usr/include/givaro/givmontg32.h
libgivaro-dev: /usr/include/givaro/givmontg32.inl
libgivaro-doc: /usr/share/doc/libgivaro-doc/givmontg32_8h.html
libgivaro-doc: /usr/share/doc/libgivaro-doc/givmontg32_8h__incl.map
libgivaro-doc: /usr/share/doc/libgivaro-doc/givmontg32_8h__incl.md5
libgivaro-doc: /usr/share/doc/libgivaro-doc/givmontg32_8h__incl.png
linux-headers-3.16.0-4-common: /usr/src/linux-headers-3.16.0-4-common/include/linux/iio/gyro/itg3200.h
linux-image-3.16.0-4-amd64: /lib/modules/3.16.0-4-amd64/kernel/drivers/net/ethernet/broadcom/tg3.ko
linux-image-3.16.0-4-amd64-dbg: /usr/lib/debug/lib/modules/3.16.0-4-amd64/kernel/drivers/net/ethernet/broadcom/tg3.ko
noiz2sa-data: /usr/share/games/noiz2sa/sounds/stg3.ogg
tumiki-fighters-data: /usr/share/games/tumiki-fighters/stage/stg3.stg
ugene-data: /usr/share/ugene/data/position_weight_matrix/UniPROBE/GR09/Rtg3.pwm

Le pilote qui nous intéresse est un pilote non libre (non free) et, est contenu dans le paquet firmware_linux_nonfree. Cependant, cette information, bien qu'elle soit suffisante pour installer ce qu'il nous faut, ne nous dit pas à quel matériel s'applique le pilote.

4. Information sur le paquet à installer


Pour avoir plus d'information concernant le contenu du paquet firmware-linux-nonfree,

$ aptitude show firmware-linux-nonfree
Package: firmware-linux-nonfree         
State: not installed

Multi-Arch: foreign
!----message tronqué---!
Description: Binary firmware for various drivers in the Linux kernel
 This package contains the binary firmware for  various drivers in the Linux
 kernel.  This is a collection of firmware blobs which are not individually
 large enough to warrant a standalone package.
 !----message tronqué---!

On a la confirmation que ce paquet n'est pas installé. Dans la description, il est indiqué que ce paquet contient une collection de pilotes. Ces derniers sont trop petit en taille pour avoir un paquet attribué pour chacun d'eux.

En limitant la recherche par rapport à tg3,

$ aptitude show firmware-linux-nonfree | grep tg3

 * Broadcom BCM5703/BCM5704 TSO firmware (tigon/tg3_tso.bin)
 * Broadcom BCM5701A0 firmware (tigon/tg3.bin)
 * Broadcom BCM5705 TSO firmware (tigon/tg3_tso5.bin)
 * Broadcom BCM57766 firmware (tigon/tg357766.bin)

Nous avons finalement l'information qui nous intéresse. Le pilote manquant est celui de la carte ethernet.



Ce qui est tout à fait normal, puisque je n'ai installé que le pilote de la carte Wifi lors de l'installation de Debian.

5. Résolution


De ce fait, pour résoudre ce problème, nous n'allons pas installer le paquet spécifique à la carte ethernet, puisqu'il n'y en a pas. Par contre, on nous propose d'installer le paquet firmware-linux-nonfree.

Pour rappel, ce paquet contient tous les pilotes non libre. En l'installant, nous allons avoir sur notre système, les pilotes qui nous concernent aussi bien que ceux qui ne nous concernent pas. Notez aussi que, "Non free" être présent dans votre sources.list, comme dans l'exemple ci-dessous, pour pouvoir ensuite installer ce paquet.

deb http://site.example.com/debian distribution  main non-free contrib

Maintenant, on peut se lancer dans l'installation de ce fameux paquet dont on n'arrête pas d'en parler depuis le début.

$ sudo apt-get install firmware-linux-nonfree

Pour vérifier que le paquet a bien été installé.

$ sudo aptitude show firmware-linux-nonfree

Package: firmware-linux-nonfree
State: installed
Automatically installed: no
Multi-Arch: foreign
Version: 0.43
Priority: optional
Section: non-free/kernel
Maintainer: Debian Kernel Team
Architecture: all
Uncompressed Size: 5,128 k
Suggests: initramfs-tools


Note:


En général, il y a toutes les chances que vous rencontrerez ce genre de message lorsque vous devriez en mettant à jour le noyaux Linux, et si les bons pilotes n'ont pas été installés.

Un petit plus pour terminer ce blog. Si vous avez plusieurs noyaux installés, pour tous les mettre à jour, il faut taper la commande:

$ sudo update-initramfs -u -k all

Aucun commentaire:

Enregistrer un commentaire