Debian – How to find missing firmwares in Zenbook

debianfirmwaresystem-installationzenbook

This answer motivates me to find missing firmwares in my ultrabook, because I am experiencing difficult typing with many artifacts (here about unable to calibrate typing speed) and CPU up-downs now in one-day old Debian 8.5 with Dvorak.
Stephen says that the kernel packages can tell you about missing firmware whenever they are installed or upgraded. However, I would like to get more complete review on it.
Characteristics

  • Graphics

    lspci -nnk | egrep -iA3 "VGA"
    00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:1916] (rev 07)
    Subsystem: ASUSTeK Computer Inc. Device [1043:247a]
    

    Kernel driver in use: i915
    00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 08)

  • About failed firmwares where iwlwifi are old messages, I think

    masi@masi:~$ dmesg | grep firmware
    [    1.878929] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-21.ucode (-2)
    [    1.878967] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-21.ucode failed with error -2
    [    1.878985] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-20.ucode (-2)
    [    1.879016] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-20.ucode failed with error -2
    [    1.879027] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-19.ucode (-2)
    [    1.879060] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-19.ucode failed with error -2
    [    1.879070] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-18.ucode (-2)
    [    1.879101] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-18.ucode failed with error -2
    [    1.879111] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-17.ucode (-2)
    [    1.879142] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-17.ucode failed with error -2
    [    1.883577] iwlwifi 0000:01:00.0: firmware: direct-loading firmware iwlwifi-7265D-16.ucode
    [    1.883896] iwlwifi 0000:01:00.0: loaded firmware version 16.242414.0 op_mode iwlmvm
    [    1.916244] i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin (-2)
    [    1.916249] i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1.bin failed with error -2
    [    1.916251] i915 0000:00:02.0: Failed to load DMC firmware [https://01.org/linuxgraphics/intel-linux-graphics-firmwares], disabling runtime power management.
    [    2.292574] bluetooth hci0: firmware: direct-loading firmware intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq
    [    2.292579] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq
    [    2.544000] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated
    

Installed firmwares and removed packages in debian

  • apt-get -t jessie-backports install linux-image-amd64
  • apt-get -t jessie-backports install firmware-iwlwifi
  • apt-get remove xserver-xorg-video-intel

2nd iteration after Stephen's answer

The non-free package solves the graphical artifact in Matlab 2016a described here.
My dmesg now where everything is ok [Stephen] because 17-21 of wifi firmware fail, but 16 iteration succeeds eventually; no other firmware failures visible

masi@masi:~$ dmesg | grep firmware
[    1.897923] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-21.ucode (-2)
[    1.897961] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-21.ucode failed with error -2
[    1.897973] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-20.ucode (-2)
[    1.898009] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-20.ucode failed with error -2
[    1.898017] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-19.ucode (-2)
[    1.898121] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-19.ucode failed with error -2
[    1.898129] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-18.ucode (-2)
[    1.898165] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-18.ucode failed with error -2
[    1.898173] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-7265D-17.ucode (-2)
[    1.898209] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-7265D-17.ucode failed with error -2
[    1.904430] iwlwifi 0000:01:00.0: firmware: direct-loading firmware iwlwifi-7265D-16.ucode
[    1.904726] iwlwifi 0000:01:00.0: loaded firmware version 16.242414.0 op_mode iwlmvm
[    1.917970] i915 0000:00:02.0: firmware: direct-loading firmware i915/skl_dmc_ver1.bin

Hardware: Asus Zenbook UX303UA
OS: Debian 8.5 64 bit
Linux kernel: 4.6

Best Answer

To find out firmware your system is looking for but can't find (which is the firmware you might need), you should look for firmware-related messages in your kernel logs:

dmesg | grep firmware

That will give you the names of firmware files which the kernel is looking for; apt-file will then tell you which package to install (if the firmware is packaged).

You've got a Skylake system running with an Intel GPU, you'll probably need at least firmware-misc-nonfree (Skylake GPUs need firmware):

apt-get -t jessie-backports install firmware-misc-nonfree

This will fix the i915 firmware loading errors. The sequence of iwlwifi messages ends with loaded firmware version 16.242414.0 op_mode iwlmvm, so that's OK; likewise the Bluetooth firmware is loaded successfully too (it's also contained in the firmware-iwlwifi package).

Related Question