Kernel kompilieren: Unterschied zwischen den Versionen
Pibach (Diskussion | Beiträge) |
Pibach (Diskussion | Beiträge) |
||
Zeile 8: | Zeile 8: | ||
* Mit Kernel 2.6.26 funktioniert die WLAN LED endlich. | * Mit Kernel 2.6.26 funktioniert die WLAN LED endlich. | ||
* Man kann den Kernel "patchen" beispeilsweise mit dem PHC-Patch, um mit niedrigeren Spannungswerten abreiten zu können (Undervolting) oder auch Festplattenschutz (Hdaps). Dies erfordert ein Neukompilieren. | * Man kann den Kernel "patchen" beispeilsweise mit dem PHC-Patch, um mit niedrigeren Spannungswerten abreiten zu können (Undervolting) oder auch Festplattenschutz (Hdaps). Dies erfordert ein Neukompilieren. | ||
* PowerTOP neue Version 1.10 erfordert den Kernel 2.6.26 | |||
Ob sich die Mühe hierfür lohnt muss man selber entscheiden. Der Aufwand besteht jedenfalls im Editieren der Kernel-Konfiguration (geht in einer grafischen Oberfläche und wenn man sich auskennt - oder dieser Anleitung folgt - ist das in 5 min erledig) etwa eine Stunde Compile-Vorgang (je nach Rechnerleistung und Modulauswahl). Dann muss man die Grafikkarte (z.B. Nvidia-Treiber) von Hand installieren (dabei kann Envy oder Kernelcheck helfen). Und ein Softlink auf das Firmware-Verzeichnis muss nachträglich angepasst werden (z.B. für Intel4965 Wlan-Firmware). | Ob sich die Mühe hierfür lohnt muss man selber entscheiden. Der Aufwand besteht jedenfalls im Editieren der Kernel-Konfiguration (geht in einer grafischen Oberfläche und wenn man sich auskennt - oder dieser Anleitung folgt - ist das in 5 min erledig) etwa eine Stunde Compile-Vorgang (je nach Rechnerleistung und Modulauswahl). Dann muss man die Grafikkarte (z.B. Nvidia-Treiber) von Hand installieren (dabei kann Envy oder Kernelcheck helfen). Und ein Softlink auf das Firmware-Verzeichnis muss nachträglich angepasst werden (z.B. für Intel4965 Wlan-Firmware). |
Version vom 17. Juli 2008, 16:06 Uhr
Hier gehts um Kernel kompilieren, Patches einbauen und andere systemnahe Funktionen unter Linux freischalten
Was bringt ein selbst compilierter Kernel?
- Der Sprung von 2.6.24 zu 2.6.25 lohnt sich insofern, als dass die Rescheduling und die Timer Interrupts endlich deutlich weniger sind und der Kernel dadurch bei geringer Last etwa 0,75W +-0,25W weniger Strom verbraucht. Ein T61 14,1" Wide + Nvidia Quadro 140 (mit dem neuestem Nvidia-Treiber) verbraucht etwa 11,5 W mit Wlan, bei niedrigster Helligkeit und entladenen Usb-Modulen. Da waren es vorher etwa 12,5W. (64-bit Version von Ubuntu Hardy).
- Mit Kernel 2.6.26 funktioniert die WLAN LED endlich.
- Man kann den Kernel "patchen" beispeilsweise mit dem PHC-Patch, um mit niedrigeren Spannungswerten abreiten zu können (Undervolting) oder auch Festplattenschutz (Hdaps). Dies erfordert ein Neukompilieren.
- PowerTOP neue Version 1.10 erfordert den Kernel 2.6.26
Ob sich die Mühe hierfür lohnt muss man selber entscheiden. Der Aufwand besteht jedenfalls im Editieren der Kernel-Konfiguration (geht in einer grafischen Oberfläche und wenn man sich auskennt - oder dieser Anleitung folgt - ist das in 5 min erledig) etwa eine Stunde Compile-Vorgang (je nach Rechnerleistung und Modulauswahl). Dann muss man die Grafikkarte (z.B. Nvidia-Treiber) von Hand installieren (dabei kann Envy oder Kernelcheck helfen). Und ein Softlink auf das Firmware-Verzeichnis muss nachträglich angepasst werden (z.B. für Intel4965 Wlan-Firmware).
Kernel Config
Die Optionen in der Config kann man beibehalten, in erster Linie verlängern sie nur erheblich den Kompilierprozess (bei mir etwa 40min statt 1:20h) und machen das Kernel-deb-Paket etwas größer. Einziges Manko, bei den ersten Configs waren nach der Auto-Anpassung die Wlan und Soundtreiber nicht mehr aktiviert (linux-image-2.6.24-16). Man musste die also in der Config manuell anwählen. Wie das im Moment ist, weiß ich nicht, da ich seitdem meine angepasste Config "mitschleppe". Daher würde ich raten alles per Default mitzunehmen wie es ist und lieber überflüssige Module per rc.local zu entladen. Unter "Networking-> Wireless" darauf achten das der mac80211 aktiv ist. Unter "Device Drivers-> Network Device Support -> Wireless LAN" darauf achten, evtl Deine Treiber als Modul zu aktivieren (ja nach Wlan-Karte halt). Und unter "Device Drivers -> Sound" sollte ebenfalls das meiste angewählt sein.
Kernel manuell compilieren
Der Ablauf in Kürze für den 2.6.25.7:
sudo apt-get install build-essential kernel-package xmlto libqt3-mt-dev #notwendige Pakete installieren cd /usr/src #ins Verzeichnis der Kernelsourcen wechseln wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.7.tar.bz2 #Herunterladen des neuen Kernels sudo -s #nicht der Königsweg, mich würden aber die 12 mal "sudo" die jetzt notwendig sind, nerven tar xjf linux-2.6.25.7.tar.bz2 #entpacken rm linux #evtl vorhandenes Verzeichnis löschen ln -s linux-2.6.25.7 linux #Softlink erstellen cd linu x #Verzeichnis wechseln cp /boot/config_$(uname -r) .config #aktuelle Kernelconfig zum neuen Kernel kopieren #patch -p1 -l < /Speicherort/des/Patches #evtl patchen, z.B. libata und hdaps make oldconfig #alte Config an neuen Kernel anpassen make xconfig #Config editieren make-kpkg clean #aufräumen make-kpkg --initrd --revision=meineeigeneVersion binary #Kaffee oder Tee trinken gehen #ln -s /lib/firmware/2.6.24-19-generic /lib/firmware/2.6.25.7 #evtl noch fehlenden Softlink setzen exit
Kernel mit Kernelcheck compilieren
etwas einfacher geht das mit Kernelcheck. Notwendige Schritte:
- Kernelcheck .deb runterladen und starten
- Kernelversion abfragen und ggf. bestimmte auswählen (normalerweise ist hier keine Änderung nötig)
- "Build new Kernel" anwählen
- es wird ein Terminal angeboten, in dem man die Patches selber hinzufügt (siehe unten
- es wird eine Kernel Konfiguration aus der alten generiert und dann grafisch angezeigt (s. Abb.). Hier muss man die gewünschten Änderungen wählen.
- einzubinden sind: Sound (ALSA, Intel HD und AC97) sowie WLAN (z.B. iwl3945)
- durchlaufen lassen und renooten (Kernelcheck kompiliert und macht die Boot-Einträge alles automatisch)
Nachbearbeitung
Firware Verzeichnis eines früheren Kernels symbolisch verlinken
Kernel Patches / Module
- APS-Patch funktioniert nicht, da er die Datei block/ll_rw_blk.c patchen will, die nirgendwo im 2.6.26er-Baum liegt. Der letzte APS-patch ist denn ja auch für 2.6.18.3 erschienen.
- Update: Der APS Patch geht: http://www.thinkwiki.org/wiki/HDAPS aber nicht vergessen, vorher den libata Patch zu integrieren, sonst bleibt evtl das System hängen
- Thinkpad-acpi
- Undervolting: PHC-Patch (2.6.26, nach Anleitung)
- tp_smapi;
- APS: How to protect the harddisk through APS Siehe auch Problem with APS harddisk parking
- WLAN-LED im iwlwifi-Treiber soll ja nun oob funktionieren. Naja, mal schauen, was wir zusammenstellen können.
noch integrieren:
daniel: "Zu tp_smapi: Worin besteht für Euch der Sinn einer Kernelintegration? Sinnvoller ist es doch den Treiber als Modul laden zu lassen, zumal dies auch eine separate Aktualisierung erlaubt. Zu thinkpad_acpi: Dieser Treiber ist bereits im Kernel integriert. Warum die manuelle Integration? Denn im Moment ist auch die kernelintegrierte Verion aktuell. Und tuxonice ist auch nur nötog, wenn der Ruhezustand nicht richtig funktioniert :)
Von daher bleib ich bei zwei Dingen, nämlich APS und PHC ^^ PHC wird übrigens wieder weiterentwickelt: PHC"
Links
siehe auch diesen Thread und diesen im ThinkPad-Forum