Linux-anpassen

Aus Fedorawiki.de
Version vom 5. Oktober 2011, 13:51 Uhr von Acryler (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Wichtige Hinweise: Diese Anleitung beschreibt den Vorgang der Erstellung von Vanilla-Linux NICHT Fedora-Linux, allerdings mit einigen Hinweisen für Fedora-Nutzer versehen um das allgemeine Verständnis zu fördern.

Wenn Sie als Fedora-Nutzer etwas über die Vorbereitung und Inbetriebnahme eines Linux lernen möchten sind Sie hier goldrichtig.

Wenn Sie ein Linux vorbereiten um ihn neben Fedora zu nutzen, auf einem anderen Gerät oder zu einem anderem Zeitpunkt sind sie ebenfalls richtig.

Wenn sie ein Linux anpassen wollen um ihn in ihrem oder einem Fedora einzusetzen sind sie hier falsch!

Um ein Vanilla-Linux in Betrieb zu nehmen empfiehlt sich ein Linux from Scratch (LFS) auf einem eigenen Massenspeicher. Wer die Notwendigkeit sieht einen angepassten Fedora-Linux zu erstellen sollte momentan auf die Seite: http://fedoraproject.org/wiki/Building_a_custom_kernel ausweichen. Ich werde den Artikel überarbeiten und übersetzen und hier erscheinen lassen. Das wird allerdings noch etwas Zeit benötigen. Solange wird nur der Link auf der Seite Fedora-Linux_anpassen sein.

Inhaltsverzeichnis

Kern erstellen und in Betrieb nehmen

Einleitung

Die entscheidende Frage ist wozu Linux eingesetzt werden soll. Generell wird hier das Ziel eines möglichst neuen Kerns angepasst an eigene Vorstellungen und Geräte im Einsatz für den "normalen" Betrieb. Mit Einstellungen für die eigenen Geräte und Feineinstellungen um diese Geräte im speziellen nutzen.

Wenn Sie Linux auf ihrem Toaster, ferngelenkten Hubschrauber, MP3-Player, Telefon oder ihrer Zentralheizung nutzen wollen wird diese Anleitung sie zwar grundsätzlich unterstützen aber ihr persönliches Anliegen nicht in jeder Einzelheit beschrieben sein.

Wichtige Regeln

Um Störungen in Fedoras Betrieb nicht zu gefährden sollte niemals /usr/src/linux für den Vorgang genutzt werden.

Für Einstellung und Erstellung des Kerns KEINE superuser/root Berechtigungen nutzen. Nur für ganz wenige Schritte ist diese Berechtigung erforderlich und erst dann wenn der Kern für das neue Betriebssystem eingerichtet wird.

Es ist eine gute Idee Documentation/Changes zu lesen. Vor allem ist die Tool-Chain wichtig. Für die erfolgreiche Erstellung eines betriebsbereiten Kerns ist es zwingend erforderlich die richtigen Ausgaben der Programme in der Werkzeugkette zu wählen.

Benötigte Programme für das Erstellen und in Betrieb nehmen von Linux

Grundsätzlich reichen 3 Pakete um Linux zu erstellen: Compiler, Linker und ein make-Programm.

Compiler
Der Kern ist überwiegend in C und an manchen Stellen in Assembler geschrieben.
Um den Kern zu erstellen ist gcc vorgeschrieben.

Um sicher zu gehen dass die richtige Ausgabe von GCC eingerichtet ist führen Sie GCC mit dem Parameter --version aus:

$ gcc --version

Linker
Das Zusammensetzen und Verbinden von Programmen geschieht nicht alleine durch gcc.
Das Paket binutils ist erforderlich. Auch hier ist die richtige Ausgabe zu wählen und der Befehl zur Prüfung ist:

$ ld -v

Make
Make's Aufgabe besteht darin festzustellen welche Dateien umgesetzt werden müssen und compiler und andere "Werkzeuge" zur Erstellung auszuführen. Der Kern erfordert die GNU Ausgabe von make. Es wird empfohlen die letzte stabile Ausgabe von make zu nutzen.

$ make --version

erledigt hier die Ausgabenprüfung.

Programme um den Kern zu nutzen

Grundsätzlich spielt es keine Rolle welche Ausgabe von Nutzerprogrammen genutzt wird, allerdings gibt es einige Ausnahmen. Es kann sein dass einige Programme an die jeweilige Ausgabe des Kerns angepasst werden müssen.

util-linux Hier wird die Nutzung der letzten Ausgabe empfohlen um möglichst alle Leistungsmerkmale des Kerns zu nutzen.

$ fdformat --version

gibt Aufschluss über die auf dem System genutzte Ausgabe.

module-init-tools Sollen Kern-Module genutzt werden ist dies Paket erforderlich.

$ depmod -V

gibt hier Auskunft über die momentan eingerichtete Ausgabe des Pakets.

Programme zum Umgang mit Dateisystemen

werden benötigt um Massenspeicher vorzubereiten und einzusetzen, der Einsatz der Massenspeicher beinhaltet auch Wartung und Einstellung.


Das Paket util-linux enthält einige davon. Fedora 15 nutzt von Haus aus ext4 als Dateisystem. Daher wird das Paket e2fsprogs automatisch eingerichtet.

$ tune2fs

Zeigt die Paket-Ausgabenummer.

Sollen Nutzern nur Anteile eines Massenspeicher zur Verfügung stehen wird quota benötigt. Das Paket quota ist in Fedora ebenfalls eingerichtet.

NFS benötigt das Paket nfs-utils

$ showmount --version

Andere Programme

udev Ohne dieses Paket ist Fedora nicht lauffähig.

$ udevadm -V

Prozess Kontrolle
Das Programmpaket procps enthält die weit verbreiteten Programme ps und top

$ ps --version

PCMCIA - PC-Karte/PC-Card
Das Paket pcmciautils ermöglicht die Kontrolle von Geräten an dieser Transfer-Schnittelle.

$ pccardctl -V

Beschaffung von Linux

Linux selbst und andere Programme, Programmpakete und Informationen bezüglich Linux finden sich dem URL http://www.kernel.org. Hier ein deutscher FTP-Spiegel: http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.kernel.org/pub/ Für den ersten Versuch ist die Kopie sicher via Browser am schnellsten.

html-Kopie

Wenn Sie einen Webbrowser nutzen wollen um eine Kopie des Programms zu erhalten nutzen Sie den URL http://www.kernel.org/.

FTP-Kopie

wget-Kopie

curl-Kopie

rsync-Kopie

git-Kopie

Einstellung und Erstellung

Die Einstellungen sind in einer Datei namens .config gespeichert die im obersten Verzeichnis des Linux Verzeichnisses liegen muss. In einem noch unberührten Verzeichnis ist diese Datei noch nicht vorhanden. Sie kann von Grund auf erstellt werden oder von einem anderem Ort, z.B. einem bereits laufenden System, kopiert werden.

Neuerstellung der Einstellungen

make config

Im Linux Verzeichnis

$ make config

ausführen startet diesen Vorgang.

Die Abfrage reagiert auf die Tasten

y - Zu Linux hinzufügen
n - Nicht hinzufügen
m - Als Modul hinzufügen
? - Zusammenfassung zusätzlicher Information zu einem Punkt.

Der Buchstabe welche in der Abfrage groß geschrieben wird gilt als Vorauswahl und kann mit der Eingabetaste bestätigt werden. Rund 2.000 Einstellungen müssen in diesem Fall bestätigt werden.

make defconfig

Im Paket sind vordefinierte Einstellungen enthalten, die mit der Kommandozeile

$ make defconfig

erstellt wird. Anhand dieser erstellten .config können nun Anpassungen erfolgen.

Anpassungen vornehmen

Als Hilfsmittel stehen 4 Programme zur Verfügung die jeweils unterschiedliche Programmsammlungen für Fensterkontrollelemente nutzen.
nconfig - Textoberfläche mit Farben.
menuconfig nutzt ncurses in der Shell.
gconfig nutzt gtk2 unter X.
xconfig nutzt Qt unter X.

nconfig

$ make nconfig

menuconfig

$ su -c 'yum -y install ncurses-devel'
$ make menuconfig

gconfig

$ su -c 'yum -y install gtk2-devel glib2-devel libglade2-devel'
$ make gconfig

xconfig

$ su -c 'yum -y install qt-devel'
$ make xconfig

Erstellen

Zum Erstellen von Linux reicht ein simples make. Sie werden allerdings make's -j (jobs) Parameter nutzen wollen. Auf einem moderneren I7 Prozessor kann der Kern in unter 5 Minuten (1:32 mit defconfig bei mir) erstellt werden.

$ make all -j$((`nproc` *2))


$((`nproc` *2))

ist ein Bash Ausdruck. Das Programm nproc ermittelt die Anzahl der verfügbaren Prozessor(-kerne), diese wird mit 2 multipliziert und macht den Ausdruck in $(()) komplett.

Erweitertes Erstellen

Erstellung in einem anderen Verzeichnis

Make's Parameter O erlaubt es ein Verzeichnis für die Erstellung anzugeben.

$ make O=$gewünschtes_Verzeichnis

Beispiel:

$ make O=~/linux

make all -j$((`nproc` *2)) O=~/linux

Teilerstellung

$ make help

Zeigt alle* gültigen Möglichkeiten was erstellt werden kann. Wird make all genutzt werden alle make Ziele erstellt die nach make help mit einem * Stern versehen sind. Momentan sind dies: vmlinux , modules und bzImage.


Wahl einer "fremden" Architektur

Soll Linux für ein anderes Gerät als dem zur Erstellung genutzten Rechner erstellt werden und weicht die Architektur von diesem Gerät ab sind einige andere Arbeitsschritte notwendig.

$ make ARCH=arm defconfig

erstellt die voreingestellte Einstellungsdatei für die ARM-Architektur.

$ make ARCH=arm CROSS_COMPILE=/usr/local/bin/$arm-tool-chain

Führt den Erstellungsvorgang für die angegebene Architektur aus. Allerdings müssen die notwendigen Programme für Ziel-Architektur verfügbar sein.

$ yum list arm-*

sollte bei der Arbeit helfen.

Insbesondere sollte die Datei README im Unterverzeichnis der jeweiligen Architektur beachtet werden.

Einrichten und Start von Linux

Kern aktualisieren

Bedeutende Anpassungen

Linux Parameter Verzeichnis

Start-Parameter

Erstellungs-Parameter

Einstellungs-Parameter

Zusätzliche Informationen