Kernela ściągamy do /usr/src/ i oczywiście rozpakowujemy:
Kod: Zaznacz cały
tar jxvf linux-2.*.*.tar.bz2
Kod: Zaznacz cały
cd linux-2.*.*
Kod: Zaznacz cały
make menuconfig
Pojawi ci sie teraz menu i tam musisz wybrać odpowiednie modugły [M] lub wkompilować w jądro [*]. Do tego wszystkiego używamy tylko spacji i entera. Moduły należy dobrać odpowiednio do posiadanego sprzętu. Poniżej zamieszczam którki opis tego menu:
Kod: Zaznacz cały
Code maturity level options
[ ] Prompt for development and/or incomplete code/driver
Możliwe jest tylko wkompilowanie tej opcji w jądro na stałe. Pozwala korzystać z nowych, rozwijających się dopiero sterowników. Nie zaleca się jej włączenia.
Procesor type and features
(PPro/6x86MX) Procesor family
wybieramy rodzaj zainstalowanego u nas procesora,
(1Gb) Maximum Physical Memory
określamy maksymalą wielkość pamięci
[ ] Math emulation
opcja emulująca koprocesor, przydatna tylko wtedy gdy go nie mamy
[*] MTRR (Memory Type Range Register) support
kontroluje dostęp do pamięci, należy ją włączyć przy procesorach: Pentium Pro, Pentium II i wyższych,
[ ] Symmetric multi-processing support
włącz gdy posiadasz więcej niż jeden procesor, w pozostałych przypadkach powinna być wyłączona
Loadable module support
[*] Enable loadable module support
Dzięki temu nasze jądro będzie zmodularyzowane -> będzie mogło korzystać z modułów.
[*] Set version information on all symbols for modules
Opcja pozwoli na korzystanie z modułów wcześniej skompilowanych nawet po kompilacji nowego jądra.
[*] Kernel module loader
Pozwala na ładowanie modułów podczas pracy kernela. Bardzo przydatna opcja.
General setup
[*] Network support
Obsługa sieci, jeśli masz komputer podłączony do sieci powinnieneś wybrać tę opcję, jeśli nie też :-) gdyż niektóre programy korzystaja z portów sieciowych itp.
[*] PCI support
Konieczne gdy masz urządzenia na PCI,
(Any) PCI access mode
Można ustawić czy system odczyta konfiguracje PCI z biosu czy określić ją samodzielnie. Any próbuje określić konfiguracje, jeśli się nie uda, czyta ją z biosu.
[*] PCI quirks
Pozwala na ustawienie szyny PCI jeśli BIOS komputera jest błędny, Jeśli jesteś pewnie, że mam dobry BIOS możesz wyłączyć, jeśli nie jesteś pewnien, włącz.
[*] Backward-compatible /proc/pci
dla zgodności /proc/pci ze starszymi wersjami kernela, nie rozumiem tego do końca więc, przeczytaj help`a -? :-)
[] MCA support
MicroChannel Architecture - szyna systemowa podobna do PCI i ISA, stosowana w niektórych maszynach IBM PS/2 maszynach i laptopach. Zajrzyj do dokumentacji jądra.
[] SGI Visual Workstation support
tutaj też mógłbym mi ktoś pomóc :-)
[*] System V IPC
Komunikacja między procesami za pomocą System`u V, wykorzystywanego w unixach. Zalecane zaznaczenie tej opcji.
[] BSD Process Accounting
nie wiem do czego to jest, nie jest konieczne włączenie :-)
[*] Sysctl support
Pozwala na dynamiczne zmienianie parametrów jądra.
<M> Kernel support for a.out binaries
<*> Kernel support for ELF binaries
<M> Kernel support for MISC binaries
Opcje te pozwalają na wykonywanie kodu binarnego programów skompilowanych w różnych formatach. Opcje kompilacji warto zaznaczyć tak jak powyżej.
<*> Paraller port support
Musimy zaznaczyć gdy korzystamy z urządzeń podłączonych do portu rownoległego np. drukarka. Możemy wybrać kompilacje jako moduł, jednak u mnie drukarka zadziałała dopiero pod wkompilowaniu tego sterownika w jądro :-(
--> <*> PC-style hardware
Zaznacz jeśli masz port rownóległy PC-style. Taki port mają komputery kompatybilne z IBM PC i Alpha.
--> [] Support foreign hardware
Jeśli chcesz mieć obsługę niestandardowych portów równoległych. Większość jednak nie potrzebuje tej opcji.
[] Advanced Power Management BIOS support
Zaawansowane oszczędzanie energi oparte na BIOSie komputera. Potrzebne w laptopach gdzie musimy oszczędzać akumulatory
Plug and Play support
[*] Plug and Play support
Automatyczne konfigurowanie urządzeń plug and play.
<*> Auto-probe for parallel device
automatyczne rozpoznawanie urządzeń podłączonych do portu równoległego
Block devices
<M> Normal PC floppy disk support
Konieczne do używania stacji dyskietek. Zalecana kompilacja jako moduł.
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
Sterowniki obsługujące urządzenia IDE/MFM/RLL takie jak dyski twarde, cdrom, streamer`y.
[] Use old disk-only driver on primary interface
Sterowniki dla starych dysków MFM,RLL,IDE pracujących jako pierwsze.
<*> Include IDE/ATA-2 DISK support
<*> Include IDE/ATA-2 CDROM support
<> Include IDE/ATA-2 TAPE support
<> Include IDE/ATA-2 FLOPPY support
Włącza wydatniejszą obsługę dysków, cdrom`ów, dyskietek IDE/ATA-2.
<> SCSI emulation support
Włącza emulacje dyskuów IDE jako SCSI
[*] CMD640 chipset bugfix/support
--> [] CMD640 enhanced support
Poprawa błędu i rozszerzony support dla chipsetu CMD640, występującego w większości płyt dla procesorów 486 i Pentium.
[*] RZ1000 chipset bugfix/support
Poprawa błędu i rozszerzony support dla chipsetu RZ1000, występującego w większości płyt dla procesorów 486 i Pentium.
[*] Generic PCI IDE chipset support
Jeśli masz PCI system z obsługą dysków IDE, nie potrzebna, gdy korzystasz z urządzeń SCSI,
[*] Generic PCI bus-master DMA support
Jeśli Twój dysk obsługuje DMA zaznacz tę opcję.
[] Boot off-board chipset first support
Gdy chcesz pozmieniać numery kontrolerów
[*] Use DMA by default when available
Warto włączyć gdy masz urządzenia DMA
[] Other IDE chipset support
Włącz jeśli masz jakieś niestandardowe urządzenia IDE
---- Additional Block Devices
<> Loopback device support
<M> Network block device support
[] Multiple devices driver support
Pozwala na łączenie dysków w jeden system plików - tworzenie macierzy dyskowych
<> RAM disk dupport
Możesz używać części pamięci RAM jako system plików.
<> XT hard disk support
Jeśli masz bardzo stary kontroler dysku używany w IBM XT
<> Mylex DAC960/DAC1100 PCI RAID Controller support
Support dla tych kontrolerów
<> Parallel prot IDE device support
Jeśli masz podłączony CDROM lub jakieś dyski do portu równoległego
<> Compaq SMART2 support
Wsparcie dla kontrolera Compaq Smart Array
Networking options
<M> Packet socket
Protokół używany przez aplikacje do kominikacji z urządzeniami sieciowymi
[*] Kernel/User netlink socket
[*] Network firewalls
Jeśli chcemy użyć firewalla do ochrony naszej sieci.
[] Socket Filtering
<*> Unix domain socket
Dostęp do unixowego mechanizmu nawiązywania i kontorli dostępu do sieci. Wykorzystywane np. przez XWindow
[*] TCP/IP Networking
Obsługa protokołu TCP/IP wykorzystywanego w Internecie i sieciach lokalnych
[*] Network firewalls
Jeśli chcemy użyć firewalla do ochrony naszej sieci.
[] IP: multicasting
[] IP: advanced router
[] IP: kernel level autoconfiguration
[] IP: firewalling
[] IP: optimize as router not host
<> IP: tunneling
<> IP: GRE tunnels over IP
[] IP: aliasing support
Przypisywanie różnych adresów sieciowych jednemu interfejsowi
[] IP: TCP syncoolie support (not enabled per default)
[] IP: Reverse ARP
[] IP: Allow large windows (not recomended if < 16Mb of Memory)
--
<> The IPX protocol
Obsługa Novellowego protokołu siciowegi IPX
<> Appletalk DDP
Służy do konwersacji z komputerami Apple
SCSI support
<> SCSI support
Obsługa urządzeń SCSI
<> SCSI disk support
<> SCSI tape support
<> SCSI CD-ROM support
<> SCSI generic support
Wsparcie dla poszczególnych urządzeń SCSI - dysków, napędów taśmowych, CD-ROMu i innych urządzeń np. skanera
[] Probe all LUNs on each SCSI device
Wsparcie dla urządzeń, które mają więcej niż jeden Logical Unit Number (cokolwiek to znaczy :-)), np. CD jukebox
[] Verbose SCSI error reporting (kernel size +=12K)
Błędy urządzeń SCSI będą ławiejsze do zrozumienia
[] SCSI logging facility
SCSI low-level drivers -->
Tutaj wybieramy typ naszego kontrolera SCSI
Network device support
[*] Network device support
Musisz zaznaczyć tę opcję, jeśli chcesz wykorzystywać sieć - internet lub intranet
-- ARCnet support
Jeśli masz karty sieciowe oparte na chipsecie ARCnet
<M> Dummy net driver support
Zaznacz, jeśli używasz sieci na protokołach SLIP lub PPP
<> EQL (serial line load balancing) support
Jeśli chcesz używać jednocześnie dwóch połączeń do tego samego komputera (wymaga 2 modemów i 2 lini telefonicznych)
<> General Instruments Surfboard 1000
Sterownik dla powyższego urządzenia
Ethernet (10 or 100Mbit)
Musisz zaznaczyć jeśli chcesz utworzyć lokalna sieć na bazie kart sieciowych i wybrać odpowiedni jej model
[] FDDI driver support
Jeśli masz kartę FDDI (szybka sieć lokalna)
<M> PLIP (paraller port) support
Jeśli chcemy połączyć dwa komputerki za pomocą portu równoległego,
<M> PPP (point-to-point) support
Gdy korzystamy z Internetu poprzez linię telefoniczną, np. dostęp przez TPSA
--CCP compresors for PPP are only built as modules <> SLIP (serial line) support
starszy brat PPP wykorzystywany (coraz rzadziej) do łączenia się z Internetem, poprzez linię telefoniczną lub do połączeń z innymi komputerami za pomocą kabla nullmodem
<> CSLIP compressed headers
to samo co SLIP, tylko, że kompresowane są nagłówki TCP/IP
[] Keepalive and linefill
dodatkowe możliwości dla SLIP przy łaczach słabej jakości
[] Six bit SLIP encapsulation
[] Wireless LAN (non-hamradui)
Sieci związane z radiem, ale nie z tzw. radiem amatorskim (amateur radio)
Token ring device -->
IBM`owski sposób komunikacji w sieci Ethernet, wymaga specjalnej karty Token ring
[] Fibre Channel driver support
WAN interfaces -->
Obsługa sieci WAN (Wide Area Network),
[] SBNI12-xx support
Driver dla powyższej karty
Amateur Radio support
[] Amateur Radio support
Połączenie z internetem za pomocą "radia amatorskiego". Więcej informacji w HOWTO`s - HAM i AX25
IrDA subsystem support
<> IrDA subsystem support
Obsługa urządzeń na podczerwień, a także wykorzystywanych w notebook`ach i palmptopach
ISDN subsystem
<> ISDN subsystem
Obsługa urządzeń ISDN oraz ich konfiguracja. ISDN umozliwia prowadzenie wideokonferencji oraz zapewnia lepszą jakość przesyłu danych w Internecie.
Old CD-ROM drivers (not SCSI, not IDE)
Sterowniki dla CDROMów starszych typów, jeśli masz takowy powinieneś wybrać tutaj swój model
Character devices
[*] Virtual terminal
Możliwe jest uruchomienie kilku terminali, przełączanych za pomocą klawiszy ALT+Fx. Powinnieneś koniecznie zaznaczyć tę opcję
[*] Support for console on virtual terminal
Dzięki tej opcji będziesz mógł ustawić wirtualny terminal na konsoli - urządzeniu na które wysyłane są komunikaty i ostrzeżenia jądra systemu oraz pozwala na zalogowanie się w trybie single-user
<M> Standard/generic (dumb) serial support
Za pomocą tej opcji będziemy mogli włączyć obsługę urzadzeń działających na porcie szeregowym np. myszka, modem
[] Support for console on serial port
Będziemy mogli ustawić konsolę na porcie szeregowym, czyli komunikaty od jądra będą wysyłane na ten port, użyteczne w przypadku podłączania terminali lub profesjonalnych drukarek
[] Extended dumb serial driver options
Opcja wymagana jeśli chcemy używać HUB6 bądź więcej niż 4 porty szeregowe oraz dzielić linię szeregową
[] Non-standard serial port support
Pozwala na ustawienie niestandardowych portów, wykorzystywana w systemach gdzie konieczna jest praca wielu portów np. serwer z podłączonymi terminalami
[*] Unix98 PTY support
Pseudo-Terminal urządzenie programowe pozwalające na prace takich programów jak np. telnet, xterm
(256) Maximum number of Unix98 PTY in use (0-2048)
Maksymalna liczba pseudo-terminali mogących pracować jednocześnie, dla komputerów desktop 256 jest liczbą w zupełności wystarczającą, jednak dla serwerów udostępniających usługi telnet/ssh/rlogin itp konieczne może się okazać zwiększenie tej liczby
<*> Parallel printer support
Zaznacz jeśli Twoja drukarka jest podłączona do portu równoległego. Zazwyczaj wystarczy ustawienie tego jako moduł, ale u mnie pomogło dopiero wkompilowanie w jądro na stałe
[] Support IEEE1284 status readback
Jeśli Twoja drukarka dostosowywuje się do IEEE1284 (FireWire?), pozwala dostarczać znaki statusu np. cat /dev/lp1
[*] Unix98 PTY support
Pseudo-Terminal urządzenie programowe pozwalające na prace takich programów jak np. telnet, xterm
[*] Mouse Support (not serial mice) Mice -->
Obsługa myszki podłączonej do portu PS/2. Zaznaczenie tej opcji wymagane jest tylko i wyłącznie przy myszkach PS/2, myszki szeregowe nie potrzebują jej wcale! W sekcji Mice możemy wybrać rodzaj naszej myszki
<> QIC-02 type support
Jeśli masz takie urządzenie taśmowe (nie SCSI)
[] Watchdog Timer Support
Opcja użyteczna w przypadku serwerów, które muszą być przywrócone do pracy po reboot`ie tak szybko jak to możliwe
<> /dev/nvram support
[*] Enhanced Real Time Clock Support
Dostęp do zegara czasu rzeczywistego
Video For Linux -->
<> Video For Linux
Konieczne jest zaznaczenie tej opcji jeśli chcemy oglądać telewizję bądź słuchać radia. Powinniśmy także wybrać odpowiedni rodzaj naszej karty
Joystick support -->
<> Joystick support
Jeśli mamy podłączony do komutera joystick i chcemy go wykorzystywać w grach. Także i tutaj powinniśmy określić model naszego sprzętu
<> Double Talk PC internal speech card support
Sterownik dla DoubleTalkPC - syntezatora mowy
Ftape, the floppy tape device driver -->
Jeśli masz napęd taśmowy
Filesystem
[*] Quota support
Jeśli odpowiesz tak, będziesz mógł ustawiać limity dyskowe użytkownikom. Zobacz artykuł o Quocie.
<> Kernel automonter support
Pozwala na montowanie odległego systemu plikowego na żądanie
<> Amiga FFS filesystem support
FFS (Fast File System) jest używany przez Amigi. Jeśli masz taki dysk i chcesz z niego czytać, bądź pisać na nim zaznacz tę opcję
<> Apple Macintosh filesystem support (experimental)
Pozwala na korzystanie z dyskietek i dysków twardych sformatowanych w systemie plikowym Macintosh`y
<*> DOS FAT fs support
Gdy masz obok Linux`a zainstalowanego Windows`a zaznaczenie tej opcji pozwala na korzystanie z jego partycji
-- <> MSDOS fs support
Dostęp do partycji MSDOS
<> VFAT (Windows-95) fs support
Dostęp do partycji FAT z długimi nazwami plików
<*> ISO 9660 CDROM filesystem support
ISO 9960 jest standardem jeśli chodzi o zapis na płytach kompaktowych, więc opcja ta powinna być zaznaczona, jeśli chcemy korzystać z CDROMu
[] Microsoft Joliet CDROM extisions
Joliet jest Microsoftowym rozszerzeniem dla ISO 9660, który pozwala na długie nazwy plików w formacie unicode
<> Minix fs support
Dostęp do partycji systemu Minix
<> NTFS filesystem support (read-only)
System plików Windows NT. Możliwe jest tylko czytanie z tego rodzaju partycji
<> OS/2 HPFS filesystem support (read-only)
HPFS to system plików systemu OS/2 IBM`a
[*] /proc filesystem support
Wirtualny system plików tworzony w katalogu /proc do którego jądro zapisuje pliki z informacjami o działalności systemu np. przerwania itp.
[] /dev/pts filesystem for UNIX98 PTYs
Zaznacz tę opcję jeśli zaznaczyłeś UNIX98 PTY support, jest to wirtualny filesystem dla PTY
<> ROM filesystem support
System plików tylko do odczytu wykorzystywany w inicjującym system disk-ram -ie
<*> Second extended fs support
Standardowy system plików wykorzystywany w Linuxie: ext-2. Koniecznie wkompiluj to w jądro.
<> System V and Coherent filesystem support
Jeśli chcesz korzystać z partycji systemów unixowych - SCO, Xenix i Coherent
<> UFS filesystem support
System plików wykorzystywany m.in. przez SunOS, FreeBSD, NetBSD, OpenBED i NeXTstep
Network File System -->
Support dla sieciowych systemów plikowych, np. takich jak NFS, SMB
Partition Types -->
Native Language Support -->
Console drivers
[*] VGA text console
Bez tej opcji niemożliwe będzie korzystanie z Linuxa w trybie tekstowym, a praca z takim systemem będzie raczej uciążliwa. Koniecznie zaznacz.
[] Video mode selection support
Gdy masz kartę, która pozwala na ustawianie niestandardowych rozdzielczości ekranu
Sound
<M> Sound card support
Jeśli masz kartę dzwiękową w swoim komputerze. Polecam wybranie tej opcji jako moduł, u mnie po wkomilowaniu na stałe w jądro wogóle nie mogłem uruchomić karty
Musisz także wybrać rodzaj swojej karty. Dla SoundBlaster 16 jest to:
<M> OSS sound modules
<M> 100% Sound Blaster compatibiles (SB16/32/64, ESS, Jazz16) support
<M> FM synthesizer (YM3812/OPL-3) support
Dla SoundBlaster Live! należy wybrać tylko i wyłącznie:
<M> OSS sound modules
Additional low level sound drivers -->
Przyjrzyj się temu menu bliżej jeśli masz karty: miroSOUND PCM12 i PCM20, Sound Blaster 32/64 lub Galant Audio Cards (SC-6000 i SC-6600)
Kernel hacking
[] Magic SysRq key
Będziesz miał większą kontrolę nad systemem, np. podczas debuggowania jądra. Opcja dla ludzi pracujących nad jądrem systemu.
OK jeśli wszystko już wybraliśmy to teraz:
Kod: Zaznacz cały
make dep && make clean && make bzImage && make modules && make modules_intall && make install
Dla niezorientowanych może wytłumacze
make dep && make clean <---> przygotowuje do kapilacji
make bzImage <---> buduje jadro
make modules && make modules_install <---> buduje i kopiuje do /lib moduly
make install <---> wrzuca kernela do "/"
Teraz w zależności od twojego sprzętu będziesz czekał od 2min nawet do 12h (na 486 leci 12h hack na 3200+ minute i 40 sekund hack)
Po wszystkim tworzysz w katalogu /boot katalog old-2.4.28 <-- w moim przypadku. Ty możesz napisać swoja starą wersje kernela. Kopiujesz do tego katalogu wszystki pliki z katalogu /boot oprócz boot_message.txt. To wszytko wrazie ta kompilacja by się nie udała to będziesz miał jeszcze wtedy starego kernela. Teraz wystarczy z "/" skopiować do /boot System.map i vmlinuz. No i na koniec reboot i jeśli zrobiłeś wszystko dobrze to powinnieneś cieszyć się nowym kernelem.
PATCHOWANIE KERNELA
Chcąc patchować kernela musimy ściągnąć patcha do swojego kernela skopiować go do katalogu /usr/src/ i potem
Kod: Zaznacz cały
# gzip -dc patch-2.*.*.gz | patch -p0
Kod: Zaznacz cały
# bunzip2 patch-2.*.*.bz2 | patch -p0
Kod: Zaznacz cały
find /usr/src/linux-2.*.* -name "*.rej"