How to install missing firmware for tg3 module

Recently I stumbled upon the missing firmware for Broadcom Tigon3 based gigabit Ethernet card after kernel upgrade process. Simple problem, which was solved by installing firmware-linux-nonfree Binary firmware for various drivers in the Linux kernel package.

Notice the Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3 warning during generation of the initramfs image after kernel upgrade.

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  linux-image-3.2.0-4-amd64
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/23.5 MB of archives.
After this operation, 1024 B of additional disk space will be used.
Do you want to continue [Y/n]?
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 39249 files and directories currently installed.)
Preparing to replace linux-image-3.2.0-4-amd64 3.2.84-1 (using .../linux-image-3.2.0-4-amd64_3.2.84-2_amd64.deb) ...
Unpacking replacement linux-image-3.2.0-4-amd64 ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
Setting up linux-image-3.2.0-4-amd64 (3.2.84-2) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
update-initramfs: Generating /boot/initrd.img-3.2.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
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
done
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB

Total disk space freed by localepurge: 0 KiB

Identify the package that provides missing firmware.

$ dpkg-query -S /lib/firmware/tigon/*
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

Install required firmware-linux-nonfree package.

$ sudo apt-get install firmware-linux-nonfree
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  firmware-linux-nonfree
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2584 kB of archives.
After this operation, 5128 kB of additional disk space will be used.
Get:1 http://admin.implix.com/debian/ wheezy-implix/main firmware-linux-nonfree all 0.43~bpo70+1 [2584 kB]
Fetched 2584 kB in 2s (1193 kB/s)
Selecting previously unselected package firmware-linux-nonfree.
(Reading database ... 39249 files and directories currently installed.)
Unpacking firmware-linux-nonfree (from .../firmware-linux-nonfree_0.43~bpo70+1_all.deb) ...
Setting up firmware-linux-nonfree (0.43~bpo70+1) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-4-amd64
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB

Total disk space freed by localepurge: 0 KiB

It is worth to note that above-mentioned package provides binary firmware for various drivers in the Linux kernel.

 * 3Com Typhoon firmware, version 03.001.008 (3com/typhoon.bin)
 * AdvanSys ASC-3550 firmware (advansys/3550.bin)
 * AdvanSys ASC-38C0800 firmware (advansys/38C0800.bin)
 * AdvanSys ASC-38C1600 firmware (advansys/38C1600.bin)
 * AdvanSys SCSI controller microcode (advansys/mcode.bin)
 * Agere/Prism/Symbol Orinoco firmware (AP mode), version 9.48 Hermes I
   (agere_ap_fw.bin)
 * Agere/Prism/Symbol Orinoco firmware (STA mode), version 9.48 Hermes
   I (agere_sta_fw.bin)
 * Chelsio T3 optical EDC firmware (AEL2005 PHY)
   (cxgb3/ael2005_opt_edc.bin)
 * Chelsio T3 twinax EDC firmware (AEL2005 PHY)
   (cxgb3/ael2005_twx_edc.bin)
 * Chelsio T3 twinax EDC firmware (AEL2020 PHY)
   (cxgb3/ael2020_twx_edc.bin)
 * Chelsio T3B protocol engine firmware, version 1.1.0
   (cxgb3/t3b_psram-1.1.0.bin)
 * Chelsio T3C protocol engine firmware, version 1.1.0
   (cxgb3/t3c_psram-1.1.0.bin)
 * Chelsio T3 main firmware, version 7.4.0 (cxgb3/t3fw-7.4.0.bin)
 * Chelsio T3 main firmware, version 7.10.0 (cxgb3/t3fw-7.10.0.bin)
 * Chelsio T3 main firmware, version 7.12.0 (cxgb3/t3fw-7.12.0.bin)
 * Chelsio T4 firmware, version 1.9.23.0 (cxgb4/t4fw-1.9.23.0.bin,
   cxgb4/t4fw.bin)
 * Chelsio T5 firmware, version 1.9.23.0 (cxgb4/t5fw-1.9.23.0.bin,
   cxgb4/t5fw.bin)
 * DAB-USB FPGA bitfile (dabusb/bitstream.bin)
 * DAB-USB firmware (dabusb/firmware.fw)
 * Xceive 5000 tuner firmware, version 1.6.114
   (dvb-fe-xc5000-1.6.114.fw)
 * DiBcom dib0700 USB DVB bridge firmware, version 1.20
   (dvb-usb-dib0700-1.20.fw)
 * Intel 82559 D101M microcode (e100/d101m_ucode.bin)
 * Intel 82559 D101S microcode (e100/d101s_ucode.bin)
 * Intel 82551-F and 82551-10 microcode (e100/d102e_ucode.bin)
 * ENE UB6250 MS Pro read/write firmware (ene-ub6250/msp_rdwr.bin)
 * ENE UB6250 MS init firmware (ene-ub6250/ms_init.bin)
 * ENE UB6250 MS read/write firmware (ene-ub6250/ms_rdwr.bin)
 * ENE UB6250 SD init stage 1 firmware (ene-ub6250/sd_init1.bin)
 * ENE UB6250 SD init stage 2 firmware (ene-ub6250/sd_init2.bin)
 * ENE UB6250 SD read/write firmware (ene-ub6250/sd_rdwr.bin)
 * kaweth/new_code.bin
 * kaweth/new_code_fix.bin
 * kaweth/trigger_code.bin
 * kaweth/trigger_code_fix.bin
 * Matrox G200 WARP engine microcode (matrox/g200_warp.fw)
 * Matrox G400/G550 WARP engine microcode (matrox/g400_warp.fw)
 * Multi-Tech USB CDMA modem firmware (mts_cdma.fw)
 * Multi-Tech USB EDGE modem firmware (mts_edge.fw)
 * Multi-Tech USB GPRS modem firmware (mts_gsm.fw)
 * Rage 128 CCE microcode (r128/r128_cce.bin)
 * various Radeon devices
 * Tehuti network card firmware (tehuti/bdx.bin)
 * 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)
 * Conexant CX231xx core firmware (v4l-cx231xx-avcore-01.fw)
 * Conexant CX23418 APU firmware (v4l-cx23418-apu.fw)
 * Conexant CX23418 CPU firmware (v4l-cx23418-cpu.fw)
 * Conexant CX23418 ADEC firmware (v4l-cx23418-dig.fw)
 * Conexant CX25840 firmware (v4l-cx25840.fw)
 * Conexant CX23885 core firmware (v4l-cx23885-avcore-01.fw)
 * VIA VT6656 firmware (vntwusb.fw)
Milosz Galazka's Picture

About Milosz Galazka

Milosz is a system administrator working for a successful Polish company and a long time supporter of Free Software Foundation and Debian operating system.

Gdansk, Poland https://sleeplessbeastie.eu