Kernel/Konfiguration

From Gentoo Wiki
< Kernel
Jump to: navigation, search
This page is a translated version of the page Kernel/Configuration and the translation is 28% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Dieser Artikel beschreibt die manuelle Konfiguration und Einrichtung des Linux Kernels. Für eine automatische Methode siehe den genkernel Artikel.

Symlink setzen

Der Symlink /usr/src/linux sollte immer auf die Kernelquellen zeigen, die derzeit verwendet werden. Dies kann mit einem der folgenden drei Methoden erfolgen:

1. Die Kernelquellen mit aktivem symlink USE Flag installieren

Damit zeigt /usr/src/linux auf die neu installierten Kernelquellen. Falls notwendig, kann der Symlink später mit den folgenden beiden Methoden geändert werden:
2. Den Symlink mit eselect setzen
root #eselect kernel list
Available kernel symlink targets:
[1] linux-3.3.8-gentoo
[2] linux-3.4.9-gentoo
Hier werden die verfügbaren Kernelquellen angezeigt. Das Sternchen zeigt die momentan gewählten Kernelquellen an. Um zu anderen Kernelquellen zu wechseln, z.B. zum zweiten Eintrag, schreibe:
root #eselect kernel set 2

3. Den Symlink manuell setzen:

root #ln -sf /usr/src/linux-3.4.9-gentoo /usr/src/linux
root #ls -l /usr/src/linux
lrwxrwxrwx 1 root root 11 Aug 29 22:10 /usr/src/linux -> /usr/src/linux-3.4.9-gentoo


Konfigurationsprogramme

Der Kernel selber bietet mehrere Programme, um ihn zu konfigurieren:

Command Description
make config Text based configuration. The options are prompted one after another. All options need to be answered, and out-of-order access to former options is not possible.
make menuconfig An ncurses-based pseudo-graphical menu (only text input). Navigate through the menu to modify the desired options.
make defconfig Generates a new config with default from the ARCH supplied defconfig file. Use this option to get back the default configuration file that came with the sources.
make nconfig Pseudo-graphical menu based on ncurses. Requires sys-libs/ncurses to be installed.
make xconfig Graphical menu using Qt5. Requires dev-qt/qtgui to be installed.
make gconfig Graphical menu using GTK+. Requires x11-libs/gtk+, dev-libs/glib, and gnome-base/libglade to be installed.
make oldconfig Review changes between kernel versions and update to create a new .config for the kernel.
make olddefconfig Generates a new configuration with default values from the ARCH supplied defconfig file while, at the same time, maintaining all the previous options set in the .config file found at /usr/src/linux/.config. This is a fast and safe method for upgrading a config file that has all the configuration options it needs for hardware support while at the same time gaining bug fixes and security patches.
make allyesconfig Enables all configuration options in the kernel. It will set all kernel options to *. Make sure a backup of the current kernel configuration is acquired before using this option!

Es gibt diverse Skript, um verschiedene Standardkonfigurationen zu erstellen. Siehe dazu:

root #make help

Konfiguration

Dieser Artikel erklärt die Konfiguration mittels make menuconfig, aber das Vorgehen ist für die anderen Menüs ähnlich.

root #cd /usr/src/linux
root #make menuconfig

Bedienung

Im nun erscheinenden Menü zeigt der blaue Balken die aktuelle Position an. Mit den Pfeiltasten Hoch und Runter kann die Position geändert werden. Die Pfeiltasten Links und Rechts durchlaufen die Menüleiste unten und bestimmen, was passiert, wenn die Enter Taste bestätigt werden. Select wechselt in ein Untermenü - die Menüeinträge enden mit ---> - während Exit das Untermenü wieder verlässt. Alternativ kann auch zweimal die Esc Taste gedrückt werden.

Pressing an associated letter key A-Z will move the position of the cursor lines that have characters in bold. The Y, M, N keys are excluded from navigation in this way; they are sanctified for other purposes. If a line begins with a Y, M, or N, the next character will be bold and capable of being jumped to. For example, relative to the cursor's current position, if the next line reads "Network Device Support --->" pressing the E key will move the cursor to that line.

Menüeinträge, die mit den folgenden Klammern beginnen, sind Treiber oder Funktionen, die man aktivieren kann:

Symbol(s) Description
[ ], [*] Options in square brackets can be activated or deactivated. The asterisk marks the menu entry as activated. The value can be changed with the space key. It is also possible to press Y key (Yes) to activate or N key (No) to deactivate the selected entry.


If the option is activated, the selected feature/driver will be built into the kernel and will always be available at boot time.

< >, <M>, <*> Options in angle brackets can be activated or deactivated, but also activated as module (indicated by a M). The values can be modified by pressing Y/N keys as before or by pressing the M key to activate the feature/driver as a module.


