Power Management with Intel CPU with Protectli VP2420

I am getting the following message in the logs, I have to assume that Power Management is not working? The appliance is a Protectli VP2420. Any feedback will be appreciated, thank you

Fri Sep  6 10:51:51 2024 kern.notice kernel: [   65.815867] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/icl_dmc_ver1_09.bin. Disabling runtime power management.
Fri Sep  6 10:51:51 2024 kern.notice kernel: [   65.833970] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915

That module is for video power management. I believe those are omitted from all x86/64 images. I tried researching adding it to existing device after the fact, but read it had to be compiled in. If you compiled your own image you could could add it.
Possible other workaround for you though. If you have a display attached and want timeout screen blanking, install the 'setterm' package and see this post:

Especially useful for laptops with integrated displays.

Thank you, I do have an external display connected via HDMI, but is only for console troubleshooting, it is off most of the time, if not, all the time, therefore the Intel GPU is not being used, do you think this will have an impact in power management? This is an appliance running 24x7, power management is important

Origin firmwares here

Clone it and upload respective files to router relative to /lib/firmware.
Make a PR or open issue in github if successful.

note it is

/lib/firmware/./i915/icl_dmc_ver1_09.bin

Based on this, it seems it is already included:

I did download the file from kernel.org and uploaded to the router directly via scp (below info), but I keep getting the error at reboot, I think something is missing:

root@vp2420:~# cd /lib/firmware/i915/
root@vp2420:/lib/firmware/i915# ls -la
drwxr-xr-x    2 root     root          4096 Sep  6 13:31 .
drwxr-xr-x    5 root     root          4096 Sep  6 13:26 ..
-rw-r--r--    1 root     root        175118 Sep  6 13:31 icl_dmc_ver1_09.bin
root@vp2420:/lib/firmware/i915# 

This is exactly what I had tried also, and was referring to before. I believe the file has to be present in the read-only filesystem for access at boot time. (Thus the need to compile it into your original image.)
It appears not to be something you can just add later.

Could be, then worth trying imagebuilder to stuff firmwares in squashfs.

Thank you, please could you point me to some kind of guide on how to do it?

@brada4 @JustAnotherEndUser I found this, where they are adding the i915 firmware without image builder:

I followed the guide on the link, the message on the console disappeared, but checking the kernel logs I found the following, it seems the driver did not load:

i915 0000:00:02.0: [drm] *ERROR* DMC firmware has wrong CSS header length (1097158924 bytes)
i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/icl_dmc_ver1_09.bin. Disabling runtime power management.
i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
ACPI: video: [Firmware Bug]: ACPI(GFX0) defines _DOD but not _DOS
ACPI: video: Video Device [GFX0] (multi-head: yes rom: no post: no)
input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
loop: module loaded

Maybe I downloaded the icl_dmc_ver1_09.bin incorrectly, because on the kernel.org site the size is 25,952 and after I download the file is 175,118, I just did standard download from the browser, thoughts?

Thank you very much

1 Like

Master repo is on gitlab and i told to clone it and copy files. No browser involved after copying repo link.

1 Like

Please could you share the repo link, thanks a lot

Read this thread?

Apologies, missed that, thanks

Why web download doesn’t work? It kind of downloads the file on a different format

All good, thanks a lot for the help

[    3.062556] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
[    3.094159] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    3.102287] ACPI: video: [Firmware Bug]: ACPI(GFX0) defines _DOD but not _DOS
[    3.110753] ACPI: video: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    3.118739] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
[    3.129113] loop: module loaded

@brada4 @logi Thanks to you both. Great find on the workaround!
I tried this on a test laptop and was able to get the firmware to load. I'm not sure how effective the firmware actually is from a power management perspective though. There is no inherent screen timeout. The LCD stays on constantly.
Anyone running on a device with integrated display may want to still install and use the setterm command in startup so screen will blank on timeout.

/usr/bin/setterm --blank 1 > /dev/tty0

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.