|
[+] jądro 2.6.32.10 z łatą grsec wysypuje sie podczas kompilacji
bryn1u - 21-03-2010 02:55
Witam.
Mam taki problem. Nałożyłem łatę na ta wersję jajka 2.6.32.10. Korzystałem z tego opisu.
Mamy już wszystko czego potrzebujemy do poprawnej kompilacji, czas zabrać się za pobranie ze strony www.kernel.org najnowszej stabilnej wersji jądra. W naszym przypadku jest to jądro 2.6.27.7. wget -c http://www.kernel.org/pub/linux/kern...6.27.7.tar.bz2
Jak widzimy warto jest ściągnąć wersję w formacie .tar.bz2 z tego względu, że jest to dobrze skompresowane archiwum i ściąganie trwa krócej.
Gdy mamy już nasze jajeczko w najnowszej wersji przenosimy je do katalogu /usr/src i wypakowujemy je następującym poleceniem: tar xvjf linux-2.6.27.7.tar.bz2
Następnie tworzymy dowiązanie symboliczne:
ln -s linux-2.6.27.7.tar.bz2 linux
Przechodzi do katalogu /usr/src/linux i wykonujemy następująco:
make clean && make mrproper cp /boot/config-`uname -r` ./.config
Drugie polecenie spowoduje wczytanie pliku konfiguracyjnego aktualnie używanego jądra do poprawnej kompilacji nowej wersji jądra.
Kompilację uruchamiamy poprzez dowolny program (oczywiście do tego przeznaczony), ja posłużyłem się tutaj narzędziem menuconfig.
make menuconfig
Zaznaczamy pole:
Load an Alternate Configuration File
spowoduje to wczytanie pliku .config.
Gdy wszystko pójdzie bez najmniejszego problemu, najeżdżamy na pole ,,Exit'', zostaniemy zapytani, czy chcemy zapisać nową konfiguracje jądra:
Do you wish to save your new kernel configuration?
oczywiście zgadzamy się na to i wybieramy pole ,,Yes''.
Do zbudowania nowej wersji jądra wydajemy jeszcze dwa polecenia:
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Trochę to trwa w zależności od szybkości naszego komputera. Na moim sprzęcie tj. procesor 2.4gHz, 1GB pamięci ramu zajęło to około 30 minut. Gdy wszystko wykona się bez problemu powinniśmy w katalogu /usr/src zobaczyć dwie paczki .deb.
ls linux-headers-2.6.27.7-custom_2.6.27.7-custom-10.00.Custom_i386.deb linux-image-2.6.27.7-custom_2.6.27.7-custom-10.00.Custom_i386.deb
Ostatnią rzeczą jaka musimy wykonać jest instalacja nowego jądra w naszym systemie. dpkg -i linux-image-2.6.27.7-custom_2.6.27.7-custom-10.00.Custom_i386.deb dpkg - i linux-headers-2.6.27.7-custom_2.6.27.7-custom-10.00.Custom_i386.deb
Doszedłem do momentu:
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Po jakimś czasie wysypuje mi się z takim o to komunikatem:
make[1]: Entering directory `/usr/src/linux-2.6.32.10' CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 CALL scripts/checksyscalls.sh Building modules, stage 2. MODPOST 1848 modules WARNING: modpost: Found 22733 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' make[1]: Leaving directory `/usr/src/linux-2.6.32.10' /usr/bin/make EXTRAVERSION=.10-custom ARCH=i386 \ -C Documentation/lguest make[1]: Entering directory `/usr/src/linux-2.6.32.10/Documentation/lguest' cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest lguest.c:21:25: error: sys/eventfd.h: No such file or directory lguest.c:37:18: error: zlib.h: No such file or directory lguest.c: In function âcreate_threadâ: lguest.c:1027: warning: implicit declaration of function âeventfdâ make[1]: *** [lguest] Error 1 make[1]: Leaving directory `/usr/src/linux-2.6.32.10/Documentation/lguest' make: *** [debian/stamp/build/kernel] Error 2
Może mi ktoś powiedzieć co mu dolega i co mu się nie podoba. Ewentualnie jak rozwiązać ten problem.
Z góry dziękuję. Pozdrawiam.
fnmirk - 21-03-2010 12:10
Wykonałeś aktualizację systemu i zainstalowałeś odpowiednie pakiety wymagane do budowy pakietu deb?
Spróbuj zbudować pakiet jądra dystrybucyjnego na podobnej zasadzie. http://debian.linux.pl/threads/16688...l=1#post107471
db - 21-03-2010 14:56
Na niektórych wersjach kernel-package problem z lguest jest znany. Rozwiązanie: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=531583. Brakuje Ci -- między innymi -- zlib1g-dev. Polecam też edytować Documentation/lguest/lguest.c i usunąć:
#include <sys/eventfd.h>
bryn1u - 21-03-2010 16:52
Dziękuję rzeczywiście tego nie było. Nie rozumiem jednej rzeczy skoro wczoraj kompilowałem i błąd wyskoczył dopiero pod koniec, a dzisiaj robię dokładnie to samo tylko, że od nowa. Konfig ten sam wszystko to samo i dostaje takie coś.
Może tutaj ktoś pomoże. Na dug.net kolega ma ten sam problem i nie wiemy co dalej robić. Jest to możliwe, żeby to była wina grsec? net/ipv4/tcp_minisocks.c: In function âtcp_check_reqâ: net/ipv4/tcp_minisocks.c:681: error: âgrsec_enable_blackholeâ undeclared (first use in this function) net/ipv4/tcp_minisocks.c:681: error: (Each undeclared identifier is reported only once net/ipv4/tcp_minisocks.c:681: error: for each function it appears in.) make[3]: *** [net/ipv4/tcp_minisocks.o] Error 1 make[2]: *** [net/ipv4] Error 2 make[1]: *** [net] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.32.10' make: *** [debian/stamp/build/kernel] Error 2
Rozwiązanie.
Jedna osoba podała to na forum. Sprawdziłem u siebie i działa rzeczywiście.
Trzeba zaznaczyć opcje w Grsecurity->Network Protections-> TCP/UDP blackhole.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|