1. Jeśli ktoś ma z tym problem niech przeczyta takze: http://forum.mandriva.org.pl/viewtopic.php?p=722#722 (post znajduje się na tym forum.. - myślę, że początkującym użytkownikom jakoś przybliżę kompilację jądra..

2. Całą zabawę z kernelem musisz rozpocząć w /usr/src/ (oczywiście zaloguj się jako root)
Po wpisaniu ls powinny pojawić się tobie katalogi (w tym także katalog linux - jest to dowiązanie do macierzystego "jajka systemu" oraz katalog z numerem wersji jądra (do którego ów kat. linux sie odwołuje). Jeśli chcesz natomiast zainstalować nowy kernel musisz go rozpakować (najlepiej w Midnight Commanderze - zresztą to obojętne) i skopiować do katalogu /usr/src/ (jakiś katalog - najlepiej wersja nowego jądra - zrób tak, jak jest to zrobione ze starym jądrem w twoim systemie...).
Tu znajdziesz najnowsze wersje stabilne 2.4 dla Linuksa:
ftp://sunsite.icm.edu.pl/pub/Linux/kernel/
3. Teraz przechodzimy do właściwej kompilacji jądra.
Po rozpakowaniu do powyższego katalogu wchodzimy w ów katalog i wydajemy polecenie:
Kod:
make menuconfig
W przypadku rekompilacjii starego "jajka" również wchodzimy do katalogu z wersją starego jądra i wydajemy takie samo polecenie.
Jeśli chodzi o wybór składników (modułów) świetnie jest to opisane i przejrzyście na stronie: http://anarchia.dolsat.pl/kernel.html - krok po kroku dla osób początkujących wyjaśniona jest każda opcja... może za wyjątkiem grsecure, którego jak już zamieżasz użyć nadaj mu parametr medium, albo low - Wiadomo, przy zabawie w menuconf`ie - musisz troszkę znać swój sprzęt (hardware) jaki posiadasz.

Możesz także konfigurować kernel z poziomu typowo textowego (komenda make config, zamiast make menuconfig), lecz odradzam ten rodzaj konfiguracji dla początkujących. Z tego co widziałem w Mandrake jest również narzędzie pozwalające na graficzne przebrnięcie tego procesu kompilacji (gdzieś w CC - Xsy, ale nie wiem czy działa to poprawnie - również nie polecam). Zostańmy zatem przy make menuconfig.

Następnie po odpowiednim wyborze modułów wybieramy exit i wychodzimy z menuconf`a... oczywiście zapisując zmiany.
Teraz klucz leży w wydaniu poleceń w odpowiedniej kolejności na konsoli:
Kod:
make dep
następnie po tym:
Kod:
make clean
, oraz:
Kod:
make zImage
- (tu na 99% pojawi się błąd - nie należy się tym przejmować...)
a na koniec:
Kod:
make bzImage
i już mamy kernel skompilowany.
Teraz należy zainstalować moduły wydając polecenia kolejno:
Kod:
make modules
oraz na zakończenie:
Kod:
make modules_install
- (proces kompilacjii i instalacjii modułów może trwać nawet kilka godzin... w zależności od ilości modułów, oraz posiadanego sprzętu - nie należy się tu bać). Zabieg ten nie zniszczy pierwotnej - "starej" struktury i konfiguracji systemu).
Po wyżej wykonanych czynnościach zostaje nam tylko wejść do katalogu: /usr/src/(wersja jądra) następnie dalej do /arch/i386/boot/ - tam znajduje się nasz plik bzImage (kernel) (oczywiście jeśli posiadasz inną platformę sprzętową zamiast i386 wybierz odpowiedni katalog), którego teraz możemy nazwać jak chcemy. Ja opiszę dalszą część zabawy na przykładzie k2 (tak nazwałem swój bzImage). Owy k2 kopjuje się do katalogu /boot. Już mamy 99% roboty za sobą.
Teraz tylko zostaje odpowiednia konfiguracja lilo
Wchodzimy w /etc/ i edytujemy plik lilo.conf dodając tak:
(naturalnie dokonaj wpisu w lilo.conf bez podpowiedzi w nawiasach
Kod:
image=/boot/k2 
label=sobaconf (tu sobie nazwij jak chcesz ) 
root=/dev/hde1[b] (uważaj twoje parametry hd na bank się różnią 
od moich.. - zobacz więc jak jest wykonany 
wpis w podstawowej konfiguracji -powyżej u 
siebie w pliku lilo.conf
[b]initrd=/boot/nowy.img (o tym opowiem później - możesz tą 
linijkę skasować, lecz nie musisz, 
jeśli chcesz wykorzystać image przy 
botowaniu- lecz wtedy koniecznie utwórz 
nowy .img) 
[b]append="devfs=mount" 
vga=771 (tryb vga - ja mam "odpalanie textowe 1024x768") 
read-only
-----
(zapisujemy zmiany w pliku i wychodzimy).
Następnie wpisujemy na konsoli komendę: <lilo> by przełądować konfigurację i już możemy się cieszyć z nowego kernela - teraz przy starcie systemu możemy wybrać nową opcję z naszego lilo .

>Odnośnie powyższego image (nowy.img) - plik ten tworzymy wydając komendę: mkinitrd nowy.img wersja naszego nowego jądra - czyli np:
<mkinitrd nowy.img 2.4.19-16mdkcustom> (modułki znajdują się w katalogu /lib/modules/) i już utworzony tym sposobem plik o nazwie nowy.img kopjujemy do /boot
>Jeśli już zdecydujesz się na użycie initrd musisz dokładnie zadbać o poprawność owego wpisu w lilo.conf, oraz pamiętaj, że nie należy wykorzystywać tego pliku (.img) ze starej kompilacji jądra. Jeśli jednak zdecydujesz nie bawić się w to, koniecznie skasuj linie w lilo.conf`ie odpowiadającą przy nowym wpisie za image (initrd)

Jeżeli kompilowałes/łaś kernel z nowej wersji (masz nowszy kernel, niż używany do tej pory) i po paru godzinkach, lub dniach pracy satysfakcjonuje Ciebie ów konfiguracja, możesz usunąć wszelkie pozostałości po starym jądrze z /usr/src ..., oraz /lib/modules, a także zbędne wpisy z lilo.conf`a (nie zapomnij go przeładować komendą <lilo> i odpowiednio wtedy ustawić domyślny start - nie jest to trudne, a odpowiada za to wpis: default=cośtam)

Nie kopjuj również ŻADNYCH plików system.map itp jak jest to niekiedy opisane na stronach www. na ten temat- jest to zabieg niepotrzebny, przynajmniej nie w Mandrake !

HAVE A LOT OF FUN


Uaktualniona wersja
Cał&#177; zabawę z kernelem musisz rozpocz&#177;ć w /usr/src/ (oczywi&#182;cie zaloguj się jako root)
po wpisaniu <ls> powinny pojawić się tobie katalogi (w tym także katalog linux- jest to dowi&#177;zanie do macierzystego "jajka systemu"
oraz katalog z numerem wersjii j&#177;dra (do którego ów kat. linux sie odwołuje)- Je&#182;li chcesz natomiast zainstalować nowy kernel musisz
go rozpakować (najlepiej w mc- zreszt&#177; to obojętne ) i skopjować do katalogu /usr/src/(jaki&#182; katalog- najlepiej wersja nowa "jajka"-
zrób tak, jak jest to zrobione ze starym j&#177;drem w twoim systemie...) - Tu znajdziesz najnowsze wersje stabilne 2.4 dla linuxna:
ftp://sunsite.icm.edu.pl/pub/Linux/kernel/
Należy także dodać, że po rozpakowaniu nowego j&#177;dra do katalogu- trzeba zmienić odno&#182;nik, do którego odwołuje
się katalog linux(symlinkstarszej wersji)), na odpowiadaj&#177;cy katalogowi, z now&#177; wersj&#177; j&#177;dra.

Teraz przechodzimy do wła&#182;ciwej kompilacji j&#177;dra. Po rozpakowaniu do powyższego katalogu wchodzimy w ów katalog i wydajemy polecenie:
<make menuconfig> (w przypadku rekompilacjii starego "jajka" również wchodzimy do katalogu z wersj&#177; starego j&#177;dra i wydajemy takie
samo polecenie - ). Je&#182;li chodzi o wybór składników (modułów) &#182;wietnie jest to opisane i przejrzy&#182;cie na stronie mojego znajomego:
http://anarchia.dolsat.pl/kernel.html - krok po kroku dla osób pocz&#177;tkuj&#177;cych wyja&#182;niona jest każda opcja ..., może za wyj&#177;tkiem
grsecure, którego jak już zamieżasz użyć nadaj mu parametr medium, albo low.
Dla tych, którzy troszkę się na tym znaj&#177;, lub zdobyli dokumentację o
grsecure przygotowany jest parametr custom)- Wiadomo, przy zabawie w menuconf`ie - musisz troszkę
znać swój sprzęt (hardware) jaki posiadasz.

>[Możesz także konfigurować kernel z poziomu typowo textowego (komenda <make config>, zamiast <make menuconfig>), lecz odradzam ten
rodzaj konfiguracji dla pocz&#177;tkuj&#177;cych. Z tego co widziałem w Mandrake jest również narzędzie pozwalaj&#177;ce przez graficzne przebrnięcie
tego procesu kompilacji (gdzie&#182; w CC - Xsy, ale nie wiem czy działa to poprawnie - również nie polecam).]-
zostańmy zatem przy <make menuconfig>

Następnie po odpowiednim wyborze modułów wybieramy <exit> i wychodzimy z menuconf`a..- oczywi&#182;cie zapisuj&#177;c zmiany.
Teraz klucz leży w wydaniu poleceń w odpowiedniej kolejno&#182;ci na konsoli:
<make dep>,
następnie po tym: <make clean>, oraz:
<make zImage> (tu na 99% pojawi się bł&#177;d- nie należy się tym przejmować..
,a na koniec <make bzImage>
i już mamy kernel skompilowany.
Teraz należy zainstalować moduły wydaj&#177;c polecenia kolejno: <make modules> , oraz na zakończenie <make modules_install> (proces
kompilacjii i instalacjii modułów może trwać nawet kilka godzin... w zależĽno&#182;ci od ilo&#182;ci modułów, oraz posiadanego sprzętu- nie
należy się tu bać. Zabieg ten nie zniszczy pierwotnej- "starej" struktury i konfiguracji systemu).
Po wyżej wymienionych czynno&#182;ciach można dodać nasz kernel na przynajmniej dwa sposoby.

Wiele dystrybucji obecnie oferuje gotowe skrypty umożliwiaj&#177;ce dodanie naszego nowego j&#177;dra do konfiguracji startowej (install kernel, itp).
Ja osobi&#182;cie nie ufam do końca takim praktykom, zatem opiszę metodę według mnie najlepsz&#177;.

WejdĽmy do katalogu: /usr/src/(wersja j&#177;dra) następnie dalej do /arch/i386/boot - tam
znajduje się nasz plik bzImage (kernel) (oczywi&#182;cie je&#182;li posiadasz inn&#177; platwormę sprzętow&#177; zamiast i386 wybierz odpowiedni katalog),
którego teraz możemy nazwać jak chcemy. Ja opiszę dalsz&#177; czę&#182;ć zabawy na przykł&#177;dzie k2 (tak nazwałem swój bzImage). Owy k2 kopjuje
się do katalogu /boot . Już mamy 99% roboty za sob&#177;.
Teraz tylko zostaje odpowiednia konfiguracja lilo
Wchodzimy w /etc i edytujemy plik lilo.conf dodaj&#177;c tak:
(naturalnie dokonaj wpisu w lilo.conf bez podpowiedzi w nawiasach
image=/boot/k2
label=sobaconf (tu sobie nazwij jak chcesz )
root=/dev/hde1 (uważaj twoje parametry hd na bank się różni&#177;
od moich.. - zobacz więc jak jest wykonany
wpis w podstawowej konfiguracji -powyżej u
siebie w pliku lilo.conf)
initrd=/boot/nowy.img (o tym opowiem póĽniej - możesz t&#177;
linijkę skasować, lecz nie musisz,
je&#182;li chcesz wykorzystać image przy
botowaniu- lecz wtedy koniecznie utwórz
nowy .img)
append="devfs=mount"
vga=771 (tryb vga - ja mam "odpalanie textowe 1024x768"*)
read-only
-----
(zapisujemy zmiany w pliku i wychodzimy).
Następnie wpisujemy na konsoli komendę: <lilo> by przeł&#177;dować konfigurację i już możemy się cieszyć z nowego kernela - teraz przy
starcie systemu możemy wybrać now&#177; opcję z naszego lilo .

>Odno&#182;nie powyższego image (nowy.img) - plik ten tworzymy wydaj&#177;c komendę: mkinitrd nowy.img wersja naszego nowego j&#177;dra - czyli np:
<mkinitrd nowy.img 2.4.19-16mdkcustom> (modułki znajduj&#177; się w katalogu /lib/modules/) i już utworzony tym sposobem plik o nazwie
nowy.img kopjujemy do /boot
>Je&#182;li już zdecydujesz się na użycie initrd musisz dokładnie zadbać o poprawno&#182;ć owego wpisu w lilo.conf, oraz pamiętaj, że nie należy
wykorzystywać tego pliku (.img) ze starej kompilacji j&#177;dra. Je&#182;li jednak zdecydujesz nie bawić się w to, koniecznie skasuj linie w
lilo.conf`ie odpowiadaj&#177;c&#177; przy nowym wpisie za image (initrd)

Jeżeli kompilowałes/ła&#182; kernel z nowej wersji (masz nowszy kernel, niż używany do tej pory) i po paru godzinkach, lub dniach pracy
satysfakcjonuje Ciebie ów konfiguracja, możesz usun&#177;ć wszelkie pozostało&#182;ci po starym j&#177;drze z /usr/src ..., oraz /lib/modules, a
także zbędne wpisy z lilo.conf`a (nie zapomnij go przeładować komend&#177; <lilo> i odpowiednio wtedy ustawić domy&#182;lny start - nie jest to
trudne, a odpowiada za to wpis: default=co&#182;tam)

System.map ?- chcesz, nie używaj. To lista symboli i adresów w kodzie j&#177;dra.

Skopiujmy plik o tej nazwie z /usr/src/linux do /boot- zmieniaj&#177;ć nazwę na nazwę naszego
jadra: Tak, jak podaj&#177; to przykłady:
System.map@ at /boot

System.map-2.4.21-0.13mdk System.map-2.4.21-0.27mdksecure
System.map-2.4.19-16mdk System.map-2.4.21-0.27mdk


---------
lilo -start konsoli:
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
HAVE A LOT OF FUN

soba

PS. Opis ten jest tylko odpowiedzi&#177; na pytanie zadane w obrębie forum dyskusyjnego. Nie
jest to w żadnym wypadku "fachowa literatura"!.

-------------------
edited:

KOMPILACJA KERNELA - PRZEBIEG - - uwaga - niestety w przyklejonym temaci czai sie błąd - kompilacja Kernela tam opisana dotyczy tylko wersji 2.4.x.

W jadrze seriii 2.6.x nie uzywasz polecenia make dep. Kompilacja odbywa sie w takiej kolejnosci:

make gconfig (konfiguracja) (lub make menuconfig, lub make config lub make xconfig)
make
make modules_install
make install (opcjonalnie)






np. żródło:
http://newbie.linux.pl/?id=forum&kategoria=6&show=43105

Autorem erraty jest: raku
Treść erraty zamieścił: Alpin19