kompilacja jądra 2.6.34 trwa w nieskończoność

Tematy związane z oprogramowaniem, instalacją, konfiguracją
12debian65
Posty: 2
Rejestracja: 01 grudnia 2016, 22:13

kompilacja jądra 2.6.34 trwa w nieskończoność

Post autor: 12debian65 »

Witam. Zainstalowałem Debiana w wersji netinstall, a następnie przystąpiłem do realizacji tego poradnika. Pierwsza kompilacja zakończyła się błędem, którego rozwiązanie znalazłem tu, natomiast kolejny błąd, który wystąpił to pierwszy z tej listy i "rozwiązałem" go sposobem opisanym w linku. Teraz największym problemem jest brak błędu... Kompilacja trwa w nieskończoność, cały czas coś się tam dzieje, wyskakują w konsoli nowe komunikaty, a terminal jest w lokalizacji /usr/src/linux-2.6.34/arch/x86/vdso Spotkał się ktoś kiedyś z takim problemem?

Z góry dziękuję za pomoc.
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: kompilacja jądra 2.6.34 trwa w nieskończoność

Post autor: dedito »

Nie podałeś podstawowych informacji:
- po co to robisz?
- na czym to robisz?
- jaki jest wymiar Twojej nieskończoności ;)
Na słabszych i starszych maszynach kompilacja jądra może trwać od kilku godzin do kilku dni.
Skompiluj sobie na jakiejś nowoczesnej maszynie.

Podawanie linków do rozwiązań błędów też nie jest właściwe.
Linki po czasie mogą wygasnąć i wątek stanie się mało użyteczny.
Wklej do wątku w znaczniki Quote bardziej ważne informacje z tych podanych wcześniej linków.
12debian65
Posty: 2
Rejestracja: 01 grudnia 2016, 22:13

Re: kompilacja jądra 2.6.34 trwa w nieskończoność

Post autor: 12debian65 »

Za pierwszym razem czekałem 5 godzin i trochę się zniecierpliwiłem, zwłaszcza, że poprzednio na tym samym sprzęcie jądro 2.4 skompilowało się w 40 minut(tyle, że wtedy nowy kernel robiłem do Slackware).
dedito pisze: - na czym to robisz?
Na VirtualBoxie, gospodarz to Pentium Dual Core T2390 @ 1.86GHz, 3 GB RAM z systemem Ubuntu. Postanowiłem odpalić wirtualną maszynę bez trybu graficznego( bo i tak robił lekką zamułę) i faktycznie po dwóch godzinach sypnęło błędem.
dedito pisze: - po co to robisz?
Na projekt mam filtrowanie w warstwie 7. Maszyna wirtualna ma pełnić zadanie tego filtra, a gospodarzem ma być Debian. Właśnie przez to zależy mi na tym layer7. Ogólnie to jestem też otwarty na wszystkie propozycje o ile są oparte na Debianie i filtrują warstwę aplikacji.
dedito pisze: Podawanie linków do rozwiązań błędów też nie jest właściwe.
Linki po czasie mogą wygasnąć i wątek stanie się mało użyteczny.
Wklej do wątku w znaczniki Quote bardziej ważne informacje z tych podanych wcześniej linków.
Debian jest świeżo zassany, kernel który kompiluję to 2.6.34, iptables w wersji 1.4.8 oraz iproute2 2.6.34. Na to wszystko patche z powerpack-2.6.34.

Teraz napotkane błędy #1:
make[2]: *** [arch/x86/kernel/ptrace.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
i rozwiązanie:
w pliku: linux-2.6.32.59/arch/x86/include/asm/ptrace.h

#ifdef __KERNEL__

#include <linux/init.h>
+#include <linux/linkage.h>

struct cpuinfo_x86;
struct task_struct;
@@ -142,8 +143,8 @@
int error_code, int si_code);
void signal_fault(struct pt_regs *regs, void __user *frame, char *where);

-extern long syscall_trace_enter(struct pt_regs *);
-extern void syscall_trace_leave(struct pt_regs *);
+extern asmregparm long syscall_trace_enter(struct pt_regs *);
+extern asmregparm void syscall_trace_leave(struct pt_regs *);
oraz błąd #2 i rozwiązanie:
------------------------------------------------------------------------------------------------------
PROBLEM:-1
------------------------------------------------------------------------------------------------------
gcc: error: elf_i386: No such file or directory
OBJCOPY arch/x86/vdso/vdso32-int80.so
objcopy: 'arch/x86/vdso/vdso32-int80.so.dbg': No such file
make[2]: *** [arch/x86/vdso/vdso32-int80.so] Error 1
make[1]: *** [arch/x86/vdso] Error 2
make: *** [arch/x86] Error 2
------------------------------------------------------------------------------------------------------
SOLUTION:
----------
The problem is that gcc 4.6 doesn't support anymore linker-style architecture options.
Apply the following changes to solve the problem :

In arch/x86/vdso/Makefile :

replace "-m elf_x86_64" by "-m64" on the line starting with VDSO_LDFLAGS_vdso.lds
replace "-m elf_i386" by "-m32" on the line starting with VDSO_LDFLAGS_vdso32.lds

i teraz dostałem kolejnym błędem:
Building modules, stage 2.
MODPOST 1636 modules
ERROR: "__bad_udelay" [drivers/net/tokenring/tms380tr.ko] undefined!
WARNING: modpost: Found 11 section mismatch(es).
To see full detalis build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
/usr/src/linux-2.6.34/scripts/Makefile.modpost:91: polecenia dla obiektu '__modpost nie powiodły się
make[2]: *** [__modpost] Błąd 1
Makefile:1091: polecenia dla obiektu 'modules' nie powiodły się
Make[1]: *** [modules] Błąd 2
make[1]: Opuszczenie katalogu '/usr/src/linux-2.6.34'
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
Awatar użytkownika
dedito
Moderator
Posty: 3518
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: kompilacja jądra 2.6.34 trwa w nieskończoność

Post autor: dedito »

Może lepiej ściągnąć źródła kernela z archiwum repozytoriów Debian i na nie nakładać swoje poprawki i kompilować to na wersji Debiana do której został wydany kernel.
ODPOWIEDZ