2017-01-30 1 views
2

in defconfig-Dateien können Sie Kernel-Optionen als solche eingestellt:Welcher Ansatz für den Kernel CONFIG_?

CONFIG_<optionName>=y 
CONFIG_<optionName>=m 
CONFIG_<optionName>=n 
# CONFIG_<optionName> is not set 

ich die 2.

zuerst verstehen, was ich ist der Unterschied zwischen 4 # 3 # & verstehen möchte, und wenn zu Verwendung jeder - vor allem in Anbetracht, dass die Kernel-Quellen #ifdef CONFIG_ verwenden {...} und manchmal #if CONFIG_ {...}

In meinem speziellen Fall mag ich entschieden sagen, dass ist option Nicht verfügbar.

Dank

+0

Es ist eine Weile her, dass ich in dieser aussehen, aber die eigentlichen Definitionen des Makro 'CONFIG_xxx' sollten in' autoconf.h', eine Header-Datei, die auf der Grundlage Ihrer Konfigurationsdatei generiert wird. Also 'CONFIG_xxx ist nicht gesetzt' und' CONFIG_xxx = n' sollte gleichwertig sein. – Ram

Antwort

0

CONFIG_ = n Es bedeutet, dass Sie explizit deaktivieren Sie diese Konfigurations Element aus Ihrer defconfig Datei. Also in Ihrer .config-Datei wird es wie anzeigen # CONFIG_ ist nicht gesetzt.

# CONFIG_ ist nicht festgelegt In diesem Fall deaktivieren Sie auch explizit diese Konfiguration. Die so erzeugte Konfigurationsdatei (.config) wird wie folgt angezeigt: # CONFIG_ ist nicht gesetzt.

Allerdings mit einer dieser Optionen können Sie das Konfigurationselement deaktivieren; aber nach @ Alexandre Kommentar scheint es, dass "nicht festgelegt" ist der richtige Weg.

Sie können für weitere Einzelheiten über die .config und defconfig Datei auf den untenstehenden Link entnehmen:

What exactly does Linux kernel's `make defconfig` do?

+2

Nein, der richtige Weg zum Deaktivieren einer Option ist die Verwendung von "ist nicht festgelegt". 'n' sollte nicht verwendet werden (und wird nie im Kernel verwendet, außer Unicore32 und die Daten stammen aus dem Jahr 2011). –

+0

@AlexandreBelloni, das scheint jetzt die richtige Antwort zu sein, wenn ich mehr Konfigurationen und mehr Distributionen betrachte – user3342339

1

CONFIG_<optionName>=n nicht gültig ist. Das ist nur nicht wie Kconfig Optionen angegeben sind. # CONFIG_<optionName> is not set ist, wie Sie angeben, dass eine Option nicht festgelegt ist.

Verwandte Themen