Hello to all,I have istalled phc driver correctly but It doesn't work,there are no voltage control...I read that Pentium M cpus don't work well with phc on 3.x kernels, is that possible? O.o
On windows I have no problem undervolting the cpu...
Thank you very much

I am having the exact same problem on Debian Squeeze, both with a Debian stock kernel (3.2, backported to Squeeze) and a 3.9 kernel that I compiled today. - I assume that some people have been successful with 3.x kernels. - It would be extremely helpful to hear from someone who made it work: which kernel, how they buildt the module etc.. I've been relying on linux-phc for years, it has been a great help, but now, for me at least, it seems to stop working at kernel version 2.6.39 . I've been using the phc-intel-pack-rev8 and rev9 . Pentium M735.

Hi lio,
thanks very much for your comments, they put me on the right track to compile a working phc-enabled kernel 3.9.0 .
Though it is important to note that only https://patchwork.kernel.org/patch/106696/ should be applied wich amounts to replacing just one line in the file source-directory/drivers/acpi/processor_core.c, namely

This thread is referred to in the README.1st that's part of the current phc-intel download. Unfortunately the patch mentioned in the previous posts turns out to have been just a temporary fix.

I ran into trouble when I was upgrading my operating system and tried to also upgrade my kernel from version 3.12: intel-phc compiles and loads but voltage controls are non-functional for kernel 3.16 or newer. I then started browsing the sources of the longterm linux kernels.

patch 106696 changes one line in a subroutine called "init processor_physically_present" in the source file drivers/acpi/processor_core.c . However, this subroutine is moved to drivers/acpi/processor_pdc.c in kernel 3.18 . The patched line - "if (cpuid == -1)" - still exists at this point but was removed between kernel versions 4.1 and 4.4 .

I then tried to make phc_intel work with kernel 3.16 but didn't manage that either: the patch can be applied, the "processor" and "phc_intel" modules both compile and load but otherwise the situation is exactly as described in the first post in this thread: although the phc files exist in /sys/devices/system/cpu/cpu0/cpufreq/ they are not accessible: cat phc_vids returning "No such device" etc.

I took another look at the post accompanying patch 786962 (link in the previous post) that started all this mess at the inception of kernel 3.0. It says that the patch was introduced "so both UP and
SMP kernel use the same acpi_get_cpuid function" . This takes me back to the fact that phc_intel is still working even with the latest kernels for at least some multicore CPUs . So why not for unicore CPUs? Patch 106696 was supposed to be the answer to that. But it isn't. - What is?

After some experimentation I'm happy to report that much of my previous post was mistaken. I've been able to make linux-phc work for Kernel 3.16.46, 4.1.43 and 4.12.8 on a Thinkpad T42 with Dothan Pentium M processor:Linux Kernel 3.16.46
Just apply the previously mentioned patch to drivers/acpi/processor_core.c. My mistake that led to the previous post was to then just recompile the acpi drivers (using "make M=drivers/acpi") for a stock kernel I was using. This threw up no errors and resulted in a perfectly working kernel. But linux-phc didn't work. It only did when I compiled the whole kernel after applying the patch. (And that is what I did in 2013 as I belatedly remembered.)Linux Kernel 4.1.43
The patch applies to a subroutine called "init processor_physically_present" which now appears in the file drivers/acpi/processor_pdc.c (right at the beginning of that file). Edit that file and replace the line

if (cpuid == -1)

with

if ((cpuid == -1) && (num_possible_cpus() > 1))

Then compile the kernel.Linux Kernel 4.12.8
processor_pdc.c is almost unchanged relative to Kernels 4.1.x, unfortunately one of the two lines that are changed is the one that is replaced by the patch, namely: it's gone. So what I did was replace the processor_pdc.c file with the - edited! - processor_pdc.c taken from Kernel 4.1.43, hoping for the best. And that works.

I've been having problems using the current rev24 of linux-phc, namely the Makefile error

Kernel version not found, maybe you need to install appropriate kernel-headers or run make with KERNELSRC parameter, e.g.: make KERNELSRC=/usr/src/linux)

has been a constant, and the explicit setting of KERNELSRC has only sometimes helped. One time running 'make' in the phc-intel-pack-rev24 directory resulted in the linked kernel source being recompiled,

Therefore, since I need to compile the kernel anyway, it's been much easier for me to go the respective include directory, e.g. .../phc-intel-pack-rev24/inc/3.16/, there to make a backup of the acpi_cpufreq.c file, then run

patch -l -p0 < linux-phc-0.3.2.patch

and copy the patched acpi_cpufreq.c to drivers/cpufreq/ in the kernel source tree to overwrite the unpatched acpi_cpufreq.c file there. Consequently there is no phc_intel module with the compiled kernel but an acpi_cpufreq module that has the phc_intel module's properties.

I've been trying to attach the patched processor_core.c and processor_pdc.c files to this post but apparently I'm not allowed.