2014-05-13 10:41:39 +00:00
|
|
|
The cpupower package consists of the following elements:
|
2011-03-30 14:30:11 +00:00
|
|
|
|
|
|
|
requirements
|
|
|
|
------------
|
|
|
|
|
|
|
|
On x86 pciutils is needed at runtime (-lpci).
|
|
|
|
For compilation pciutils-devel (pci/pci.h) and a gcc version
|
|
|
|
providing cpuid.h is needed.
|
|
|
|
For both it's not explicitly checked for (yet).
|
|
|
|
|
|
|
|
|
2014-05-13 10:41:38 +00:00
|
|
|
libcpupower
|
2011-03-30 14:30:11 +00:00
|
|
|
----------
|
|
|
|
|
2014-05-13 10:41:38 +00:00
|
|
|
"libcpupower" is a library which offers a unified access method for userspace
|
2011-03-30 14:30:11 +00:00
|
|
|
tools and programs to the cpufreq core and drivers in the Linux kernel. This
|
|
|
|
allows for code reduction in userspace tools, a clean implementation of
|
|
|
|
the interaction to the cpufreq core, and support for both the sysfs and proc
|
|
|
|
interfaces [depending on configuration, see below].
|
|
|
|
|
|
|
|
|
|
|
|
compilation and installation
|
|
|
|
----------------------------
|
|
|
|
|
2024-06-15 12:56:17 +00:00
|
|
|
There are 2 output directories - one for the build output and another for
|
|
|
|
the installation of the build results, that is the utility, library,
|
|
|
|
man pages, etc...
|
|
|
|
|
|
|
|
default directory
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
In the case of default directory, build and install process requires no
|
|
|
|
additional parameters:
|
|
|
|
|
|
|
|
build
|
|
|
|
-----
|
|
|
|
|
|
|
|
$ make
|
|
|
|
|
|
|
|
The output directory for the 'make' command is the current directory and
|
|
|
|
its subdirs in the kernel tree:
|
|
|
|
tools/power/cpupower
|
|
|
|
|
|
|
|
install
|
|
|
|
-------
|
|
|
|
|
|
|
|
$ sudo make install
|
|
|
|
|
|
|
|
'make install' command puts targets to default system dirs:
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| Installing file | System dir |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| libcpupower | /usr/lib |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| cpupower | /usr/bin |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| cpufreq-bench_plot.sh | /usr/bin |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| man pages | /usr/man |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
To put it in other words it makes build results available system-wide,
|
|
|
|
enabling any user to simply start using it without any additional steps
|
|
|
|
|
|
|
|
custom directory
|
|
|
|
----------------
|
|
|
|
|
|
|
|
There are 2 make's command-line variables 'O' and 'DESTDIR' that setup
|
|
|
|
appropriate dirs:
|
|
|
|
'O' - build directory
|
|
|
|
'DESTDIR' - installation directory. This variable could also be setup in
|
|
|
|
the 'CONFIGURATION' block of the "Makefile"
|
|
|
|
|
|
|
|
build
|
|
|
|
-----
|
|
|
|
|
|
|
|
$ make O=<your_custom_build_catalog>
|
|
|
|
|
|
|
|
Example:
|
|
|
|
$ make O=/home/hedin/prj/cpupower/build
|
|
|
|
|
|
|
|
install
|
|
|
|
-------
|
|
|
|
|
|
|
|
$ make O=<your_custom_build_catalog> DESTDIR=<your_custom_install_catalog>
|
|
|
|
|
|
|
|
Example:
|
|
|
|
$ make O=/home/hedin/prj/cpupower/build DESTDIR=/home/hedin/prj/cpupower \
|
|
|
|
> install
|
|
|
|
|
|
|
|
Notice that both variables 'O' and 'DESTDIR' have been provided. The reason
|
|
|
|
is that the build results are saved in the custom output dir defined by 'O'
|
|
|
|
variable. So, this dir is the source for the installation step. If only
|
|
|
|
'DESTDIR' were provided then the 'install' target would assume that the
|
|
|
|
build directory is the current one, build everything there and install
|
|
|
|
from the current dir.
|
|
|
|
|
|
|
|
The files will be installed to the following dirs:
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| Installing file | System dir |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| libcpupower | ${DESTDIR}/usr/lib |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| cpupower | ${DESTDIR}/usr/bin |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| cpufreq-bench_plot.sh | ${DESTDIR}/usr/bin |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
| man pages | ${DESTDIR}/usr/man |
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
If you look at the table for the default 'make' output dirs you will
|
|
|
|
notice that the only difference with the non-default case is the
|
|
|
|
${DESTDIR} prefix. So, the structure of the output dirs remains the same
|
|
|
|
regardles of the root output directory.
|
|
|
|
|
|
|
|
|
|
|
|
clean and uninstall
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
'clean' target is intended for cleanup the build catalog from build results
|
|
|
|
'uninstall' target is intended for removing installed files from the
|
|
|
|
installation directory
|
|
|
|
|
|
|
|
default directory
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
This case is a straightforward one:
|
|
|
|
$ make clean
|
|
|
|
$ make uninstall
|
|
|
|
|
|
|
|
custom directory
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Use 'O' command line variable to remove previously built files from the
|
|
|
|
build dir:
|
|
|
|
$ make O=<your_custom_build_catalog> clean
|
|
|
|
|
|
|
|
Example:
|
|
|
|
$ make O=/home/hedin/prj/cpupower/build clean
|
|
|
|
|
|
|
|
Use 'DESTDIR' command line variable to uninstall previously installed files
|
|
|
|
from the given dir:
|
|
|
|
$ make DESTDIR=<your_custom_install_catalog>
|
|
|
|
|
|
|
|
Example:
|
|
|
|
make DESTDIR=/home/hedin/prj/cpupower uninstall
|
|
|
|
|
|
|
|
|
|
|
|
running the tool
|
|
|
|
----------------
|
|
|
|
|
|
|
|
default directory
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
$ sudo cpupower
|
|
|
|
|
|
|
|
custom directory
|
|
|
|
----------------
|
|
|
|
|
|
|
|
When it comes to run the utility from the custom build catalog things
|
|
|
|
become a little bit complicated as 'just run' approach doesn't work.
|
|
|
|
Assuming that the current dir is '<your_custom_install_catalog>/usr',
|
|
|
|
issuing the following command:
|
|
|
|
|
|
|
|
$ sudo ./bin/cpupower
|
|
|
|
will produce the following error output:
|
|
|
|
./bin/cpupower: error while loading shared libraries: libcpupower.so.1:
|
|
|
|
cannot open shared object file: No such file or directory
|
|
|
|
|
|
|
|
The issue is that binary cannot find the 'libcpupower' library. So, we
|
|
|
|
shall point to the lib dir:
|
|
|
|
sudo LD_LIBRARY_PATH=lib64/ ./bin/cpupower
|
2011-03-30 14:30:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
THANKS
|
|
|
|
------
|
|
|
|
Many thanks to Mattia Dongili who wrote the autotoolization and
|
2014-05-13 10:41:38 +00:00
|
|
|
libtoolization, the manpages and the italian language file for cpupower;
|
2011-03-30 14:30:11 +00:00
|
|
|
to Dave Jones for his feedback and his dump_psb tool; to Bruno Ducrot for his
|
|
|
|
powernow-k8-decode and intel_gsic tools as well as the french language file;
|
|
|
|
and to various others commenting on the previous (pre-)releases of
|
2014-05-13 10:41:38 +00:00
|
|
|
cpupower.
|
2011-03-30 14:30:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
Dominik Brodowski
|