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.
[+] Kompilacja j
- W jądrze jak zrobisz:wchodzisz:
Kod: Zaznacz cały
make menuconfig
i tam wpisujesz sobie relase, czy tam własna nazwę.Kod: Zaznacz cały
General setup -> Local version - append to kernel release
- Jak kompilujesz wydając polecenie: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.
Kod: Zaznacz cały
make-kpkg --initrd --revision=wlasny_opis_kernela kernal_image
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:A następnie pozaznaczaj opcje odnoszące się do nałożonych łatek.Kod: Zaznacz cały
make menuconfig
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:
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: powinno się ściągnąć źródła: (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ł:
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
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:
Kod: Zaznacz cały
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
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:
Kod: Zaznacz cały
apt-get source linux-source
Kod: Zaznacz cały
apt-get source linux-image
Kod: Zaznacz cały
DEB_BUILD_OPTIONS=parallel=2 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic
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
Chyba niedokładnie podałem wyżej.
Odnośnie revision to chodzi o kolejny numer:
Czyli:
Poza tym zerknij sobie na taką stronę:
http://www.howtoforge.com/kernel_compil ... ebian_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ć.
Kod: Zaznacz cały
--append-to-version=-nazwa_własnego_kernela
Kod: Zaznacz cały
--revision=numer_kolejnego_wlasnego_kernela
Kod: Zaznacz cały
make-kpkg --initrd --append-to-version=-yampress --revision=1 kernel_image kernel_headers
http://www.howtoforge.com/kernel_compil ... ebian_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ć.
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