Strona 1 z 1

Problem z kompilacją jądra w Debianie

: 07 stycznia 2015, 17:30
autor: Snaki
Witam.

Zabrałem się za kompilacje jądra. Oto co zrobiłem:

1. Ściągnąłem źródła 3.18.1 z kernel.org
2. Rozpakowałem do usr/src
3. Zrobiłem dowiązanie do folderu /usr/src/linux
4. Zainstalowałem wszystkie potrzebne pakiety do kompilacji jądra (m.in wzorując się na poradniku Yampressa z tego forum)
5. Wgrałem patchy BFS i GCC
6. Pousuwałem niepotrzebne rzeczy z kernela, skonfigurowałem nowe patchy.
7. Kompiluje poleceniem:

Kod: Zaznacz cały

make-kpkg clean make-kpkg --initrd --append-to-version=-kacper --revision=01 kernel_image kernel_headers -j4
(nie wiem jakimi znacznikami to zaopatrzyć, więc proszę o info w postach :D )

7. Kompiluje się, a tu ZONK. Błąd:

Kod: Zaznacz cały

make[1]: Opuszczenie katalogu '/usr/src/linux-3.18.1'
debian/ruleset/targets/common.mk:295: polecenia dla obiektu 'debian/stamp/build/kernel' nie powiodły się
make: *** [debian/stamp/build/kernel] Błąd 2
Plik .config:
http://wklej.org/id/1586734/

Sugerując się zawiadomieniem od make, sprawdziłem plik /debian/ruleset/targets/common.mk linie ~ 295:

Kod: Zaznacz cały

debian/stamp/build/kernel: debian/stamp/conf/vars
    $(REASON)
    @test -d debian/stamp       || mkdir debian/stamp
    @test -d debian/stamp/build || mkdir debian/stamp/build
    @echo "This is kernel package version $(kpkg_version)."
Oraz próbowałem wejść do katalogu /debian/stamp/build/, ale tutaj nic nie ma.

Debian Sid, GCC 4.9
Dodam, że pod Ubuntu 14.04 się skompilowało.
Proszę o pomoc. :D

: 07 stycznia 2015, 17:51
autor: neo86
Gotowiec kernela 3.18: https://extonlinux.wordpress.com/2014/1 ... -18-0-rc4/ Spisuje się wspaniale! Szczególnie da się odczuć przy odtwarzaniu filmów 4k i 8k w kodeku h.265 na procesorach intel i7. Bardzo niskie temperatury procesora przy standardowej pracy. Mam Debian Sid XFCE i działa w nim wspaniale bez jakichkolwiek błędów. Znacznie lepiej działa niż ten od Aptosida.

: 07 stycznia 2015, 18:23
autor: Snaki
Dzięki za odpowiedź, ale moja główna myśl była taka, że chciałem się po prostu pożądnie nauczyć konfiguracji i kompilacji jądra. ;D

: 07 stycznia 2015, 21:34
autor: Rafal_F
O co chodzi w punkcie 5 i 6 (z tymi patchami)?
W poleceniu do kompilacji dałeś 2 polecenia, należy je wydać osobno, albo oddzielić znakami &&:

Kod: Zaznacz cały

make-kpkg clean
make-kpkg --initrd --append-to-version=-kacper --revision=01 kernel_image kernel_headers -j4
Z tymi dowiązaniami, katalogiem /usr/src, itd to przestarzałe. Źródła możesz kompilować gdziekolwiek.

Co do samego polecenia, to stare podręczniki kompilacji sugerowały takie polecenie (mój przykład, który nadal stosuje):

Kod: Zaznacz cały

fakeroot make-kpkg --initrd --append-to-version=-rafal --revision=01 kernel_image kernel_headers
W nowym podręczniku jest inaczej (rozdziały 9.9.4 i 9.9.5) https://www.debian.org/doc/manuals/debi ... ed_modules

: 08 stycznia 2015, 16:45
autor: Snaki
W pkt 5:
Wgrywam patchy następującym poleceniem:
patch -p1 < nazwa_patcha.patch

Tutaj link do patchu GCC:
https://github.com/graysky2/kernel_gcc_patch

