.#trankschenke.de Livin' on the Edge
  • About Team
    • Matches
    • Mitglieder
    • Clanregeln
    • History
  • Server
    • Banlist
    • Serverregeln
    • HL-Stats
    • GSL
  • Community
    • Neuigkeiten
    • Forum
    • F.A.Q
    • Files
    • Mitgliederliste
  • Misc
    • Kontakt
    • Seitenstatistik
    • Datenschutz-Bestimmungen
    • Impressum
  • LOGIN

Forum

    Du bist hier: 
  1. Forum
  2. trankschenke.de | HowTo
  3. GNU/Linux Debian
  4. [Gameserver] Linux-Kernel-Kompilierung

Sortierung

 

Thema: [Gameserver] Linux-Kernel-Kompilierung

2
JamesDaRock

offline

Administrator

Beiträge 64

15.09.2021

Dieser Artikel ist Teil des Linux-Optimierungsleitfaden . Es beschreibt, wie Sie Ihren eigenen benutzerdefinierten Kernel erstellen. Weitere Schritte zur Optimierung des Systems für Gameserver sind im Hauptartikel beschrieben. Bitte lesen Sie das zuerst.
 


Mit freundlichen Grüßen
JamesDaRock
(Ich höre was ich hören will, links rein, rechts raus. Und hast du fragen, frag die andern, J.D. macht blau)
11.12.2021 | 19:07
2
JamesDaRock

offline

Administrator

Beiträge 64

15.09.2021

Vorbereitungen

Alle folgenden Operationen müssen als Root auf Ihrem Linux-Server ausgeführt werden. Es ist gängige Praxis, alle Ihre Kernel in /usr/src zu haben, also gehen Sie in dieses Verzeichnis.
Hinweis: Verwenden Sie sudo nicht, um die Befehle als Root auszuführen. Führen Sie stattdessen su - aus, um sich als Root anzumelden (es wird Sie nach dem Root-Passwort fragen, sudo passwd setzt Ihnen das Root-Passwort, wenn Sie es nicht kennen und sudo zuvor verwendet haben).

Auswählen eines Patch-Sets

Für ganz unterschiedliche Zwecke stehen unterschiedliche Patch-Sets für den Linux-Kernel zur Verfügung. Einige von ihnen können dazu beitragen, die Qualität von Gameservern zu verbessern. Neuere Kernel-Versionen (seit 2.6.32 oder so) funktionieren auch ohne Patch (dh einen Vanilla- Kernel) sehr gut , daher wird empfohlen, zuerst den neuesten Vanilla-Kernel auszuprobieren. Die ungepatchten Kernel sind hier verfügbar:
  • ftp://ftp.kernel.org/pub/linux/kernel/v2.6
Stellen Sie sicher, dass Sie den vollständigen Quellcode -Tarball herunterladen, nicht nur den Patch zur letzten Version ( zB linux-2.6.35.2.tar.bz2 statt patch-2.6.35.2.bz2 ). Achtung, die Liste ist alphabetisch und nicht nach Zeit sortiert.
Hier ist eine Liste von Patches, von denen bekannt ist, dass sie gute Ergebnisse liefern:
  • kein Patch / Vanilla (verwenden Sie die neueste Kernel-Version)
  • RT-Linux / Echtzeit-Patches: ftp://ftp.kernel.org/pub/linux/kernel/projects/rt
  • ZEN-Kernel: http://zen-kernel.org
  • CK-Patches: ftp://ftp.kernel.org/pub/linux/kernel/people/ck/patches/2.6
Welcher dieser Patches am besten funktioniert, hängt von vielen Faktoren ab. Der RT-Patch ist heutzutage nicht mehr unbedingt der beste. Es ist bekannt, dass der ZEN-Patch auch dann gut funktioniert, wenn Sie sich gegen den Betrieb der Server mit Echtzeitplanung entscheiden (wie in einem der späteren Abschnitte beschrieben). Der CK-Kernel erzeugt wahrscheinlich die besten Ergebnisse, wenn er Echtzeit-Scheduling verwendet.
Wenn Sie sich für einen bestimmten Patch entscheiden, stellen Sie sicher, dass Sie die neueste Version des Patches und den passenden Kernel-Tar-Ball herunterladen, dh wenn Sie Patch-2.6.33.7-rt29.bz2 verwenden, muss Ihr Kernel-Tar-Ball linux sein -2.6.33.7.bz2. Normalerweise ist das nicht die neueste Kernel-Version! Wenn Ihre Versionen nicht übereinstimmen, schlägt das Patchen fehl und der Kernel wird (wahrscheinlich) nicht kompiliert.
Sie können die Dateien direkt auf Ihren Server herunterladen (um den großen Tar-Ball nicht zweimal über Ihre Heimverbindung kopieren zu müssen) mit dem wget- Befehl, zB:
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.7.tar.gz 
wget http://kernel.org/pub/linux/kernel/projects/rt/patch-2.6 .33.7-rt29.gz
Dieses Handbuch wird sich weiterhin auf linux-2.6.33.7.tar.gz / patch-2.6.33.7-rt29.gz beziehen. Stellen Sie sicher, dass Sie dies durch den Patch und die Version ersetzen, die Sie in diesem Handbuch ausgewählt haben.

