Aktualizacja i kompilacja jądra w Debianie/Budowanie jądra krok po kroku

Z Wikibooks, biblioteki wolnych podręczników.

Budowanie jądra krok po kroku, wymagania[edytuj]

Przygotowanie źródeł jądra 2.4.20[edytuj]

W poprzednim rozdziale pobraliśmy źródła jądra. Aktualnie są one zawarte w jednym skompresowanym pliku linux-2.4.20.tar.gz w katalogu domowym. W tym rozdziale przeniesiemy źródła do poprawnej lokalizacji i rozpakujemy je.

By skompilować nowe jądro, musimy je umieścić w katalogu /usr/src. Pewnie się zastanawiasz: "Skoro chciałem mieć źródła jądra w katalogu /usr/src, to dlaczego nie zapisałem ich tam od razu?". Po prostu nie miałeś uprawnień do zrobienia tego, ponieważ byłeś zalogowany jako zwykły użytkownik (przynajmniej mam nadzieję, że byłeś zalogowany jako zwykły użytkownik, a nie jako administrator (root)).

Nie polecam przeglądania stron WWW jako administrator. Twój komputer nie wybuchnie ani nic w tym stylu, ale robienie wszystkiego jako administrator jest ryzykowne. Zatem sugeruję pobieranie plików z internetu jako zwykły użytkownik i zapisywanie ich do swojego katalogu domowego. Gdy już to zrobisz, możesz wykorzystać polecenie su, by zalogować się jako administrator i przenieść pliki w bardziej bezpieczne miejsce, jeśli zachodzi taka potrzeba.

Jeśli jesteś na tyle obeznany z Linuksem (bez obaw, jeśli nie jesteś, i tak Ci za chwilę pomogę), zaloguj się jako administrator i przenieś plik linux-2.4.20.tar.gz ze swojego katalogu domowego do katalogu /usr/src.

Następnie rozpakuj plik, wpisując tar xvzf linux-2.4.20.tar.gz w linii poleceń. To stworzy katalog o nazwie linux-2.4.20 wewnątrz katalogu /usr/src.

Teraz stwórz dowiązanie symboliczne o nazwie linux, które będzie wskazywało na katalog linux-2.4.20, wpisując ln -s linux-2.4.20 linux. Jeśli takie dowiązanie istnieje, usuń je i stwórz ponownie, tak jak to opisałem powyżej.

Teraz możesz opuścić resztę tego rozdziału i udać się do rozdziału "Pliki potrzebne do konfiguracji i kompilacji jądra".

Jeśli powyższe cztery paragrafy wydają Ci się zagmatwane, to tutaj opisuję te same kroki, ale bardziej szczegółowo.

By przenieść plik linux-2.4.20.tar.gz do prawidłowej lokalizacji, wykonaj te kroki:

Krok 1: Otwórz okno terminala

Jeśli korzystałeś z mojego dokumentu opisującego instalację, to powinieneś mieć uruchomiony Menedżer Okien WindowMaker. Jeśli tak jest, kliknij prawym przyciskiem myszy na pulpicie, następnie z menu wybierz XShells i XTerm. Powinno pojawić się okno terminala. Jeśli używasz innego Menedżera Okien, użyj jakiejkolwiek innej metody, której wymaga dany menedżer, by uruchomić okno terminala.

Krok 2: Przejdź do katalogu, do którego zapisałeś plik linux-2.4.20.tar.gz

Upewnij się, że jesteś w swoim /home/<twoje imie> katalogu (lub tam gdzie zapisałeś plik linux-2.4.20.tar.gz). By to sprawdzić, wprowadź pwd w linii poleceń. pwd wyświetli, w jakim jesteś katalogu. Jeśli pwd wyświetli coś innego niż katalog domowy, wprowadź w linii poleceń cd /home/<twoje imie>, by przejść do swojego katalogu.

Krok 3: Zaloguj się jako administrator używając su

Jeśli nie jesteś zalogowany jako administrator, to teraz musisz to zrobić wprowadzając su w linii poleceń. Wprowadź hasło administratora, gdy zostaniesz o to poproszony.

Krok 4: Przenieś plik linux-2.4.20.tar.gz do katalogu /usr/src

Wprowadź w linii poleceń mv linux-2.4.20.tar.gz /usr/src. To powinno przenieść plik linux-2.4.20.tar.gz z katalogu domowego do katalogu /usr/src. Jeśli otrzymałeś komunikat Nie ma takiego pliku ani katalogu, to albo nie pobrałeś jądra z Internetu, albo znajdujesz się w niewłaściwym katalogu. Przejdź do katalogu, w którym znajdują się źródła, i spróbuj powtórzyć ten krok.

Krok 5: Sprawdź katalog /usr/src

Przejdź do katalogu /usr/src, wprowadzając cd /usr/src w linii poleceń. Następnie wprowadź polecenie ls -l. Jak pewnie wiesz, polecenie ls pokazuje listę wszystkich plików w aktualnym katalogu. Opcja -l, dodana po ls, pokazuje więcej informacji niż samo ls. Pokazuje informacje w długim (long) formacie; stąd -l. Powinieneś zobaczyć plik linux-2.4.20.tar.gz, który właśnie skopiowaliśmy do tego katalogu. To powinien być jedyny plik w tym katalogu. Jeśli tak jest, opuść resztę tego podrozdziału i przejdź do kroku 6.

Możliwe, że w katalogu będą, oprócz linux-2.4.20.tar.gz, również inne pliki. Jeśli posiadasz źródła starszego jądra, to będą one właśnie w tym katalogu. Możesz również mieć dowiązanie symboliczne wskazujące na te stare źródła.