W pkt 6:
Odznaczam niepotrzebne rzeczy z menuconfig. W patchu GCC (też w menuconfig) ustawiam na architekture K10.

Polecenia robie tak jak napisałeś. Z tymi dowiazaniami to rzeczywiście, stare poradniki czytałem, dzięki. Z tym twoim przykładem to przecież to samo, tylko z fakeroot. Ja dodaje jeszcze parametr -j4, który wprowadza kompilacje na 4 rdzenie procesora. Dzięki za link do podręcznika, przeczytam go a następnie spróbuje skompilować kernel.
Tak między wierszami, szukając odpowiedzi na mój problem, Google powiedział mi, że deweloperzy Debiana lubią wszystko co się da patchować w kernelu, więc stąd może być mój error. Ale to napisał jakiś gościu na niezbyt ogarniętym forum linuxowym, nie wiem czy to prawda.

Dzisiaj próbowałem kompilacji od razu po oldconfig, wynik ostatni taki sam:

Kod: Zaznacz cały

Makefile:937: polecenia dla obiektu 'drivers' nie powiodły się
make[1]: *** [drivers] Błąd 2
make[1]: Opuszczenie katalogu '/usr/src/linux-3.18.1'
debian/ruleset/targets/common.mk:295: polecenia dla obiektu 'debian/stamp/build/kernel' nie powiodły się
make: *** [debian/stamp/build/kernel] Błąd 2 
Ale, po strollowaniu myszką, znalazłem jeszcze takie ekstesy:

Kod: Zaznacz cały

scripts/Makefile.build:402: polecenia dla obiektu 'drivers/gpu/drm' nie powiodły się
make[3]: *** [drivers/gpu/drm] Błąd 2
scripts/Makefile.build:402: polecenia dla obiektu 'drivers/gpu' nie powiodły się
make[2]: *** [drivers/gpu] Błąd 2
make[2]: *** Oczekiwanie na niezakończone zadania....


In file included from drivers/gpu/drm/nouveau/nvif/object.c:25:0:
drivers/gpu/drm/nouveau/nvif/object.h:4:21: fatal error: nvif/os.h: Nie ma takiego pliku ani katalogu
 #include <nvif/os.h>
                     ^
compilation terminated.
scripts/Makefile.build:257: polecenia dla obiektu 'drivers/gpu/drm/nouveau/nvif/object.o' nie powiodły się
make[5]: *** [drivers/gpu/drm/nouveau/nvif/object.o] Błąd 1
scripts/Makefile.build:402: polecenia dla obiektu 'drivers/gpu/drm/nouveau' nie powiodły się
make[4]: *** [drivers/gpu/drm/nouveau] Błąd 2
make[4]: *** Oczekiwanie na niezakończone zadania....


net/ipv4/netfilter/ipt_ECN.c:20:42: fatal error: linux/netfilter_ipv4/ipt_ECN.h: Nie ma takiego pliku ani katalogu
 #include <linux/netfilter_ipv4/ipt_ECN.h>
                                          ^
compilation terminated.
  CC [M]  drivers/gpu/drm/radeon/radeon_encoders.o
  CC [M]  drivers/gpu/drm/nouveau/core/engine/copy/nva3.o
  CC [M]  fs/xfs/xfs_rtalloc.o
  CC [M]  drivers/gpu/drm/radeon/radeon_display.o
  CC [M]  drivers/gpu/drm/nouveau/core/engine/copy/nvc0.o
scripts/Makefile.build:263: polecenia dla obiektu 'net/ipv4/netfilter/ipt_ECN.o' nie powiodły się
make[4]: *** [net/ipv4/netfilter/ipt_ECN.o] Błąd 1
scripts/Makefile.build:402: polecenia dla obiektu 'net/ipv4/netfilter' nie powiodły się
make[3]: *** [net/ipv4/netfilter] Błąd 2
scripts/Makefile.build:402: polecenia dla obiektu 'net/ipv4' nie powiodły się
make[2]: *** [net/ipv4] Błąd 2
Makefile:937: polecenia dla obiektu 'net' nie powiodły się
make[1]: *** [net] Błąd 2 

Jest możliwym, że po wgraniu oryginalnego configu kernela debiana (oldconfig) wyskakuje aż tyle błędów ze sterownikami?