mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-30 07:34:12 +08:00
3dbc921479
Enhance cpupower build process description with the information on building and installing the utility to the user defined directories as well as with the information on the way of running the utility from the custom defined installation directory. Signed-off-by: Roman Storozhenko <romeusmeister@gmail.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
188 lines
5.9 KiB
Plaintext
188 lines
5.9 KiB
Plaintext
The cpupower package consists of the following elements:
|
|
|
|
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).
|
|
|
|
|
|
libcpupower
|
|
----------
|
|
|
|
"libcpupower" is a library which offers a unified access method for userspace
|
|
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
|
|
----------------------------
|
|
|
|
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
|
|
|
|
|
|
THANKS
|
|
------
|
|
Many thanks to Mattia Dongili who wrote the autotoolization and
|
|
libtoolization, the manpages and the italian language file for cpupower;
|
|
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
|
|
cpupower.
|
|
|
|
|
|
Dominik Brodowski
|