Kernel entpacken und patchen

Nun muss der Kernel entpackt und gepatcht werden:
tar zxf linux-2.6.33.7.tar.gz
mv linux-2.6.33.7 linux-2.6.33.7-rt29
cd linux-2.6.33.7-rt29
Der nächste Befehl hängt davon ab, wie der Patch gepackt ist. Im Fall einer gz-Datei verwenden Sie:
zcat ../patch-2.6.33.7-rt29.gz | Patch -p1
Im Falle einer lzma-Datei sollte dies lauten:
lzcat ../2.6.36-zen2.patch.lzma | Patch -p1
Wenn Sie eine bzip2-Datei haben, verwenden Sie:
bzcat ../patch-2.6.39-ck2.bz2 | Patch -p1
Jetzt ist die gepatchte Kernel-Quelle in Ihrem aktuellen Verzeichnis bereit!

Kernel konfigurieren

Kopieren Sie zuerst die aktuelle Kernel-Konfiguration (ist auf den meisten Systemen nicht notwendig, schadet aber nicht):
cp /boot/config-`uname -r` .config
Zum Starten des Konfigurationsmenütyps:
make menuconfig
In den meisten Fällen (eigentlich abhängig von Ihrer Distribution) wird die Konfiguration des laufenden Kernels für die Standardkonfiguration verwendet. Um den Kernel jedoch für die Bedürfnisse des Gameservers zu optimieren, müssen Sie bestimmte Einstellungen ändern. Um durch das Menü zu navigieren, verwenden Sie die Auf-/Ab-Tasten und drücken Sie die Eingabetaste, um ein Untermenü zu öffnen. Der Status einer Einstellung kann durch Drücken der Leertaste geändert werden ([*] bedeutet aktiviert, [M] bedeutet aktiviert als Kernelmodul und [ ] bedeutet deaktiviert). Um ein Untermenü zu verlassen, wählen Sie mit den linken/rechten Tasten Exit und drücken Sie Enter. Wenn Sie weitere Informationen zu einer Option erhalten möchten, wählen Sie auf die gleiche Weise Hilfe aus.

Kompilieren des Kernels

Verlassen Sie das Hauptmenü und bestätigen Sie, dass Ihre Änderungen gespeichert werden sollen. Um den Kernel zu kompilieren und zu installieren, führen Sie die folgenden Befehle aus (einen Kaffee holen, das dauert einige Zeit...):
make clean
make
make install modules_install

Vorbereitung zum Booten

Um Ihren neuen Kernel zu booten, müssen Sie Ihren Bootloader entsprechend konfigurieren. Zuerst müssen Sie herausfinden, welchen Bootloader Sie installiert haben. Praktisch alle modernen Distributionen verwenden entweder GRUB LEGACY oder GRUB 2. Führen Sie den folgenden Befehl aus, um herauszufinden, welche Version Sie verwenden:
grub-install -v
Ich werde so etwas ausgeben:
grub-install (GNU GRUB 1.98)
In diesem Fall wird Version 1.98 installiert. Wenn diese Versionsnummer die Form 0.NN hat (normalerweise 0.97), bedeutet dies, dass Sie GRUB LEGACY installiert haben. Wenn Ihre Versionsnummer die Form 1.NN hat (zB 1.98), haben Sie GRUB 2 installiert. Bitte fahren Sie mit dem Unterabschnitt fort, der Ihrer Grub-Version entspricht.

GRUB VERMÄCHTNIS

GRUB LEGACY muss mit der Datei /boot/grub/menu.lst (oder /boot/grub/grub.conf) konfiguriert werden . In dieser Datei sind alle Einträge des Bootmenüs angegeben. Es enthält bereits Menüeinträge, die zum Booten Ihres aktuellen Kernels erforderlich sind und die Sie behalten sollten, um Ihr System im Fehlerfall booten zu können. Fügen Sie vor allen anderen Einträgen einen neuen Eintrag für den neuen Kernel hinzu. Wenn Sie dies getan haben, sieht Ihre Datei menu.lst so aus ( nicht kopieren + einfügen , sie muss entsprechend Ihrer Linux-Installation geändert werden! Und ignorieren Sie alle Zeilen, die mit "#" beginnen, da es sich nur um Empfehlungen handelt) :
default         0
timeout         1

title           Debian GNU/Linux, RT Kernel
root            (hd0,1)
kernel          /boot/linux-2.6.33.7-rt29 root=[replace-this-with-your-boot-device]

