Instalator - Linux Magazine
Transkrypt
Instalator - Linux Magazine
SYSADMIN Instalacja jądra 2.6 Instalacja jądra w wersji 2.6 – instrukcja krok po kroku Instalator Udoskonalona obsługa aplikacji multimedialnych, zwiększona wydajność systemu, lepsza obsługa sprzętu oraz nowy moduł zabezpieczeń IPsec zwiększający bezpieczeństwo systemu – to tylko niektóre z powodów, dla których warto już teraz skorzystać z nowego jądra systemu. Przedstawiamy instrukcję instalacji nowego jądra. EVA-KATHARINA KUNST JÜRGEN QUADE P AUTOR ięć milionów linijek kodu w pliku o wielkości 32 MB – statystyka nowego jądra jest rzeczywiście imponująca [1], ale to właśnie jest przyczyną tego, że konfiguracja i instalacja jądra 2.6 na pewno nie należą do prostych czynności. Jeżeli mieliśmy już wcześniej jakieś doświadczenia z kompilacją i konfiguracją jądra 2.4, nie powinniśmy napotkać większych problemów z jądrem w wersji 2.6. Musimy tu jednak ostrzec mniej doświadczonych użytkowników – aktualizacja jądra systemu jest bardzo złożoną modyfikacją całego systemu, która może skończyć się katastrofą dla nierozważnego użytkownika. W niniejszym artykule opiszemy prostą drogę do uruchomienia standardowego jądra w wersji 2.6. Dostosowanie jądra do indywidualnych potrzeb danego środowiska wymaga już więcej cierpliwości. Dodatkowe informacje 60 Eva-Katharina Kunst jest dziennikarką, a Jürgen Quade profesorem na uniwersytecie Hochschule Niederrhein. Oboje wspierają aktywnie projekty Open Source od samych narodzin Linuxa. Marzec 2004 umieszczono na stronie [2] w Post-Halloween Document, którego autorem jest Dave Jones oraz w archiwum listy dyskusyjnej jądra Linuksa, znajdującym się pod adresem [4]. Pocieszające jest to, że w odróżnieniu od większości projektów Open Source, do kompilacji jądra nie potrzeba żadnych dodatkowych programów. Wszystkie niezbędne na- Jądro 2.6 w systemie SuSE System SuSE 9.0 jest gotowy do współpracy z jądrem w wersji 2.6. Wraz z dystrybucją dostarczane jest jądro 2.6 w wersji testowej, nowe wersje są dostępne pod adresem [7]. Możesz jednakże napotkać pewne problemy korzystając z polecenia /usr/sbin/hwbootscan w połączeniu z nowym jądrem systemu. W takim przypadku trzeba wyłączyć ten program, umieszczając znak komentarza „#” przed zmienną HWBOOTSCAN_BIN w skrypcie /etc/init.d/hwscan, jak to pokazano poniżej. # HWBOOTSCAN_BIN=/usr/sbin/U hwbootscan Jądro 2.6 dostarczone z dystrybucją ułatwia kompilację jądra dostosowanego do potrzeb użytkownika, gdyż możemy do tego celu wykorzystać jako szablon istniejącą konfigurację. Aby zainstalować nowe jądro testowe, należy skorzystać z pakietów RPM (nie można użyć programu YaST). Następnie powinniśmy skopiować plik konfiguracyjny jądra 2.6 do www.linux-magazine.pl katalogu z obecnymi źródłami Linuksa: cp vmlinuz-2.6.0-default.config U /usr/src/linux-2.6.0/ Po skopiowaniu pliku należy ponownie wywołać polecenie make menuconfig. W ten sposób nowe opcje zostaną automatycznie dołączone do konfiguracji jądra. Oczywiście musisz pamiętać, żeby wcześniej zainstalować narzędzia programistyczne – kompilator gcc, polecenie make, ncurses i Qt3-devel (niezbędny dla działania polecenia xconfig). Po konfiguracji jądra powinieneś wykonać kroki 5-8, zgodnie z zaleceniami opisanymi w artykule. Po dodaniu niektórych modułów konieczne może być ręczne edytowanie pliku /etc/modprobe.conf. System SuSE przechowuje dodatkowe wpisy w pliku /etc/modprobe.conf.local. Składnię takiego pliku konfiguracyjnego opisano na stronach z instrukcją obsługi (man modprobe.conf). Instalacja jądra 2.6 temu można wykorzystać w zasadzie dowolną wersję pakietu gcc (2.95, 3.2 lub Sprawdzenie modutils, Krok 1 konfiguracja modprobe 3.3) oraz make w wersji 3.80 lub nowszej. Jądro 2.6 jest Ściągnij źródła jądra Krok 2 praktycznie niewrażliwe na (www.kernel.org) różne wersje tych prograRozpakuj źródła mów. Kompilując jądro naKrok 3 tar xvfj linux-2.6.0.tgz" " szego redakcyjnego systemu Uruchom konfigurację Debian, nie mieliśmy proKrok 4 make menuconfig" " blemów z żadną z trzech wymienionych powyżej wersji. Wykonaj polecenie Krok 5 make all" Niestety, zależności pakie" tu modutil (Krok 1 na RysunZainstaluj jądro używając Krok 6 ku 1) komplikują nieco spraLILO lub GRUB-a wę. Pakiet modutil jest odpoZainstaluj moduły wiedzialny za ładowanie Krok 7 make modules_install" " i zwalnianie modułów jądra, Zrestartuj system lecz twórcy jądra 2.6 całkowiKrok 8 i przetestuj działanie cie przeprojektowali ten mechanizm działania. Moduły jądra 2.6 wymagają do pracy najnowszej wersji insmod. Rysunek 1. Osiem kroków do stworzenia własnego jądra. PoW razie potrzeby (np. starszeczątkujący użytkownicy powinni przyzwyczaić się do częstego go modułu) może być uruchowykonywania kroków 4-8. miona starsza wersja insmod. Dlatego warto zachować starszą wersję pod narzędzia, czyli kompilator i asembler oraz zwą insmod.old. Poza tym możesz łatwo sprawprogram make, są dostępne prawie w każdej dzić, czy masz już zainstalowaną odpowiednią dystrybucji Linuksa. W najgorszym wypadwersję tego programu (tzn. taką, która działa ku trzeba doinstalować pakiety programiz jądrem 2.6). Jeżeli znajdziesz plik o nazwie styczne. Do kompilacji i instalacji jądra sys- SYSADMIN insmod.old w katalogu /sbin/ lub /usr/local/sbin, znaczy to, że insmod powinien poradzić sobie z nową wersją jądra. Na szczęście wiele obecnych dystrybucji Linuksa posiada już zaktualizowaną wersję insmod (np. SuSE 8.2 i 9.0). Użytkownicy Debiana (i Knoppix-a) mogą w tym celu uruchomić program apt-get. apt-get install module-init-tools Użytkownicy innych systemów mogą pobrać najnowszą wersję modutils ze strony [3], np. 0.9.15-pre4. Po uruchomieniu programu utworzy on katalog module-init-tools.0.9.15pre4, w którym odnajdziesz plik README, zawierający zwięzły opis najważniejszych szczegółów. Przede wszystkim nakazuje on wykonanie następujących poleceń: ./configure U --prefix=/ make moveold make make install Program oryginalny (/sbin/insmod/) zostanie przeniesiony do /sbin/insmod.old. Nowy program – /sbin/insmod będzie wywoływał poprzednią wersję, gdy tylko system załaduje jądro w wersji 2.4 – będzie jednak korzystał z nowej wersji przy ładowaniu modułów jądra w wersji 2.6. Ta sama zasada dotyczy także programów /sbin/rmmod i /sbin/mdoprobe. Nowe pliki konfiguracyjne Nowe programy pakietu modutils wymagają nowego pliku konfiguracyjnego: /etc/modprobe.conf. Jeżeli podany plik nie istnieje, skopiuj plik szablonu z /generate-modprobe.conf do /etc/modprobe.conf. Po wykonaniu opisanych czynności możesz przejść do kroku 2 (patrz Rysunek 1), czyli do pobrania źródeł jądra 2.6 z sieci Internet. Informacje o bieżącej wersji jądra widać zawsze na stronie powitalnej serwisu [1]. Aby pobrać pełną wersję jądra (a nie tylko poprawkę), musisz kliknąć na wersji oznaczonej literą F (jak „full”), która znajduje się po prawej stronie opisów (patrz Rysunek 2). Źródła należy umieścić w katalogu /usr/src/ (krok 3): cd /usr/src tar xvfj /tmp/U linux-2.6.0.tar.bz2 Rysunek 2. Jądro posiada pełen zestaw swoich wersji. Na ekranie powitalnym znajduje się odnośnik do bieżącej wersji. Poprzednie wersje są dostępne przez odnośniki umieszczone w tabeli na górze strony. Najtrudniejszym i najbardziej czasochłonnym zadaniem jest krok 4 – konfiguracja jądra (zaraz po rozpakowaniu archiwum). Na- www.linux-magazine.pl Marzec 2004 61 SYSADMIN Instalacja jądra 2.6 nością potrzebować obsługi ReiserFS. Jeżeli jednak nie potrzebujesz funkcji rzadziej wykorzystywanych (np. obsługi SCSI), lepiej je wyłączyć. W zasadzie dla każdej opcji wyboru dostępna jest pomoc. Przegląd i poznanie wszystkich opcji menu za pierwszym razem zajmie zapewne około dwóch lub trzech godzin. Pamiętając jednak o ponad pięciu milionach linijek kodu, które w ten sposób konfigurujemy, trzeba stwierdzić, że i tak jest to duże osiągnięcie. Jeżeli posiadasz wcześniejszą, działającą konfigurację jądra 2.6 (patrz ramka Jądro 2.6 w systemie SuSE), to właśnie na niej trzeba oprzeć nową konfigurację. Jeżeli nie dysponujesz taką konfiguracją, najlepiej na początku zdecydować się na opcję minimalistyczną – wybrać tylko te elementy systemu, które są niezbędne. Gdy tylko nowe jądro będzie działać, dodanie nowych funkcji nie będzie problemem. Rysunek 3. Konfigurowanie jądra stało się bardziej zrozumiałe, mimo ogromu dostępnych opcji w wersji 2.6. Rysunek przedstawia konfigurację programu menuconfig podczas pracy. szym zdaniem najlepiej nadaje się do tego polecenie make menuconfig (patrz Rysunek 3). Dzięki niemu tworzony jest program konfiguracyjny oparty na bibliotece ncurses, który możesz uruchomić w trybie znakowym. Dostępna jest także graficzna odmiana tego programu (oparta na Qt), co pokazano na Rysunku 4. Aby użyć standardowej wersji graficznej, należy wydać polecenie make xconfig. Cierpliwość Pomimo wielkiej liczby dostępnych opcji, proces konfiguracji jest teraz bardziej intuicyjny. Na początek powinieneś zmienić domyślne ustawienie typu procesora (menu Procesor type and features) i typu architektury. Zwróć szczególną uwagę na system plików, np. jeżeli jesteś użytkownikiem systemu SuSE, będziesz z całą pew- Kompilacja Po zachowaniu wszystkich opcji w pliku konfiguracyjnym można zająć się kompilacją jądra. Użytkownicy systemów Debian lub Knoppix powinni wcześniej przeczytać ramkę Kroki 5-7 w systemie Debian. Użytkownicy innych systemów powinni po prostu uruchomić polecenie kompilacji (krok 5). Od tej chwili można ignorować ostrzeżenia przebiegające przez ekran. W systemie z dużą ilością pamięci z procesorem Intel 2.6 GHz, operacja kompilacji jądra trwa około 10 minut. Kroki 5-7 w systemie Debian Wersja niestabilna Debiana (Sarge) oferuje duży wybór, jeśli chodzi o jądro 2.6. Dopasowanie i stworzenie jądra, które zapewniałoby optymalną obsługę twojego systemu, wymaga jednak wykonania pewnych czynności ręcznie. Po zakończeniu konfiguracji (krok 4) wywołujemy polecenie make-kpkg w katalogu kodu źródłowego: ./make-kpkg kernel_image Rysunek 4. Program xconfig oparty na Qt jest bardzo przejrzysty. Obszary konfiguracji umieszczono po lewej stronie, opcje indywidualne na górze, a poniżej nich znalazło się miejsce na tekst pomocy dla obecnie wybranego parametru. 62 Marzec 2004 www.linux-magazine.pl Skrypt generuje jądro i moduły (krok 5), a także tworzy pakiet kernel_image dla Debiana, zapisując go w katalogu źródeł (zwykle /usr/src). Przed wykonaniem tego (kroki 6 i 7) powinieneś dodać nową opcję w pliku konfiguracyjnym bootloader-a. Instalator Debiana, wraz z uruchomieniem dpkg -i kernel-image-numer_wersji.deb, uruchomi także LILO. Dzięki temu LILO wyświetli odpowiedniej opcji w module ładującym rozruchu. Instalacja jądra 2.6 Instalacja Uruchomienie próbne Jeżeli wszystko przebiegło zgodnie z planem, następnym krokiem jest instalacja jądra (kroki 6-7). Instalacja modułów jest bardzo prosta. Wystarczy wykonać polecenie make modules_install, po kilku chwilach moduły pojawią się w nowym katalogu o nazwie /lib/modules/2.6.0/. Konieczne będzie jednak ręczne skopiowanie jądra do katalogu /boot/: Możemy przystąpić do próbnego uruchomienia komputera. Jeżeli jądro nie wystartuje poprawnie, trzeba będzie szukać problemu na konsoli. Wyświetlane tam komunikaty zazwyczaj dostarczają odpowiednich wskazówek i informują, dlaczego jądro nie mogło dokończyć procesu uruchomienia systemu. W wielu przypadkach jest to spowodowane np. brakującym sterownikiem, co uniemożliwia dostęp do twardego dysku lub systemu plików. Jeżeli ekran monitora pozostaje czarny jak noc, odszukanie winowajcy może być trudne. Zwykle w ten sposób objawia się problem z buforem ramki. Możesz wtedy działać na dwa sposoby: ■ usunąć wpis vga=XXX z pliku /etc/lilo.conf, lub włączyć opcję vga=normal. ■ sprawdzić, czy w opcji CONFIG_VT, w pliku konfiguracyjnym jądra /usr/src/linux2.6.0/.config ustanowiono wartość y. Jeżeli uruchomienie nowego jądra systemu zakończy się powodzeniem, można przystąpić do rekomilacji sterowników urządzeń, których nie obsługuje jądro. Dobrym przykładem są karty graficzne oparte na procesorach firmy nVidia. Więcej informacji znajdziesz pod adresem [8]. cp /usr/src/linux-2.6.0/arch/U i386/boot/bzImage /boot/U vmlinuz-2.6.0 Po uruchomieniu komputera w module ładującym rozruchu (ang. boot loader) powinna pojawić się opcja dla nowego jądra systemu. Dla LILO [5] oznacza to edycję pliku /etc/lilo.conf, a dla GRUB [6] pliku /boot/grub/menu.lst. Nowy wpis powinien zawierać nazwę jądra (np. /boot/vmlinuz-2.6.0) i wybraną nazwę dla pozycji menu. Jeżeli do jądra dodasz później nowy sterownik, zwykle nie trzeba już edytować plików lilo.conf i menu.lst. Jeżeli korzystasz z LILO jako bootloader-a, przed ponownym uruchomieniem systemu wykonaj polecenie lilo, które zaktualizuje konfigurację. SYSADMIN Na ostatnim miejscu jest sprawdzenie komunikatów pojawiających się podczas uruchomienia systemu. Dzięki poleceniu dmesg można przejrzeć komunikaty wygenerowane w czasie startu jądra. Jeżeli napotkasz jakieś problemy, trzeba wrócić do kroku 4. Jeżeli wszystko jest OK, to składamy gratulacje nowemu użytkownikowi jądra Linuksa w wersji 2.6. ■ INFO [1] Kod źródłowy jądra Linuksa: http://www.kernel.org [2] Dave Jones,The Post-Halloween Document: http://www.linux.org.uk/ ~davej/docs/post-halloween-2.6.txt [3] Nowy pakiet modutils: http://www.kernel.org/pub/linux/ kernel/people/rusty/modules/ [4] Lista dyskusyjna Linux Kernel: http://lkml.org [5] LILO: http://lilo.go.dyndns.org/ [6] GRUB: http://www.gnu.org/ software/grub/grub.html [7] Jądro 2.6 dla SuSE 9.0: ftp://ftp.suse.com/pub/suse/i386/9.0/ unsorted/kernel-2.6/ [8] Moduły jądra nVidia: http://www.minion.de/ Prenumerata Linux Magazine Nie przegap takiej okazji ■ Zamawiając prenumeratę oszczędzasz! ■ Płacisz jak za 9 numerów, a otrzymujesz 12! ■ Z każdym numerem DVD lub płyta CD-ROM. Najszybszy sposób zamówienia prenumeraty: http://www.linux-magazine.pl Infolinia: 0801-800-105