Nowe posty

Autor Wątek: 2 kernele a kwestia 2 plików System.map i dowiązania /usr/src/linux  (Przeczytany 2703 razy)

addos2

  • Gość
Tak się zastanawiam jak jest rozwiązana sprawa takiego typu:

Pojawia się nowy kernel. Po kompilacji i skopiowaniu odpowiednich plików we właściwe miejsca trzeba wykonać 3 rzeczy:
1. Dodać wpis do LILO / GRUB
2. Wskazać odpowiedni plik /boot/System.map
3. Ustawić właściwe dowiązanie /usr/src/linux

I teraz gdy wybiorę w LILO/GRUB nowy kernel to wg mnie powinien byc lekki zgrzyt, ponieważ plik System.map wskazuje przecież na poprzedni kernel. A gdy zmienię to i ustawię żeby System.map wskazywał na ten nowy, to gdybym zechciał uruchomić stary kernel, to też problem bo System.map wskazuje na nowy. Jak to jest rozwiązane?

Podobne pytanie mam odnośnie dowiązania /usr/src/linux, który tez przecież wskazuje albo stary albo nowy katalog ze źródłami kernela.

Przy okazji pytanie: co zrobić, żeby wyniki poleceń: configure, make, make install pokazywały TYLKO ostrzeżenia lub błędy a linijki z komunikatami, że wszystko jest OK były pomijane? Łatwiej później wyłapać co jest nie tak niź przeglądać setki linijek gdzie większość to "OK".

micu

  • Gość
2 kernele a kwestia 2 plików System.map i dowiązania /usr/src/linux
« Odpowiedź #1 dnia: 2009-03-24, 10:58:52 »
Hej,

Z tego co pamiętam programy które korzystają z System.map najpierw szukają wersji /boot/System.map-`uname -r` czyli z dołączoną wersją kernela. Dla tych (przestarzałych) które nie stosują tej metody faktycznie robi się linka na System.map. Wówczas - masz rację - powinno się go zmieniać w zależności od wersji używanego jądra.

Katalog /usr/src/linux jest używany (poza oczywistym zastosowaniem) właściwie wyłącznie gdy kompilujesz jakieś dodatkowe moduły (nvidia, omnibook, virtualbox itp.). W zależności od inwencji autora takiego modułu może być konieczne "przełączenie" linku na wybrany kernel - choć większość rozsądnie sprawdza najpierw istnienie /usr/src/linux-`uname -r` i/lub przyjmuje parametry typu "ścieżka-do-źródeł-kernela". O ile oczywiście interesuje Cię kompilacja pod aktualnie działające jądro...

Obie powyższe lokacje nie są wymagane do poprawnej pracy samego systemu choć ich błędne ustawienie może przeszkadzać niektórym programom (np. klogd, depmod).

Co do kompilacji kernela, to opcje masz dostępne po wywołaniu 'make help' .Trybem domyślnym jest właśnie minimalna ilość komunikatów na terminalu - mniej bez przekierowania na /dev/null się nie uzyska (no chyba że edytując skrypty). Kompilacja i tak zatrzyma się na pierwszym błędzie więc nic nie stracisz poza (ewentualnie) paroma ostrzeżeniami...

Pozdrawiam
Micu

addos2

  • Gość
2 kernele a kwestia 2 plików System.map i dowiązania /usr/src/linux
« Odpowiedź #2 dnia: 2009-03-24, 11:51:19 »
Dzięki za wyczerpującą odpowiedź. To mnie "uspokoiło" :)

Pozdrawiam

Offline roobal

  • Users
  • Guru
  • *****
  • Wiadomości: 2056
    • Zobacz profil
2 kernele a kwestia 2 plików System.map i dowiązania /usr/src/linux
« Odpowiedź #3 dnia: 2009-03-24, 18:55:17 »
Ja tak się zastanawiam, dlaczego wielu użytkowników podczas kompilacji jądra, nie instaluje go, tylko kopiuje wszystko ręcznie. Ja zawsze po kompilacji, instaluje nowe jądro poleceniem:

make install
Automatycznie kopiowane są wszystkie potrzebne pliki, automatycznie dodawany jest wpis do Grub/Lilo (samo wykryje co masz). Co do System.map innych plików, rozwiązane jest to w sposób taki, że stary System.map otzrymuje rozszerzenie .old, czyli pojawia się nowy a stary będzie miał postać System.map.old itd.

Jeśli nie wkompilowałeś pewnych rzeczy na stałe w jądro i masz moduły potrzebne do rozruchu tworzysz jeszcze ramdysk o dowolnej nazwie.

Pozdrawiam!

arctgx

  • Gość
2 kernele a kwestia 2 plików System.map i dowiązania /usr/src/linux
« Odpowiedź #4 dnia: 2009-03-24, 21:03:59 »
Niestety, też należę do chodzących pieszo lub wynajdujących rower od nowa - nawet parę latek temu, w okolicach 2.6.18, napisałem sobie skrypt, który mi automatyzuje powtarzalne czynności. A przecież zobaczyć tylko do odpowiedniego Makefile wystarczy...