[... weitere Booteinträge, unverändert lassen...]
Hinweis: /dev/sda1 muss das Gerät sein, das das Root-Dateisystem enthält. (hd0,1) muss auch mit der Root-Partition übereinstimmen (hd0 = sda und hd0,1 = sda1 usw.). Schaut einfach mal genau hin, was schon da ist. Kopieren Sie einen bestehenden Block und ändern Sie nur den Kernel und die initrd, aber lassen Sie alle anderen Optionen unverändert.
Wenn Sie nicht wissen, welches Startgerät Sie angeben müssen, führen Sie den folgenden Befehl aus:
mount  | grep "on / "
was zu einer Ausgabe wie dieser führt:
/dev/sda5 auf / ext3 eingeben (rw,noatime)
In diesem Beispiel ist /dev/sda5 das Boot-Gerät, geben Sie also "root=/dev/sda5" an.
Wenn Sie die Kernel-Version nicht genau kennen, können Sie mit folgendem Befehl alle installierten Kernel auflisten:
ls -lt /boot/vmlinuz-*
Die am häufigsten aufgeführte ist die neueste, die Sie wahrscheinlich gerade installiert haben.

GRUB 2

GRUB 2 kann mit einem automatisierten Tool konfiguriert werden. Zuerst müssen Sie sicherstellen, dass einige Einstellungen für dieses Tool korrekt sind. Bearbeiten Sie die Datei /etc/default/grub und stellen Sie sicher, dass sie Folgendes enthält:
GRUB_DEFAULT=saved
GRUB_DISABLE_RECOVERY=true
Beide Variablen werden wahrscheinlich bereits vorhanden sein, also ändern Sie sie entsprechend (und stellen Sie sicher, dass sie nicht mehr empfohlen werden). Dann einfach ausführen:
update-grub
um Ihre GRUB 2-Konfiguration zu aktualisieren, damit sie den neuen Kernel enthält. Das Tool listet alle Boot-Images auf, die es finden kann, und platziert sie in dieser Reihenfolge in Ihrem Boot-Menü. Legen Sie den neuen Kernel als Standard-Kernel zum Booten fest, indem Sie Folgendes ausführen:
grub-set-default [number]
und ersetzen Sie [Nummer] durch die Nummer des Kernels in der ausgedruckten Liste von update-grub, beginnend bei 0 und nur Linux-Images zählend. Wenn die Ausgabe von update-grub also so aussah:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.35-24-generic
Found initrd image: /boot/initrd.img-2.6.35-24-generic
Found linux image: /boot/vmlinuz-2.6.33.7-rt29
Found linux image: /boot/vmlinuz-2.6.35-22-generic
Found initrd image: /boot/initrd.img-2.6.35-22-generic
Found memtest86+ image: /boot/memtest86+.bin
done
und vmlinuz-2.6.33.7-rt29 der Kernel ist, den Sie booten möchten, müssen Sie ausführen:
grub-set-default 1
da dies der zweite Kernel in der Liste ist.

Starten Sie Ihr System neu

Jetzt können Sie Ihr System neu starten. Lauf:
shutdown -r now
Überprüfen Sie nach dem Neustart, ob Sie den neuen Kernel ausführen:
uname -r
sollte Ihre neue Kernel-Version ausgeben.
Beachten Sie, dass der Neustart einige Zeit in Anspruch nehmen kann, insbesondere wenn während des Bootvorgangs eine Dateisystemprüfung durchgeführt wird. Dies passiert von Zeit zu Zeit (je nach Dateisystem und dessen Konfiguration) und dauert dann sehr lange (ca. eine halbe Stunde, stark abhängig von Datengröße und Anzahl der Dateien).
Fahren Sie nach dem Booten Ihres neuen Kernels mit dem Linux-Optimierungsleitfaden .


Mit freundlichen Grüßen
JamesDaRock
(Ich höre was ich hören will, links rein, rechts raus. Und hast du fragen, frag die andern, J.D. macht blau)
11.12.2021 | 19:15

Sortierung

 



Um ein Thema zu eröffnen musst du registriert und angemeldet sein!

• registrieren
• anmelden

Letzter Beitrag

Forum Feed

Entbann SilenTh.* STEAM_0 : 0 : 792538 Schlosskell...
Bann aufheben
ucze sie
Bitte um Entbannung :)
neue Maps

Neuigkeiten

News Feed

DerSchlossKeller Map-Update HL-StatsX:CE reset Happy new year Kernel Update auf Version 6 Final Fantasy VII Remake

Downloads

Datei Feed

    GeoLite2-Country_20211207 GeoLite2-City_20211207 GeoLite2-ASN_20211207 5.15.4_amd64 5.13.8_amd64

Forumposts

Downloads

registrierte Benutzer

Benutzer online

Letzte Aktivität

offline ~Shorty~
letzte Aktivität vor: 5 Stunden und 58 Minuten
offline ^iVilsa <3
letzte Aktivität vor: 9 Stunden und 02 Minuten
offline Fetzi
letzte Aktivität vor: 9 Stunden und 43 Minuten
  • Impressum
  • Datenschutz
  • Kontakt
  • Counter
All content copyright trankschenke.de © Date | .
All rights reserved.
🍪 Cookies. Diese Website verwendet Cookies. Wenn Sie diese Website nutzen stimmen Sie der Verwendung von Cookies zu!. Hier erfahrt ihr alles zum Datenschutz Akzeptieren