|
Kompilacja jądra Linuxa
Co to jest jądro systemu?
Jądro systemu (po angielsku:
kernel) jest odpowiedzialne za przełączanie procesora pomiędzy poszczególne
procesy, komunikacje z wszelkiego rodzaju urządzeniami wchodzącymi w skład
komputera oraz zarządzanie pamięcią i partycją wymiany. Pierwsze jądro Linux`a
napisał oczywiście sam Linus Torvalds, który do teraz zajmuje się jego rozwojem.
Zostało ono stworzone prawie w całości przu użyciu języka programistycznego C.
Jądro Linuxa ma modularną budowę, ale o tym poniżej.
Moduły
Moduły wynalezione zostały po
to, aby odciążyć jądro Linuxa i nie ładować niepotrzebnych sterowników urządzeń
do pamięci. Nie chodzi tutaj o niepotrzebne sterowniki np. streamera, którego
nie mamy, ale o takie, które nie są konieczne w danej chwili i mogą zostać
załadowane, kiedy będziemy chcieli skorzystać z urządzenia. Bo np. ile razy
uruchamiamy komputer i nie używamy np. drukarki? Jeśli sterownik drukarki byłby
wkompilowany w jądro na stałe, wtedy zajmował by pamięć nawet wtedy, gdy nie
mielibyśmy wcale zamiaru drukować :-) Moduły mają tę zaletę, że możemy je
dodawać do jądra bez przerywania pracy systemu. Możemy także dodać obsługę
nowego sprzętu (który kupiliśmy, bądź dołączyliśmy) bez rekompilacji całego
jądra. Modułami możemy swobodnie operować za pomocą lini komend linuxowej
konsoli.
| |
insmod - polecenie to pozwala na załadowanie modułu do pamięci,
rmmod - usuwa moduł,
lsmod - wyświetla listę załadowanych modułów,
depmod - tworzy bazę danycch z informacjami o dostępnych w
systemie modułach, które mogą zostać umieszczone w jądrze.
|
|
Wersje jądra Linuxa
Istnieją dwa rodzaje dostępnych
wersji jądra - stabilna (stable) i rozwojowa (development). Stabilna jest
przeznaczona dla ludzi ceniących sprawdzone, nie zawierający większych błędów
szkielet systemu. Wersje te zalecane są także dla początkujących użytkowników
gdyż nie powinny sprawiać większych problemów i są bardzo dobrze udokumentowane.
Wersje developerskie przeznaczone są dla ludzi zajmujących się rozwojem kernela,
zawierają często wiele nowych sterowników dla najnowszych urządzeń oraz
pomysłów. Czesto zdaraz się jednak, że użytkownicy wybierają niestabilne jądro i
na nim pracując, wykorzystują je lepiej niż stabilne :-)
Ze względu na podział na
wersje, także różna jest ich numeracja. Wersje stabilne mają środkową liczbę
parzystą np. 2.2.14, a developerskie nieparzystą np. 2.3.40. Wersją testowym
przybywa numerków często, natomiast stabilnym co miesiąc-dwa-trzy.
Źródła
Aby móc skompilować jądro
Linux`a musimy mieć jego pliki źródłowe. Powinniśmy wybrać najnowszą stabilną
wersję, najlepiej w postaci spakowanej *.tar.gz. Możemy też wziąść źródła z
naszej dystrybucji zawarte w pakietach *.rpm, ale na 90% będą one już
przestarzałe! Pliki te będą nosiły nazwy kernel-headers-numer.wersji.rpm i
kernel-source-numer.wersji. My jednak zaopatrzymy się w najnowsze źródełka, mogą
być z internetu, jeśli ktoś posiada łącze pozwalające na w miare szybkie
przepuszczenie kilkudziesięciu megabajtów, bądź z płytki dołączonej do czasopism
-> najlepszym rozwiązaniem jest chyba pismo Linux Plus, potem może być np. Chip,
który też czasami umieszcza źródełka kernela Linuxa :-)
No więc mamy już plik
kernel-numer.wersji.tar.gz. Na początek wywalmy źródła zainstalowane z *.rpm`a.
Potem przenieśmy ten plik do katalogu /usr/src i wydajmy polecenie
rozpakowania źródeł nowego jajka:
| |
tar
-zxvf kernel-numer.wersji.tar.gz |
|
Spowoduje to umieszczenie
ogromnej ilości plików w katalogu /usr/src/linux. To są nasze źródełka,
na których będziemy działać.
Przed kompilacją
Musisz być pewny, że masz
zainstalowane pakiety: make, bin86, egcs i glibc-devel. Są one konieczne do
kompilacji jądra systemu.
Masz do wyboru trzy sposoby
ustawienia opcji konfiguracyjnych:
1. Program konfiguracyjny
uruchamiany poleceniem make config. Wybór opcji kompilacyjnych polega na
żmudnym odpowiadaniu na zadawane przez komputer pytania. Niezbyt wygodny w
użyciu, nie polecam.
2. Program konfiguracyjny
uruchamiany poleceniem make menuconfig. Dostajemy narzędzie a`la mc :-).
Cały proces przygotowania pliku konfiguracyjnego opiera się na używaniu dwóch
klawiszy: entera i spacji. Bardzo prosty w obsłudze, za pomocą znaku "?"
dostajemy dość obszerną pomoc dla każdego z komponentów.
2. Program konfiguracyjny
uruchamiany poleceniem make xconfig. Jak nazwa wskazuje odpalamy go w
środowisku XWindow, ma przyjemny interfejs, bardzo łatwo i fajnie się go
obsługuje. Wszelkie wybory dokonujemy za pomocą myszki.
Sterowniki mogą być jak już
napisałem powyżej wkompilowane w jądro, mogą być skompilowane jako moduł lub nie
kompilowane wcale. My użyjemy do konfiguracji jądra programu menuconfig.
Sterowniki kompilowane na stałe w jądro oznaczone będą *, jako moduł M,
lub nie kompilowane wcale - okienko puste. Wybór poszczegółnych rodzajów odbywa
się poprzez wielokrotne naciśnięcie spacji.
Konfiguracja jądra
Przechodzimy do katalogu
/usr/src/linux i wydajemy polecenie:
Po chwili ujżymy menu główne
programu. Jest ono podzielone na tematyczne sekcje: moduły, sieć, dzwięc itd. Do
podmenu przechodzimy naciskając ENTER, wychodzimy przesuwając podświetlenie na
opcje EXIT i ENTER.
A oto i poszczególne opcje
(jądro 2.2.13) wraz z opisem.
| |
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.
|
|
Niektóre objaśnienia
Niestety, ale nie wszystkie
opcje z konfiguracji jądra są mi znane, dlatego pojawiły się pola bez opisu.
Jeśli ktoś mógłby mi pomóc w wyjaśnieniu tych ustawień to bardzo proszę o
kontakt. Czekam także na uwagi, jeśli któreś z objaśniej rozmija się z prawdą
...
Kompilacja jądra
Wychodzimy z konfiguratora i
zapisujemy ustawienia. Teraz przyszła pora, aby skompilować noew jadro. Zrobimy
to za pomocą trzech poleceń:
| |
make dep
make clean
make zImage
|
|
make dep zrobi wszystkie
powiązania, make clean wyczyści niepotrzebne śmieci ze źródeł, a make zImage
skompiluje nam obraz naszego jądra. Operacja kompilacji trwa zależnie od
szybkości naszego procesora oraz od ilości zainstalowanej pamięci RAM. Dla
Pentium Celeron 300 i 64 Mb RAM jest to kilkanaście minut.
Jeśli po kompilacji poleceniem
zImage otrzymamy komunikat, że nasze jądro jest zaduże wydajmy polecenie:
Mamy już skompilowane jądro,
które leży sobie w pliku /usr/src/linux/arch/i386/boot/zImage lub jeśli
użyliśmy polecenia bzImage w pliku /usr/src/linux/arch/i386/boot/bzImage
Teraz powinniśmy skompilować
moduły. Robimy to poleceniem
A następnie zainstalować je do
katalogu /lib/modules/numer.wersji:
UWAGA:
Ważne, aby przed wydaniem
polecenia make modules_install usunąć z katalogu /lib/modules/numer-wersji
poprzednio skompilowane moduły. Czynność tę musimy wykonać tylko w wypadku, gdy
kompilujemy jądro o numerze wersji takim samym jak skompilowane wcześniej.
Przykładowo jeśli mamy już jądro 2.2.13 i kompilujemy jądro o takiej samej
wersji usuwamy katalog /lib/modules/2.2.13. Uchroni nas to przed nadpisywaniem
modułów oraz komunikatem Unresolved symbol ...
Instalacja jądra
Jądro w Linuxie powinno zostać
umieszczone w katalogu /boot i nie powinniśmy nadpisywać starego jądra,
gdyż może się zdarzyć, że nowe jądro wcale nie będzie chciało z nami
współpracować i wtedy zostalibyśmy na lodzie. Przekopiujemy plik jądra do
katalogu /boot pod nową nazwą.
| |
cp
/usr/src/linux/arch/i386/boot/zImage /boot/vmlinux-numer.wersji-nowe
jeśli mamy jadro skompilowane jako zImage
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinux-numer.wersji-nowe
jeśli użyliśmy polecenia make bzImage |
|
Ładowanie jądra
Jądro ładowane jest podczas
startu systemu, wywołuje je LInux LOader (LILO). Dlatego też skonfigurujemy plik
/etc/lilo.conf, który będzie odpowiedzialny za ładowanie naszeho nowego
jądro. Dopiszmy parę linijek do orginalnego pliku
| |
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-20.img
read-only
root=/dev/hda5
other=/dev/hda1
label=dos
# tutaj definicja nowego jajka, to co dopisałem
image=/boot/vmlinuz-2.2.13
# ścieżka do pliku z jądrem
label=linux-nowy
# to musimy wpisać po prompcie LILO:
# jeśli wszystko będzie grać możemy zmienić opcję default
read-only
root=/dev/hda5
|
|
Przeładowanie LILO
Bardzo ważną rzeczą jest
ponowne uruchomienie lilo w celu odczytania zawartości pliku lilo.conf. Jeśli
zmienialiśmy w nim cokolwiek, zmiany z tego pliku zostaną odczytane dopiero w
momencie wydania polecenia:
System.map
Jeśli instalowaliśmy nową
wersję jądra Linux`a zapewne pojawią się komunikaty, że plik System.map ma
niewłaściwą wersję kernela.
Aby to usunąć kopiujemy plik
System.map z katalogu /usr/src/linux do kartoteki /boot i nadajemy mu nazwę
System.map-numer.wersji.
Istniejący w katalogu /boot
plik System.map jest tylko dowiązaniem symbolicznym do mapy systemowej
poprzedniego jądra. Usuwamy plik System.map poleceniem:
I tworzymy link do pliku
System.map-numer.wersji:
| |
ln-s /boot/System.map-numer.wersji
/boot/System.map |
|
Teraz możemy zrestartować nasz
system i uruchomić nowe jajko poleceniem, które podaliśmy w lilo.conf.
Obejrzyjmy czy nie wyskakują jakieś błędy, czy wszystkie urządzenia działają
etc. Potem możemy to jądro ustawić jako ładowane standardowo podczas startu
systemu.
|