Dokument został przetłumaczony za zgodą Andrew Mortona. Jeżeli znajdziesz błąd w tłumaczeniu, to możesz go poprawić. Jeżeli masz własne spostrzeżenia na temat omawianego tutaj zagadnienia, to po prostu zrób przypis na dole strony.
Wersja oryginalna znajduje się tutaj: bisecting-mm-trees.txt
Jak wykonać podziałowe przeszukiwanie w drzewach -mm.
Andrew Morton <gro.ldso|mpka#gro.ldso|mpka>
(Jako przykład jest używane jądro 2.6.15-mm2. Proszę wykonać odpowiednie zmiany)
- Skompiluj i zainstaluj https://savannah.nongnu.org/projects/quilt/
- Utwórz nowe drzewo jądra:
cp -a /usr/src/linux-2.6.15 /usr/src/work
- cd work
- tar xfj 2.6.15-mm2-broken-out.tar.bz2
- mv broken-out patches
- mv patches/series .
- cp <ulubiony .config> .config
- cp series ~/hunt
Teraz jesteś przygotowany. Możesz:
quilt push 100
quilt pop 100
quilt push foobar.patch
i tak dalej, aby dodawać i usuwać łatki.
Otwórz ~/hunt w ulubionym edytorze. To będzie twój przewodnik w procesie przepoławiania.
Aby zacząć, znajdź łatkę, która jest w połowie pliku i wykonaj 'quilt push nazwa_łatki.patch'.
make oldconfig ; make ; test-kernela.
Jeżeli to się nie powiedzie, dodaj tekst “BAD” do ~/hunt za “nazwa_łatki.patch”, a następnie ustaw kursor w wierszu będącym w 1/4 długości pliku i powtórz cały proces. Jeżeli proces się powiódł i jądro działa dobrze, wtedy oznacz nazwa_łatki.patch jako “OK” i ustaw kursor w wierszu będącym w 3/4 długości pliku itd. Całkiem proste.
- Jedna przestroga: nie ustawiaj na ślepo punktów podziału. Często robię takie rzeczy w pliku series:
frob-the-nozzle.patch
frob-the-nozzle-tidy.patch
frob-the-nozzle-fix.patch
frob-the-nozzle-fix-2.patch
Logicznie jest to jedna łatka: połączę je w jedną całość, zanim wyślę frob-the-nozzle.patch do Linusa. Powinieneś więc unikać umieszczania punktów podziału w środku takiej grupy łatek. Albo zastosuj wszystkie, albo nie stosuj żadnej z nich.
- Jeżeli patches/linus.patch jest duży, twoim pierwszym krokiem powinno być przetestowanie 2.6.15+linus.patch i sprawdzenie czy błąd nie przeniknął do głównego drzewa.