Kernel HOWTO pl 5 (2)


Opis jądra Linux-a, jego instalacji itp.: Łatanie jądra (patchowanie). Następna strona Poprzednia strona Spis treści 5. Łatanie jądra (patchowanie). 5.1 Zakładanie łaty. Pakiety, które pozwalają na odnowienie jądra to łaty. Na przykład: jeśli masz wersję 1.1.45 i znajdziesz plik o nazwie patch46.gz to znaczy, że możesz odnowić swoje jądro do wersji 1.1.46. Możesz zrobić kopię źródeł, które masz (make clean a potem cd /usr/src; tar zcvf old-kernel.tar.gz linux) Tak więc kontynuując powyższy przykład załóżmy, że masz plik patch46.gz w katalogu /usr/src. Bedąc w katalogu /usr/src wydaj polecenie zcat pacth46.gz | patch -p0 albo patch -p0 < patch46 jeśli łata nie jest skompresowana. Zobaczysz teraz trochę ścieżek i nazw plików oraz komunikatów przelatujących przez ekran, o tym co się udało a co nie. Wszystko to przelatuje zbyt szybko, żeby nadążyć z czytaniem, także właściwie nie wiesz czy się udało czy nie. Możesz użyć parametru -s do polecenia patch, aby poinformować je, żeby wyświetlało tylko komunikaty o błędach. Aby zobaczyć czy coś poszło nie tak, poszukaj plików z rozszerzeniem .rej w katalogu /usr/src/linux. Niektóre wersje patch (starsze wersje, które mogły być skompilowane na gorszym systemie plików) zostawiają błędy w plikach z rozszerzeniem #. Możesz użyć polecenia find, aby znaleźć te pliki: cd /usr/src/linux; find ./ -name '*.rej' -print Polecenie to wyświetli wszystkie pliki z rozszerzeniem rej znajdujące się w bieżącym katalogu i jego podkatalogach. Jeśli wszystko poszło dobrze, wydaj teraz po kolei polecenia make clean, make config i make dep tak jak opisano w sekcjach 3 i 4. Do polecenia patch jest trochę opcji. Jak już wspomniałem, patch -s spowoduje wyświetlenie na ekran tylko wiadomości o błędach. Jeśli trzymasz źródła w innym katalogu niż /usr/src/linux, polecenie patch -p1 wydane w tym katalogu, gdzie trzymasz źródła zrobi wszystko bez błędów. Inne opcje polcenia patch są dobrze opisane w podręczniku "man". 5.2 Jeśli coś pójdzie nie tak. (Uwaga: ta sekcja odnosi się w głównej mierze do starszych wersji jądra.) Najczęstszym problemem było to, że kiedy polecenie patch modyfikowało plik config.in nie wyglądał on tak jak powinien, bo zmodyfikowałeś go, aby pasował do twojego komputera. Zostało to już poprawione, ale w starszych wersjach błąd ten pozostał. Aby to naprawić, przeczytaj plik config.in.rej i zobacz co pozostało z oryginalnej łaty. Zmiany są zwykle zaznaczane znakami + i - na początku linii. Spójrz na linie otaczające tę zaznaczoną i przypomnij sobie, czy były one ustawione na tak, czy na nie. Teraz w pliku config.in zmień "y" na "n" i "n" na "y" tam gdzie trzeba. Wydaj polecenie patch -p0 < config.in.rej a jeśli poinformuje cię, że się powiodło, wtedy możesz kontynuować konfigurację i kompilację. Plik config.in.rej pozostanie, ale możesz go skasować. Jeśli odkryjesz dalsze problemy, mogłeś zainstalować jakąś łatę nie w kolejności. Jeśli na ekranie pojawi się taka wiadomość: previously applied patch detected: Assume -R? oznacza to, że przypuszczalnie próbujesz nałożyć łatę o wersji mniejszej niż źródła twojego jądra. Jeśli odpowiesz "y", polecenie patch spróbuje zdegradować twoją wersję, i najprzypuszcalnie się to nie powiedzie, przez co będziesz musiał zdobyć całkiem nowe źródła. (co w sumie wcale nie jest takim złym pomysłem). Aby odinstalować jakąś łatę użyj patch -R na oryginalnej. Jak już się wszystko tak pomiesza, że nie będziesz mógł dojść do ładu, to najlepszym sposobem jest zdobyć nowe źródła jądra i zacząć od nowa. 5.3 Pozbywanie się plików ".orig". Po zaledwie kilku łatach pliki .orig zaczynają niebezpiecznie rosnąć. Na przykład: usunięcie plików .orig z wersji 1.1.51, która była ostatnio czyszczona w wersji 1.1.48 spowodowało zwolnienie ponad 500 kB dysku. find . -name '*.orig' -exec rm -f {} ';' Polecenie to spowoduje usunięcie wszystkich plików .orig z bieżącego katalogu i jego podkatalogów. Wersje patch, które używają plików .# zamiast plików .rej, używają tyldy (~) zamiast plików .orig. Są lepsze sposoby pozbycia się plików .orig, które zależą od polecenia GNU xargs: find . -name '*.orig' | xargs rm lub metoda całkiem bezpieczna ale trochę "głośna" (dużo komunikatówna ekranie): find . -name '*.orig' -print0 | xargs --null rm -- 5.4 Inne łaty. Są jeszcze inne łaty (tzw. niestandardowe), niż te które dystrybuuje Linus. Jeśli ich użyjesz łaty Linusa mogą nie działać i będziesz musiał je albo odinstalować, dopasować źródła albo łatę, zainstalować nowe źródła, albo jakaś kombinacja tego. Może to być trochę frustrujące, więc jeśli nie chcesz grzebać w źródłach (z możliwością narobienia niezłego bajzlu), odinstaluj niestandardowe wersje łat zanim zainstalujesz łatę Linusa, albo po prostu zainstaluj nowe źródła. Wtedy możesz zobaczyć czy łaty niestandardowe wciąż działają. Jeśli nie to albo utknąłeś ze starym jądrem i będziesz próbował zmusić jakoś źródło albo łatę, żeby zaczęła działać, albo będziesz czekał (pewnie błagał) o nową łatę. Jak pospolite są te niestandardowe łaty? Przypuszczalnie o nich usłyszysz. Ja używałem łaty "noblink" na moich wirtualnych konsolach, bo nienawidzę mrugającego kursora. Ta łata jest (a przynajmniej była) często odnawiana dla nowszych wersji jądra. Z większością nowych sterowników jako ładowalne moduły, chociaż częstotliwość niestandardowych łat znacznie spada. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
Kernel HOWTO pl 12 (2)
Kernel HOWTO pl 9 (2)
Kernel HOWTO pl 6 (2)
Kernel HOWTO pl 4 (2)
Kernel HOWTO pl (2)
Kernel HOWTO pl 7 (2)
Kernel HOWTO pl 2 (2)
Kernel HOWTO pl
Kernel HOWTO pl 11 (2)
Kernel HOWTO pl 1 (2)
Kernel HOWTO pl 10 (2)
Kernel HOWTO pl 3 (2)
Kernel HOWTO pl (3)
Kernel HOWTO pl 8 (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
kernel howto 3 clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq
cdrom howto pl 1

więcej podobnych podstron