See the Kernel Modules article for differentiation.

{M}, {*} Options in curly brackets can be activated or activated as module but not be deactivated. This happens because another feature/driver is dependent on this feature.
-M-, -*- Options between hyphens are activated in the shown way by another feature/driver. There is no choice.

Des weiteren enthalten manche Menüeinträge eine Klassifizierung am Ende:

Tag Description
(NEW) This driver is new in the kernel and is maybe not stable enough.
(EXPERIMENTAL) This driver is experimental and most likely not stable enough.
(DEPRECATED) This driver is deprecated and not needed for most systems.
(OBSOLETE) This driver is obsolete and should not be activated.

Die meisten Optionen enthalten eine Beschreibung (in Englisch), die durch Drücken von H oder durch Auswahl von Help in der unteren Menüleiste angezeigt wird.

Treiberauswahl

Siehe den Hardwareerkennung Artikle oder die Artikel in der Hardware Kategorie.

Suchfunktion

Durch Drücken von / können die Treiber und Funktionen anhand ihrer Modulnamen gefunden werden.

Within menuconfig, use the / key to search modules by name.

As shown below, the search result will show numbers in front of the matches. Pressing 1 in the example below would make menuconfig jump straight to the option Bluetooth device drivers in the menu structure.

KERNEL Example output after searching for HCIBTUSB
Symbol: BT_HCIBTUSB [=m]                       
Type  : tristate                               
Prompt: HCI USB driver                         
  Location:                                    
    -> Networking support (NET [=y])           
      -> Bluetooth subsystem support (BT [=y]) 
(1)     -> Bluetooth device drivers            
  Defined at drivers/bluetooth/Kconfig:5       
  Depends on: NET [=y] && BT [=y] && USB [=m]

Allgemeine Gentoo-Einstellungen aktivieren

In sys-kernel/gentoo-sources und anderen vom Kernel Project gepflegten Kerneln gibt es die Option CONFIG_GENTOO_LINUX. Diese setzt einige in typischen Installationen benötigten Kernel-Optionen.

Die Einstellung wählt automatisch tmpfs- und devtmpfs-Unterstützung aus, die unter Gentoo für /dev benötigt werden. Zukünftig soll dies auf andere in Gentoo-Systemen benötige Optionen erweitert werden. Mehr Informationen finden sich wie oben beschrieben in der Beschreibung im Kernel-Konfigurationsprogramm.

Kompilieren

Nachdem der Kernel konfiguriert wurde, muss er nun kompiliert werden:

root #make

Wer einen Prozessor mit mehreren Kernel hat, kann die Arbeit auf alle Kerne verteilen. Dazu gibt man den Parameter -j(NUMBER_CORES +1) mit an. Für einen Zweikern-Prozessor also:

root #make -j3

A quad core system contains four logical cores plus one (4 + 1):

root #make -j5

Einrichtung

Wurde Treiber im Kernel als Module aktiviert, so muss man diese installieren:

root #make modules_install

Die Module werden in einen Unterverzeichnis von /lib/modules kopiert.

Nun installiert man den Kernel:

root #make install

Dieser Befehl führt das Programm /sbin/installkernel aus, das zum sys-apps/debianutils Paket gehört. Der neue Kernel wird in {{Path|/boot//vmlinuz-{version}}} installiert. Falls bereits ein symbolischer Link /boot/vmlinuz existiert, wird er erneuert, indem ein Link von /boot/vmlinuz auf den neuen Kernel gelegt wird. Der vorher installierte Kernel ist unter /boot/vmlinuz.old verfügbar. (installkernel Manpage). Das gleiche gilt für config- und System.map-Dateien. Diese Verknüpfungen sind praktisch, weil man so immer auf den neuesten Kernel verweisen kann, ohne den Dateipfad ändern zu müssen (z.B. bei der Konfiguration des Bootloaders).

Bootloader

Man muss die Bootloader-Konfiguration anpassen, damit der neue Kernel beim Systemstart geladen wird.

Schließlich muss das System mit dem neuen Kernel neu gestartet werden.

Comparing current kernel configuration with default configuration

Use the following procedure to get an overview of the kernel configuration settings that deviate from the default. Keep in mind that the modification of one configuration setting may alter additional configuration settings.

root #cd /usr/src/linux
root #cp .config ../.config.working
root #make defconfig
root #mv .config ../.config.default
root #cp ../.config.working .config
root #cd ..
root #/usr/src/linux/scripts/diffconfig .config.working .config.default > .config.diff

The search function in make menuconfig can be used to look up the symbols and their interpretations. When you're done, clean up:

root #cd /usr/src/
root #rm .config.working .config.default .config.diff

See also