Возник один вопрос, зачем при сборке модулей ядра нужна команда:
make prepare modules_prepare
1. Prepare Kernel source
If you have package system install kernel-devel package, otherwise install
raw kernel source from http://kernel.org matching _exactly_ version of your
installed kernel.
a) What to do for Centos:
~# yum install kernel-devel
b) What to do for Debian and Ubuntu:
~# apt-get install module-assistant
~# m-a prepare
c) Otherwise, if you downloaded raw kernel sources don't forget to create
.config by copying it from your distribution's kernel. Its copy could reside
in /boot or sometimes in /proc, examples:
kernel-src-dir/# cp /boot/config-`uname -r` .config
or
kernel-src-dir/# zcat /proc/config.gz > .config
Assuming you unpacked kernel source into `kernel-src-dir/' directory.
Then run:
kernel-src-dir/# make oldconfig
After that you'll need to prepare kernel for modules build:
kernel-src-dir/# make prepare modules_prepare
Note: Don't try to `make prepare' in Centos kernel-devel package directory
(which is usually something like /usr/src/kernels/2.6.32-431.el6.x86_64)
as this is wrong and meaningless.
У меня как раз CentOS. Что эта команда делает? Я правильно понимаю, что она подготавливает заголовки и либы, которые необходимы gcc для компиляции? Но после я уйду из каталога исходников ядра и перейду в каталог исходников собираемого модуля, как тогда gcc будет знать где эти заголовки и либы лежат? И опять же вопрос, каталог исходников ядра это какой, не /usr/src/kernels/3.10.0-1160.2.2.el7.x86_64 сказано же, что в этом каталоге запускать команду не следует. Исходники ядра я могу получить командами:
yumdownloader --source kernel-3.10.0-1160.el7
rpm -i kernel-3.10.0-1160.el7.src.rpm
rpmbuild -bp rpmbuild/SPECS/kernel.spec