Zanim przejdę dalej, pozwól mi wyjaśnić, czym jest dowiązanie symboliczne. Jest to dowiązanie lub nazwa zastępcza, wskazująca na inny plik lub katalog. Jeśli jesteś obeznany z systemem Windows, to dowiązanie symboliczne jest czymś podobnym do skrótu. Stworzymy dowiązanie symboliczne w Kroku 6, więc jeśli jeszcze nie wszystko jest jasne, miejmy nadzieję, że rozjaśni się, gdy stworzysz jakieś dowiązanie.

Teraz spójrz na inne pliki z katalogu /usr/src. Jest jakiś o nazwie "linux"? Jeśli nie, to możesz opuścić resztę tego podrozdziału i przejść do Kroku 6. Jeśli jest jakiś element o nazwie "linux", sprawdź, czy jest to dowiązanie symboliczne, czy też katalog. Możesz to ustalić, używając polecenia ls -l i oglądając jego wynik. Wprowadź ls -l w linii poleceń. Wynik powinien wyglądać mniej więcej tak (tylko lepiej sformatowany):

lrwxrwxrwx 1 root src 12 Oct 31 13:03 linux -> linux-2.4.18
drwxr-xr-x 14 573 573 4096 Aug 2 18:39 linux-2.4.18
-rw------- 1 clinton clinton 32219641 Oct 30 14:40 linux-2.4.20.tar.gz

Użyję pierwszego pliku z listy za przykład, służący do wyjaśnienia, gdzie należy szukać informacji o tym, czy plik jest dowiązaniem symbolicznym. Pierwsza część "lrwxrwxrwx" pokazuje, jaki jest typ pliku oraz jego uprawnienia.

Pierwszy znak "l" oznacza, że plik jest dowiązaniem symbolicznym. Katalogi, dla odmiany, w miejscu "l" mają literę "d". Zwykłe pliki oznaczane są znakiem "-" na pierwszej pozycji (są jeszcze inne znaki, o różnych znaczeniach, ale to wykracza poza temat tego artykułu). Reszta znaków (rwx) odpowiada uprawnieniom właściciela, grupy oraz reszty użytkowników. Na razie to zignoruję.

Zamierzam również opuścić środkową część listingu katalogów i przejść od razu na koniec, gdzie jest nazwa pliku. Jeśli spojrzysz na nazwy trzech plików wylistowanych powyżej, powinieneś zauważyć, że pierwsza nazwa od góry zawiera "->", poprzedzoną nazwą linux, po tym następuje linux-2.4.18. To oznacza, że plik linux jest dowiązaniem symbolicznym wskazującym (stąd ta ładna strzałka "->") na linux-2.4.18. Jeśli spojrzysz na drugi plik, linux-2.4.18, zobaczysz, że jest to katalog (zauważ, że pierwszy znak w linii z linux-2.4.18 jest literą "d", oznaczającą katalog).

Teraz, kiedy ustaliliśmy, że mamy plik linux w katalogu /usr/src, zrób jedno z poniższych:

  • Jeśli linux jest dowiązaniem symbolicznym, usuń go, wprowadzając rm linux w linii poleceń.
  • Jeśli linux jest katalogiem, zmień mu nazwę wprowadzając mv linux linux.stary w linii poleceń.

Powinieneś być gotowy do kontynuacji.

Krok 6: Rozpakuj plik linux-2.4.20.tar.gz

Teraz musimy rozpakować plik linux-2.4.20.tar.gz tak, byśmy mieli dostęp do źródeł jądra. Aby to zrobić, wprowadź tar xvzf linux-2.4.20.tar.gz w linii poleceń. Rozpakowanie pliku może chwilę potrwać. Kiedy się skończy, powinieneś znowu zobaczyć znak zachęty ("#").

Krok 7: Utwórz dowiązanie symboliczne o nazwie linux wskazujące na linux-2.4.20

Teraz możemy stworzyć dowiązanie symboliczne linux, które będzie wskazywać na nasze nowe źródła jądra, zlokalizowane w katalogu linux-2.4.20. Wprowadź ln -s linux-2.4.20 linux, by utworzyć dowiązanie symboliczne. Jeśli teraz wprowadzisz ls -l w linii poleceń, powinieneś zobaczyć dowiązanie symboliczne o nazwie linux wskazujące na katalog linux-2.4.20 (lub jakikolwiek inny – w zależności, jakie jądro pobrałeś).

Pliki potrzebne do konfiguracji i kompilacji jądra[edytuj]

By skonfigurować i skompilować jądro, skorzystamy z apta (lub Synaptic'a, jeśli preferujesz) w celu pobrania kilku rzeczy.

Będąc zalogowanym jako administrator, wprowadź poniższe polecenie, aby pobrać potrzebne nam rzeczy (lub wybierz każdy element z listy, jeśli korzystasz z Synaptica, i zainstaluj je):

apt-get install tk8.2 make gcc bin86 libc6-dev kernel-package

W tym przewodniku będę używał graficznego narzędzia do konfiguracji jądra w systemie X-Window. Jeśli wolisz używać tekstowego, powinieneś w powyższym poleceniu podmienić "tk8.2" na "libncurses5-dev" (lub możesz zainstalować oba pakiety i korzystać z obu rodzajów konfiguracji; w zależności od nastroju).

Gdy wszystko zostanie pobrane i zainstalowane, pojawi się ekran zatytułowany "Konfigurowanie Binutils". Jest to ostrzeżenie mówiące, że ta wersja binutils nie będzie działała z niektórymi jądrami. Ponieważ używamy najnowszego stabilnego jądra, nie będziemy mieć żadnych problemów. Po prostu naciśnij enter, aby kontynuować.