Packaging Request #3206

[intel-phc]: for undervolting 2nd gen and older Intel CPUs.

wael - 12 months ago - . Updated 9 months ago.

% Done:



I would like to request the packaging of intel-phc from the AUR.
Relevant URLs are in the attached file.
And the license is GPLv2-only.

This patch/driver allows the under-volting of Intel processors in the following families:
Mobile Centrino, Core/Core2, Atom (N2) and first and second generation Core i.

This would be quite useful in Parabola as I imagine many people run systems on top of Libreboot, which would benefit from this package a lot.


meld.scrot.png (225 KB) meld.scrot.png meld screenshot bill-auger, 2022-04-06 08:27 PM



Updated by bill-auger 12 months ago

for the record, what does this software do? - does it save power,
throttle the CPU speed, etc?


Updated by wael 12 months ago

It's a patch (in the form of a kernel module) to acpi-cpufreq to allow undervolting the CPU.
The user is supposed to initially experiment with different values to see how much stable undervolting can be achieved and then they can set it to build on each kernel update and insert the module to allow undervolting without tweaking through the BIOS.
It is mainly targeted to saving power on laptops, as it can potentially drop CPU power use by a factor of 2.


Updated by wael 12 months ago

  • File gmid_package_build.tar.gz added

I've written PKGBUILD files for linux-libre and linux-libre-lts.
Still haven't managed to totally test it though as I've got a problem with the GCC version - I'll sort it out and report back later.
Attached PKGBUILD and files for linux-libre version.


Updated by wael 12 months ago

  • File phc-intel_package_files.tar.gz added

I accidentally attached the wrong file.


Updated by bill-auger 12 months ago

some notes:

WRT Maintainer:

Maintainer should be someone who is contributing to parabola directly - if the PKGBUILD was adapted from another repo (eg: the AUR), the foreign Maintainer: should be appended with an identifier of the source/upstream repo - in this case:


# Maintainer: Real Name <>

# Maintainer (aur): Real Name <>

eventually, i would like to establish a convention for those identifiers, so that they would be machine-readable - eg:

KNOWN_PKGBUILD_UPSTREAMS = [ 'aur' , 'artix' , 'arch32' , 'archarm' ]

WRT pkgrel:

the .parabola extension to pkgrel is to indicate a replacement for a package in arch - replacement packages would never be in the PCR repo - for a PCR package, pkgrel is a single number:




WRT arch:

this note is not very important; but i think it is an improvement for documentation - the AUR PKGBUILD has this as an 'any' arch, which is technically correct - however, i probably would have changed it also to specify only the x86 arches - although that is technically incorrect, it avoids publishing the package to non-x86 arches, where it is useless - the change i would make there is to retain the original 'any' line, and add a comment, to explain why this PKGBUILD is doing something which is technically incorrect


arch=('x86_64' 'i686')

arch=('x86_64' 'i686') # avoid publishing to non-x86 arches

WRT provides:

i removed that line because it does not appear to have any usefulness - no parabola package, nor arch package, nor AUR package refers to it - it is probably "cruft", left-over to replace a previous package, which got renamed at some time in the past, or to satisfy some other package which no longer exists

it is messy; but i would consider it as a reminder, to ask the AUR maintainer to remove that line, or to justify retaining it



# provides=('linux-phc') # useless - no arch, parabola, nor AUR package refers to this


Updated by bill-auger 12 months ago

just for demonstration, this is why it is helpful to retain that original arch=('any') line - the intentions of both the original maintainer, and the parabola maintainer, can become equally obvious, when viewed with a merge tool (the one below is 'meld')


Updated by bill-auger 12 months ago

  • Priority changed from bug to wish
  • Assignee set to bill-auger
  • Status changed from open to in progress
  • Subject changed from intel-phc, for undervolting 2nd gen and older Intel CPUs. to [intel-phc]: for undervolting 2nd gen and older Intel CPUs.

Updated by wael 12 months ago

  • File phc-intel_package_files.tar.gz added

I've added the changes to the PKGBUILD, though IDK how much of a point that has as bill-auger already added them I assume.
I'm taking notes as to what to improve in the future.


Updated by bill-auger 12 months ago

  • Status changed from in progress to fixed

just look over my changes in abslibre, to intel-phc gmid, and coreboot-util - IMHO, git, tig, and merge tools like meld are much more helpful for that, than passing around raw files


Updated by bill-auger 12 months ago

  • File deleted (urls)

Updated by bill-auger 12 months ago

  • File deleted (gmid_package_build.tar.gz)

Updated by bill-auger 12 months ago

  • File deleted (phc-intel_package_files.tar.gz)

Updated by bill-auger 12 months ago

  • File deleted (phc-intel_package_files.tar.gz)

Updated by wael 9 months ago

Now that Libreboot 22020710 stable fixed the speedstep issue, I managed to test this patch/module on my T400, and I can confirm that it works fine.
I will take care to modify the PKGBUILD whenever the software gets updated and upload it here/send it on the mailing list.
I am yet testing out the stability of the undervolting, once that is done and I have some time: I'll document the whole procedure of tuning the values in the Wiki, as this can breathe new life into older machines and prolong the lifespan of the parts (less wear).

Also available in: Atom PDF