Problem z kompilacj

Tematy związane z oprogramowaniem, instalacją, konfiguracją
Snaki
Posty: 3
Rejestracja: 29 października 2013, 20:31

Problem z kompilacją jądra w Debianie

Post 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
Awatar użytkownika
neo86
Beginner
Posty: 285
Rejestracja: 16 października 2013, 00:03
Lokalizacja: Opolskie

Post 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.
Snaki
Posty: 3
Rejestracja: 29 października 2013, 20:31

Post 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
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post 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
Snaki
Posty: 3
Rejestracja: 29 października 2013, 20:31

Post 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?
ODPOWIEDZ