Kompilowanie jądra

Z ThinkPad-Wiki

(Przekierowano z Kernel compilieren)
Przejdź do: nawigacja, szukaj

Tutaj dowiesz się, jak skompilować własne jądro, wprowadzić poprawki (patche) i odblokować funkcje systemowe niskiego poziomu w Linuksie.

Spis treści

Co daje samodzielnie skompilowane jądro?

Powertop 1.10 rozpoznaje w jądrze 2.6.26 także stan głębokiego uśpienia C4
Poertop 1.10 erkennt unter Kernel 2.6.26 auch C4 Deeper Sleep
  • Przejście z jądra 2.6.24 na 2.6.25 ma sens, ponieważ liczba przerwań rescheduling i timer jest wreszcie wyraźnie mniejsza, dzięki czemu jądro przy niewielkim obciążeniu zużywa około 0,75 W ±0,25 W mniej energii. T61 14,1" Wide + Nvidia Quadro 140 (z najnowszym sterownikiem Nvidia) pobiera około 11,5 W z włączonym Wi-Fi, przy najniższej jasności i wyładowanych modułach USB. Wcześniej było to około 12,5 W (wersja 64-bitowa Ubuntu Hardy).
  • Z jądrem 2.6.26 dioda LED WLAN wreszcie działa.
  • Jądro można „spatchować”, na przykład patchem PHC, aby pracować z niższymi wartościami napięcia (undervolting), albo włączyć ochronę dysku twardego (Hdaps). Wymaga to ponownej kompilacji.
  • Nowa wersja PowerTOP 1.10 wymaga jądra 2.6.25 lub nowszego
  • Skompilowanie sterowników USB w jądrze zapewnia działające USB autosuspend, a tym samym oszczędza 1–2 W

Czy warto podjąć ten wysiłek, trzeba zdecydować samemu. Nakład pracy to w każdym razie edycja konfiguracji jądra (możliwa w interfejsie graficznym, a jeśli się znasz – lub podążasz za tą instrukcją – zajmuje to 5 minut) oraz około godziny kompilacji (w zależności od mocy komputera i wyboru modułów). Następnie trzeba ręcznie zainstalować sterownik karty graficznej (np. sterownik Nvidia; pomocny może być Envy lub Kernelcheck). Dodatkowo trzeba później dostosować dowiązanie symboliczne do katalogu z firmware (np. dla firmware WLAN Intel3945).

Wadą może być to, że jądra „bleeding edge” są też mniej dopracowane. Warto więc wcześniej sprawdzić, jakie problemy mogą wystąpić z danym jądrem i które błędy nie zostały jeszcze rozwiązane.

Kompilacja ręczna czy za pomocą skryptu?

Zasadniczo istnieją dwie drogi do nowego jądra: kompilacja ręczna lub zautomatyzowana za pomocą skryptu, np. Kernelcheck. Wynik jest ten sam. Niektórzy eksperci wolą wariant ręczny, bo widzą dokładniej, co się dzieje. Kernelcheck jednak wykonuje swoją pracę niezawodnie i oszczędza pisania. A dla początkujących znacznie ułatwia kompilowanie jądra.

Konfiguracja jądra

Największą przeszkodą jest konfiguracja nowego jądra. Ponad 100 opcji przytłacza. Nie trzeba jednak przechodzić przez wszystkie – można przenieść dotychczasową konfigurację do nowego jądra. Robi się to automatycznie poleceniem make oldconfig, a Kernelcheck robi to samodzielnie. Bez dalszej ręcznej edycji sterowniki Wi-Fi i dźwięku nie zostaną jednak aktywowane. Te opcje trzeba więc zaznaczyć ręcznie w konfiguracji, zob. zrzuty ekranu.

Ręczna kompilacja jądra

Przebieg w skrócie na przykładzie jądra 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

Kompilacja jądra za pomocą Kernelcheck

