Failed to load DMC firmware (more info requested)

Logs on Librem 13v4 up-to-date report failure to load i915/skl_dmc_ver1_27.bin with error -2. This was diagnosed by mladen in another post entitled “Firmware failed to load” as missing firmware. That seems reasonable and my laptop works fine without the firmware.

Intel web site says DMC “provides additional graphics low-power idle states. It provides capability to save and restore display registers across these low-power states independently from the OS/Kernel.” That explains why it is firmware-related.

I’m curious why this firmware is missing and if it could be related to excessive power consumption on battery that I experience from time to time. Is a PureOS bug report present or deserve to be created?

Yeah, this could be suitable for the bug tracker. Is there a log message or warning that you might paste verbatim?

DMC firmware is an optional binary blob, and as PureOS doesn’t include such blobs, the error is normal / to be expected

2 Likes

So together with the Bluetooth driver that makes two binary blobs that I am aware of in the Purism laptops. Are there any others to be aware of?

Will this do?

Mar 05 07:39:57 kwe-librem kernel: i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1_27.bin (-2)
Mar 05 07:39:57 kwe-librem kernel: firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
Mar 05 07:39:57 kwe-librem kernel: i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1_27.bin failed with error -2
Mar 05 07:39:57 kwe-librem kernel: i915 0000:00:02.0: Failed to load DMC firmware i915/skl_dmc_ver1_27.bin. Disabling runtime power management.
Mar 05 07:39:57 kwe-librem kernel: i915 0000:00:02.0: DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915

you realize the warning is because the binary blob isn’t included, right?

2 Likes

Yes, thanks for clarifying. I meant that there are two missing blobs without adequate RYF substitutes in the Purism software base – Intel DMC firmware and the Bluetooth driver. No others known. Impact of missing DMC capability unknown and missing Bluetooth missing capability obvious known impact. Mitigate with dongle.

1 Like

it’s not unknown, it’s slightly increased power consumption

1 Like

Is this an issue I have to accept if I want to keep using PureOS or might there be a solution in the nearer future?
I thought maybe I could just manually copy the firmware file (in my case kbl_dmc_ver1_04.bin) to /lib/firmware/i915/ since installing firmware-misc-nonfree won’t work. This would be similar to what I did with atheros firmware for wifi, which I believe is also part of firmware-misc-nonfree. However, the directory /lib/firmware/i915/ doesn’t exist on my PureOS and maybe it’s not even possible?

Sorry for bringing the topic up again, but I was wondering if this could work. A layman-compatible explanation would be appreciated.

Here my boot error output:

firmware: failed to load i915/kbl_dmc_ver1_04.bin (-2)
Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2
Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling runtime power management.
DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915

PureOS doesn’t include binary blobs as part of the distribution, so your choices are either ignore the warning (and it is just a warning), or manually install the correct non-free package which contains the firmware file(s) the driver is complaining about (or manually download the file and place it in the correct location).

I’m not sure what you mean by “since installing firmware-misc-nonfree won’t work” – that’s exactly the package you need to install.

1 Like

Sorry if that’s a dumb question, but how do I install firmware-misc-nonfree then? If I type sudo apt install firmware-misc-nonfree the package is not available and I don’t know where to copy the file, because I can’t find the directory /lib/firmware/ (or should I copy it somewhere else?).

But anyway, I might just leave it as it is, if it is just a warning.