ďťż
 
 
   [+] Kompilacja jądra za pomocą systemu Debiana
 
 

Tematy

 
    
 

 

 

 

[+] Kompilacja jądra za pomocą systemu Debiana





vega01 - 26-04-2008 15:08
Witam!

Moje pytanie dotyczy Ubuntu, ale mam nadzieję, że nikt mnie stąd nie wywali z tego powodu. Pytam tutaj, bo na ubuntuforums jakoś nikt nic nie wie, a wydaje mi się, że tutaj mogę uzyskać odpowiedź. Mam taki problem - chcę skompilować jądro ze źródeł z dystrybucji, ale z dodanymi przeze mnie łatkami. Na początek jednak po prostu chcę bez łatek. Próbowałem za pomocą make-kpkg, ale o dziwo nie działa, tak ja oryginalne i nie wiem dlaczego. Dźwięk mi przestaje działać.

Potem próbowałem za pomocą systemu kompilacji jądra Debiana (czyli kompilacja z fakeroot) i tu się ładnie kompiluje i chodzi, ale jak skompiluje je z oryginalną nazwą, to potem synaptic mi podaje, że jest aktualizacja. Więc chciałbym zmienić nazwę wynikowej paczki deb, ale moje próby doprowadziły mnie do tego, że się albo nie instaluje albo instaluje, ale potem jest problem z ładowaniem systemu - informuje, że nie może znaleźć pliku /lib/modules/wersja_jądra/modules.dep.

Czy ktoś może wie coś na temat systemu kompilacji jądra Debiana i jak tu zmienić nazwę wynikową jądra?

Dziękuję z góry za pomoc.

Vega

P.S. Już przeszukałem internet i znalazłem tylko te same pytania, bez odpowiedzi.



Yampress - 26-04-2008 15:41
l W jądrze jak zrobisz: make menuconfig wchodzisz: General setup ->  Local version - append to kernel release i tam wpisujesz sobie relase, czy tam własna nazwę.
l
l Jak kompilujesz wydając polecenie: make-kpkg --initrd --revision=wlasny_opis_kernela  kernal_image Odnośnie tego, że nie działa to przez Ciebie skompilowane jajko tak samo jak dystrybucyjne to sprawdź, czy skorzystałeś z .config dystrybucyjnego jądra, czy skompilowałeś przy domyślnych ustawieniach źródeł dla swojego jądra.

Nałóż łaty, potem skopiuj plik /boot/config_dalsza_nazwa do katalogu ze źródłami zmieniając jego nazwę na .config, a następnie go wczytaj podczas polecenia: make menuconfig A następnie pozaznaczaj opcje odnoszące się do nałożonych łatek.l




vega01 - 26-04-2008 18:13
Dziękuję za odpowiedź!

To, jak rozumiem, wszystko dotyczy tradycyjnego sposobu kompilacji jądra w Debianie, czyli przez make-kpkg?

Chyba dość niejasno napisałem swój post, chciałem krótko. Opiszę trochę dokładniej, co robiłem i co nie chodzi. Ogólnie korzystałem z poradnika Ubuntu https://help.ubuntu.com/community/Kernel/Compile.

Najpierw próbowałem w następujący sposób: sudo apt-get install linux-source
tar xjvf /usr/src/linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24
cp -vi /boot/config-`uname -r` .config
fakeroot make-kpkg --initrd --append-to-version=-moja_wersja kernel-image kernel-headers I potem instalacja linux-image i linux-headers z pakietów deb. Zrobiłem kompilację bez łatek, żeby zobaczyć, czy działa. Kompilacja poprawna, nazwa zmieniona, ale jądro nie działało dobrze. Tylko teraz się zastanawiam, czy samo skopiowanie, jak wyżej, pliku .config wystarczy? Nie uruchamiałem nawet make xconfig.

Natomiast chciałbym wiedzieć jeszcze jak skorzystać ze sposobu opisanego w poradniku jako nr 2. W poradniku znalazłem błąd (przynajmniej w wersji Ubuntu hardy nie działa): zamiast: apt-get source linux-source powinno się ściągnąć źródła: apt-get source linux-image (dość logiczne). Kompilacja bez zmiany konfiguracji daje działające jądro. Czyli mniej więcej tak to wyglądało po ściągnięciu źródeł: DEB_BUILD_OPTIONS=parallel=2 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic I to wszystko. Potem instalacja z deb. Tylko synaptic mi potem zgłaszał dostępną aktualizację jądra.
Natomiast nie udało mi się w tym drugim sposobie zmienić nazwy jądra i chciałbym się dowiedzieć, jak to zrobić. Chociażby, żeby się nauczyć. Spędziłem nad tym sporo czasu, grzebałem w plikach linux-2.6.24/debian/changelog, linux-2.6.24/debian/control i Makefile jądra, ale ciągle mi coś nie grało. Jak się skompilowało, to nie chciało się zainstalować, jak się zainstalowało, to nie chce się uruchomić, bo jakieś ścieżki są nie tak albo nazwa jądra, itp.

Jeśli na tym forum nikt nie będzie wiedział, to może skierujecie mnie gdzieś indziej?

Dziękuję za pomoc.

Vega



Yampress - 27-04-2008 11:43
Chyba niedokładnie podałem wyżej.
--append-to-version=-nazwa_własnego_kernela Odnośnie revision to chodzi o kolejny numer: --revision=numer_kolejnego_wlasnego_kernela Czyli: make-kpkg --initrd --append-to-version=-yampress --revision=1 kernel_image kernel_headers Poza tym zerknij sobie na taką stronę:
http://www.howtoforge.com/kernel_com...on_debian_etch

Opisuje 2 metody kompilacji jądra: debianowa i klasyczną. Artykuł jest tak napisany, że wykorzystuje .config starszego jądra dystrybucyjnego do konfiguracji nowszej wersji. ale nie musisz ściągać nowszej wersji, możesz po prostu na źródłach dystrybucyjnych zrobić.



fnmirk - 27-04-2008 11:57
Masz jeszcze przykład kompilacji z wykorzystaniem konfigu działającego jadra dostępnego na naszym forum: http://debian.linux.pl/viewtopic.php?p=41656#41656
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis