Od dawna się do tego przymierzałem. Nadeszły wakacje, czyli więcej czasu. Skompiluje sobie jądro Linuksa po raz pierwszy. Na razie raczej po to, by zobaczyć jak to wygląda w praktyce, niż je jakoś specjalnie dostosować. Jako, że mam Debiana postanowiłem zrobić to „debian way” , na podstawie opisu z http://www.debianusers.pl/articles/10. Ściągnąłem najnowsze stabilne jajko z kernel.org. Metoda „xconfig” nie chciała działać, coś się pluło o ścieżkę do QT chyba. Później dokładnie sprawdzę. Jako, że chciałem kompilować, a nie szukać co jest nie tak, wybrałem „menuconfig”. Wszystko ładnie, przyjemnie. Nawet ja zajarzyłem, o co chodzi. Albo wkompilować, albo jako moduł, albo wogóle. Jest też pomoc do każdego elementu. Usunąłem moduły dla laptopów, bo mam komputer stacjonarny, jakieś funkcje dla procesorów AMD i ustawiłem typ procesora na Pentium III, skoro taki posiadam w swoim blaszaku. Więcej nie zmieniałem, żeby nie namieszać. Pooglądałem tylko sobie i poczytałem do czego jest dana opcja. Potem właściwa częśc, czyli kompilacja. Mieliło i mieliło aż w końcu jest. Gotowy pakiet z jajem. No to instalacja, reboot i… BUM.
Kernel panic – not syncing: VFS: Unable to mout root fs on unknown block(0,0)
Wg mnie to coś z obsługą dysków, czy systemem plików. Dziwne, bo nie zmieniałem domyślnych wartości. Mówi się trudno, może moja druga w życiu kompilacja jądra będzie pomyślna.
Pewnie albo wcale nie skomplilowałeś, albo skompilowałeś jako moduł, osbługę systemu plików, bądź dysków SATA, etc.
Rada na przyszłość, to co jest domyślnie zaznaczone wcale nie oznacza żę będzie działać. Nie wiem jak w Debianie, ale ja w Gentoo korzystałem z genkernela z menuconfig. Po prostu to co wiedziałem że jest mi nie potrzebne to wywalałem.
Już chyba ponad 20 razy ponownie kompilowałem kernela bo np. nie było obsługi czytnika kart, etc.
Pozdrawiam
Kompilacja jajka jest dobra dla masochistów. Prędko tego zdania nie zmienię:P Kilka godzin mordęgi zakończone malowniczym "kernel panic" – uwielbiam to:P Jedyne jądro jakie mi się udało zrobiłem instalując Gentoo, ale nie miałem okazji go zbytnio przetestować, bo zaraz po tym, nim zdążyłem zainstalować system graficzny padł mi dysk i genciak wraz z nowym jajeczkiem poszedł się kochać:)
Dla masochistów może nie, ale trzeba mieć świadomość tego typu rzeczy (np. pewne rzeczy nie powinny kończyć jako moduły), a to wymaga już pewnego obycia z systemem.
@ndx mam tylko dyski IDE ale obsługa systemu plików była w module. Zdziwiło mnie to, ale pomyślałem, że tak ma być. Cóż jednak nie ma. Uczymy się na błędach. Kiedyś musi być ten pierwszy raz.
Albo używasz jakichś magicznych (dla mnie) initrd (por. zawartość /boot), albo wkompilowujesz rzeczy potrzebne do startu systemu NA STAŁE. Zresztą większość rzeczy możesz wkompilować na stałe albo nie kompilować wcale. Ja zostawiam jako moduły takie rzeczy jak na przykład obsługa CD-ROM-u i jakieś niektóre cuda z obsługi sieci (NIEKTÓRE, o większości wiem, że nie potrzebuję) i kryptografii, bo zupełnie nie wiem i nie chce mi się dowiadywać, czy to systemowi jest w jakimś momencie potrzebne. A z drugiej strony nie chce mi się próbować i stwierdzić kiedyś, kiedy się będę śpieszył, że muszę przełączyć na inne jądro, bo coś nie bangla.
Nie ma sensu robić jako moduły sterowników do grafiki, dźwięku, klawiatury, myszki, magistrali różnych, systemu plików, na którym to stoi itd. Przecież to i tak jest cały czas używane.
Zobacz, co Ci na kernelu od Debiana pokazuje polecenie lsmod, zobacz, co pokazuje lspci. Zresztą help w menuconfig jest IMO dobry.
Na tym PIII to chyba kompilowało Ci się wieczność, skoro pozostawiłeś większość tak, jak domyślnie jest ustawiona. Tam przecież większość jest <M>. 🙂
Z ciekawszych rzeczy wybieram: Optimize for size (w 2.6.26 jest już nie tylko w dev), Preemption Model (Preemptible Kernel (Low-Latency Desktop)), Timer frequency (1000 HZ), MTRR (Memory Type Range Register) support.
Poza tym radzę kompilować jądro z patchami od Debiana (pakiet linux-source-*). To z kernel.org kiedyś nie chciało mi się dogadać z programem shutdown w sprawie zamykania dysku twardego i od tej pory używam tylko tego od Debiana.
Jeżeli chcesz, dam mój .config (też mam p3).
@kristo dzięki za rady. Tego typu wskazówek na stronach dotyczących kompilacji jadra nie znalazłem :). Nie ukrywam, że bardzo mi pomogą.
Optimize for size – odradzam. Zresztą proponuję poczytać o optymalizacjach gcc.
Nie wiem czy wyskakiwał mi taki komunikat czy tylko podobny, ale przez dłuższy okres czasu jądro nie chciało mi zaskoczyć, bo wcale nie tworzyłem initrd 😉