Kernelcheck umożliwia wygodne sprawdzenie stanu jądra i automatyzuje proces kompilacji
Kernelcheck erlaub die komfortable Prüfung des Kernelstatus und automatisiert den Kompilier-Prozess
Graficzna konfiguracja jądra
Grafische Konfiguration des Kernels
Ustawienia konfiguracji jądra dla dźwięku Intel
Kernel Config-Einstellungen für Intel Sound
Kernelcheck oferuje opcję wprowadzania patchy w terminalu, a tym samym indywidualnego dostosowania jądra. Wszystko inne jest zautomatyzowane skryptem
Kernelcheck bietet die Option, Patches in einem Terminal durchzuführen und damit individuelle Anpassungen am Kernel vorzunehmen. Alles andere ist per Script automatisiert

nieco łatwiej można to zrobić za pomocą Kernelcheck. Niezbędne kroki:

  • Pobierz Kernelcheck jako .deb, zainstaluj i uruchom
  • Pozwól sprawdzić wersję jądra („get Kernel Information”) i w razie potrzeby wybierz konkretną (zwykle nie jest potrzebna żadna zmiana)
  • w opcjach patchy wybierz „Custom Patch”, jeśli chcesz dodać patche ręcznie (zalecane)
  • wybierz „Build new Kernel” (z menu)
  • pojawi się terminal, w którym samodzielnie dodajesz patche (zob. Patche poniżej)
  • es wird eine Kernel-Konfiguration aus der alten generiert und dann grafisch angezeigt (s. Abb.). Hier muss man die gewünschten Änderungen wählen:
    • do włączenia: dźwięk (ALSA, Intel HD i AC97) oraz WLAN (np. iwl3945), zob. ilustracje
  • Zapisz konfigurację i zamknij okno. Pozwól przejść procesowi kompilacji (trwa ok. 1 godz. na procesorze Core Duo 1,6 GHz), a następnie uruchom ponownie komputer (Kernelcheck kompiluje i tworzy wpisy rozruchowe, wszystko automatycznie).

Czynności końcowe

Utwórz dowiązanie symboliczne do katalogu firmware wcześniejszego jądra:

sudo ln -s /lib/firmware/2.6.24-19-generic/ /lib/firmware/2.6.26.1-ultimate

Łatki jądra

  • Ochrona dysku twardego: zastosuj łatkę HDAPS dla jądra 2.6.26 według instrukcji thinkwiki. Nie zapomnij przy tym wcześniej zintegrować łatki libata, w przeciwnym razie system może się zawiesić
  • Undervolting: zastosuj patch PHC według tej instrukcji
  • później można obniżyć napięcia rdzenia według tej instrukcji
  • bezpośredni link do PHCTool – GUI dla patcha linux-phc. Link

Powertop 1.10

new in this release:

  • USB suspend statistics
  • support for iwl4965 power saving
  • Powertop now reports which C-states are supported by CPU/BIOS (requires 2.6.25 or newer kernel).
  • Updated translations: ja, pt_BR, hu, id, zh
  • Website: As of release 1.9, the PowerTOP website is part of the higher level lesswatts.org website.

Dla tej wersji nie ma jeszcze pakietów w repozytorium. Powertop trzeba więc skompilować samodzielnie ze źródeł. Służą do tego następujące 5 poleceń (rozpakowanie, przejście do właściwego katalogu, kompilacja, instalacja, uruchomienie):

tar -zxf powertop-1.9.tar.gz
cd powertop-1.9
make
make install
powertop

Doświadczenia użytkowników z wersjami jądra

  • Kernel 2.6.26-Ultimate@x61t: Działa stabilnie. Pobór mocy nieco niższy niż w 2.6.24. USB autosuspend wreszcie działa. Dioda WLAN również. I Powertop 1.10. Niestety wznawianie po Suspend to RAM nie działa - status: niewyjaśniony --pibach 15:15, 20 lip 2008 (CEST)
  • Kernel 2.6.26.1-Ultimate@x61t: Działa stabilnie, wreszcie także z Suspend to RAM. --pibach 20:55, 8 sie 2008 (CEST)

Usuwanie starych wersji jądra

Niepotrzebne już wersje jądra można wygodnie usunąć za pomocą menedżera pakietów (np. Synaptic).

Linki

zob. także ten wątek i ten na forum ThinkPad

Narzędzia osobiste
Think-Wiki