8.3. Linux-3.1.5

8.3.1. Installation des Kernel

Also erstmal dahin wo unsere Kernelquellen in Zukunft leben sollen:

cd /usr/src

dann entpacken des Kernel und in das neue Verzeichnis hinein wechseln:

tar xf /sources/pakete/linux-3.1.5.tar.xz &&
cd linux-3.1.5/

Tja was soll man hier schreiben :-) Machen wir es anhand eines Beispiels. Ich nutze meist lspci um zu sehen welche Chipsätze verbaut sind. Daraus können wir die wichtigsten Treiber für unser neues System entnehmen.

root:/usr/src/linux-3.1.5 # lspci
00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02)
00:06.0 System peripheral: Intel Corporation 82865G/PE/P Processor to I/O Memory Interface (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV36.2 [GeForce FX 5700] (rev a1)
02:0c.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)

Nachdem wir jetzt diese Infos haben werfen wir die Kernelkonfiguration an, vorher bereinigen wir den Kernel aber nochmal:

make mrproper &&
make menuconfig

Fangen wir an mit der Festplatte. Diese finden wir hinter dem Wörtchen IDE. Der Chipsatz der dort genannt ist wird im Kernel fest eingebunden. Hier haben wir zwei, einen für das alte IDE Subsystem und einen für das neuere SATA Subsystem:

Device Drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers ->
  Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

Alles was dort per se ausgewählt ist lassen wir auch erstmal so. Dann schauen wir welche Treiber alle für Intel ICH zuständig sind und wählen diese aus. Und zwar als fest in den Kernel eingebunden. Erkennbar an dem *.

Als nächstes die Grafikkarte. Die finden wir hinter VGA. Dort wird wieder ein Chipsatz genannt, also suchen wir diesen unter:

Device Drivers -> Graphics support -> Support for frame buffer devices -> nVidia Framebuffer Support

Falls nichts passen sollte wählen wir dort: VESA VGA graphics support. Das ist ein generischer Treiber der eigentlich immer funktionieren sollte.

Jetzt die Netzwerkkarte. Diese finden wir, logisch hinter dem Wort Ethernet controller. In diesem Fall eine Intel Gigabit Karte:

Device Drivers -> Network device support -> Ethernet (1000 Mbit) -> Intel(R) PRO/1000 Gigabit Ethernet support

Falls noch andere Treiber ausgewählt sind ignorieren wir dies vorerst. Damit hätten wir jetzt schon mal drei der Grundlegenden Komponenten erschlagen. Schauen wir uns nun den Prozessor an:

cat /proc/cpuinfo
...
model name      : Intel(R) Pentium(R) 4 CPU 2.60GHz
...

Der relevante Teil für uns. So nun auf nach der obersten Ebene des Menüs, durch anklicken von exit:

Processor type and features -> Processor family (Pentium-Pro) -> Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon

Alle anderen Optionen lassen wir wie sie sind, es sei denn Du weißt was Du da machst.

Damit wären wir auch schon fast durch, was noch fehlt ist der Treiber für ext4, dieser ist nicht per se ausgewählt:

File systems -> <*> The Extended 4 (ext4) filesystem

Fest ein kompiliert. In Ordnung nun verlassen wir via exit das Menü.

                                 | Do you wish to save your new kernel configuration?     |
                                 |  <ESC><ESC> to continue.                               |
                                 |--------------------------------------------------------|
                                 |                   < Yes >      <  No  >                |

Klar da sagen wir yes.

Dann geben wir auf der Kommandozeile ein beherztes:

 make && make modules_install

ein und warten bis er fertig ist.

Nun kopieren wir drei Dateien nach /boot

 cp -v System.map /boot/System.map_3.1.5-1 &&
 cp -v .config    /boot/config_3.1.5-1 &&
 cp -v arch/i386/boot/bzImage /boot/kern_3.1.5-1

Damit wäre die Kernelkonfiguration auch schon abgeschlossen, bleibt noch der Bootlader.

8.3.2. Inhalt des Paketes Linux

Installierte Dateien: config_3.1.5, kern_3.1.5 und System.map_3.1.5

Kurze Beschreibung

config_3.1.5

Die Konfigurationsdatei für den Kernel enthält in Textform unsere bei make menuconfig ausgewählten Optionen.

kernel_3.1.5

Linux ist ein Betriebssystemkern. Der Kern (Kernel) findet in einer Vielzahl von Distributionen und Betriebssystemen seine Anwendung. Der Begriff Linux bezeichnet somit gleichermaßen den Linux-Kern selbst, GNU/Linux-Distributionen wie auch Linux-basierte Systeme. Der Kernel eines Betriebssystems bildet die Hardware abstrahierende Schicht, das heißt, er stellt der auf dieser Basis aufsetzenden Software eine einheitliche Schnittstelle (API) zur Verfügung, die unabhängig von der Rechnerarchitektur ist. Die Software kann so immer auf die Schnittstelle zugreifen und braucht die Hardware selbst, die sie nutzt, nicht genauer zu kennen. Linux ist dabei ein modularer monolithischer Betriebssystemkern und zuständig für Speicherverwaltung, Prozessverwaltung, Multitasking, Lastverteilung, Sicherheitserzwingung und Eingabe/Ausgabe-Operationen auf verschiedenen Geräten.

System.map_3.1.5

Die System.map ist nicht zwingend notwendig, sie dient dazu, dass bei Kernelfehlern die Absturzadresse einem Funktionsnamen zugeordnet werden kann.