Что создает сгенерированный / autoconf.h?

9

Мы пытаемся создать часть программного обеспечения, которая требует источника ядра, а не только заголовков. Итак, мы загрузили исходный код ядра через centos src rpm.

Однако autoconf.h отсутствует.

Мы пытались

  • Поместите .config на место (скопировал один из / boot).

  • запустить make oldconfig

Так что же создает файл autoconf.h? Нужно ли нам собирать ядро?

Стефан
источник
Если кто-то использует Kconfig в качестве архитектуры сборки для проекта, не связанного с Linux, ответ на этот вопрос будет несколько другим: для создания autoconf.h вам понадобится ./kconfig-frontends/frontends/conf/conf --silentoldconfig Kconfig
Этьен

Ответы:

12

Файл include/generated/autoconf.hгенерируется на make prepareшаге. Если вы пытаетесь собрать модуль ядра, вам также потребуется make scriptsшаг:

gunzip < /proc/config.gz > .config
make oldconfig
make prepare
make scripts

Обычно ядро ​​поставляется с пакетом заголовков, вы пробовали установить его первым? Для CentOS попробуйте установить kernel-develпакет. Подробности можно найти на http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

Lekensteyn
источник
Спасибо! Да, у нас был установлен пакет заголовков, но по некоторым причинам скрипт configure требовал полного источника. Мы использовали вики-страницу, на которую вы ссылались.
Стефан
Просто для полноты: в CentOS расположен конфигурационный файл ядра /boot(сравните с, uname -rчтобы выбрать правильный).
Стефан
1
@Stefan В некоторых дистрибутивах (например, в Arch Linux) он находится /lib/modules/$(uname -r)/build/.config( buildобычно символические ссылки /usr/src/linux-$(uname -r)), которые используют другие /boot/config-$(uname -r)(например, Ubuntu, Debian и, очевидно, CentOS). Если включено во время компиляции, оно также доступно из /proc/config.gz.
Лекенстейн
0

Файл autoconf.hавтоматически генерируется в процессе сборки из .confфайла. Многие исходные файлы ядра используют autoconf.h.

Бехнам Дезфули
источник
1
Добро пожаловать в сбой сервера! Мы предпочитаем дополнительные ответы, чтобы ответить на вопрос так, как это не делали предыдущие ответы, или предоставить лучшее решение.
Сокол Момот