Was erstellt die generierte / autoconf.h?

9

Wir versuchen, eine Software zu erstellen, die die Kernelquelle und nicht nur die Header benötigt. Also haben wir die Kernelquelle über die Centos src rpm heruntergeladen.

Die autoconf.h fehlt jedoch.

Wir haben es versucht

  • Setzen Sie die .config ein (kopieren Sie die von / boot).

  • Lauf make oldconfig

Was erstellt die autoconf.h-Datei? Müssen wir tatsächlich den Kernel erstellen?

Stefan
quelle
Wenn jemand Kconfig als Build-Architektur für ein Projekt verwendet, das nicht mit Linux zusammenhängt, ist die Antwort auf diese Frage etwas anders: Um autoconf.h zu generieren, benötigen Sie ./kconfig-frontends/frontends/conf/conf --silentoldconfig Kconfig
Étienne

Antworten:

12

Die Datei include/generated/autoconf.hwird im make prepareSchritt generiert . Wenn Sie versuchen, ein Kernelmodul zu erstellen, benötigen Sie außerdem den folgenden make scriptsSchritt:

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

Normalerweise wird der Kernel mit einem Header-Paket geliefert. Haben Sie zuerst versucht, dieses zu installieren? Versuchen Sie unter CentOS, das kernel-develPaket zu installieren . Details finden Sie unter http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

Lekensteyn
quelle
Vielen Dank! Ja, wir hatten das Header-Paket installiert, aber aus bestimmten Gründen forderte das Konfigurationsskript die vollständige Quelle. Wir haben die von Ihnen verlinkte Wiki-Seite verwendet.
Stefan
Der Vollständigkeit halber: Unter CentOS befindet sich die Kernel-Konfiguration in /boot(vergleiche mit uname -r, um die richtige auszuwählen).
Stefan
1
@Stefan Auf einigen Distributionen (wie Arch Linux) befindet es sich /lib/modules/$(uname -r)/build/.config( buildnormalerweise mit Symlinks /usr/src/linux-$(uname -r)), andere verwenden es /boot/config-$(uname -r)(wie Ubuntu, Debian und anscheinend CentOS). Wenn es während der Kompilierung aktiviert ist, ist es auch über verfügbar /proc/config.gz.
Lekensteyn
0

Die Datei autoconf.hwird während des Erstellungsprozesses automatisch aus der .confDatei generiert . Viele Kernel-Quelldateien verwenden autoconf.h.

Behnam Dezfouli
quelle
1
Willkommen bei Server Fault! Wir bevorzugen zusätzliche Antworten, um die Frage so zu beantworten, wie dies bei früheren Antworten nicht der Fall war, oder um eine bessere Lösung zu finden.
Falcon Momot