As we had mentioned in the AMD Cool 'n' Quiet article, the CPU frequency scaling information can be obtained under Linux from sys/devices/system/cpu/cpu0/cpufreq. The items listed in this location are affected_cpus, cpuinfo_cur_freq, cpuinfo_max_freq, cpuinfo_min_freq, scaling_available_frequencies, scaling_available_governors, scaling_cur_freq, scaling_driver, scaling_governor, scaling_max_freq, scaling_min_freq, and scaling_setspeed. The available frequencies for the Intel Pentium M 750 (as reported by scaling_available_frequencies) was 1.86GHz, 1.60GHz, 1.33GHz, 1.06GHz, and 800MHz. Certainly, there are many more levels at which the frequency can run, compared against the similarly clocked Athlon 64 3000+ that simply had two states of 1.80GHz and 1.00GHz. The voltages are not displayed through cpufreq, as the processor controls the voltages internally in order to ensure glitch free transactions.
More information about Intel SpeedStep can also be gathered by calling cpufreq-info, however, much of the same information is reiterated as what can be found from calling cpufreq through the system devices. The driver used by cpufreq is entitled Centrino, the hardware limits are 800MHz and 1.87GHz, cpufreq governors of userspace and performance, and the present CPU frequency is outputted.
Another informative area to turn to when dealing with the processor, of course, is cpuinfo, which is located at /proc/cpuinfo. Some information outputted by cpuinfo is the processor number, vendor_id, CPU family, model, stepping, cache size, CPU frequency, and bogomips.
Additionally, more system information can be attained from accessing the ACPI system temperature sensors found on many mobile solutions. IBM's ACPI sensors are located at /proc/acpi/ibm/thermal. When calling the IBM thermal sensors, all of the temperatures (in Celsius) are displayed. However, the sensors are not labeled, which will require a bit of research or looking at the ibm-acpi documentation to properly identify the appropriate sensors, some of which may be disabled depending upon the specific laptop model. The sensors range from monitoring the CPU temperature to the mini-PCI slot, battery, and the bus between the Northbridge and DRAM.
Information pertaining to the thermal zone of the laptop can be attained from /proc/acpi/thermal_zone/THM0/. The objects available were cooling_mode, polling_frequency, state, temperature, and trip_points. The temperature displayed is the CPU temperature, and is the same as what is outputted from /proc/acpi/ibm/thermal. Additional CPU ACPI information can be gathered at /proc/acpi/processor/CPU/ with info, limit, power, and throttling. For the uninformed, the present battery discharge rate is available from /proc/acpi/battery/BAT0/state and the battery information is at /proc/acpi/battery/BAT0/info.
What we have covered on this page, is simply some of the basic information pertaining to cpufreq, ACPI in general, and IBM ACPI. There is much more information that can be attained from these areas with a bit of investigating, however, the targets shared today should satisfy most users with their SpeedStep or Cool 'n' Quiet needs. Rather than using sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed, the CPU frequency can automatically be adjusted when using cpufreq-set. In order to specify a frequency level, the format is cpufreq-set -c 0 -f <frequency in kHz> and super-user permissions are needed in order to over-ride these performance levels.