Izvorno kodo lahko dobite po anonimnem FTP-ju s strežnika
ftp.kernel.org
v imeniku /pub/linux/kernel/vx.y
,
kjer je x.y
različica (npr. 2.2), in kot je bilo že omenjeno,
so lahko razvojne različice jedra, označene z lihimi končnimi
številkami, nestabilne. Izvorna koda jedra je navadno označena kot
linux-x.y.z.tar.gz
, kjer je x.y.z
številka
različice. Strežniki navadno premorejo tudi datoteke s podaljškom
.bz2
, ki so bile stisnjene s pripomočkom bzip2
(te
datoteke bodo manjše, zato bo za njihov prenos potrebno manj časa).
Najboljše bo, če za prenos uporabite ftp.xx.kernel.org
, kjer
je xx
koda vaše države; v Sloveniji boste tako uporabili
ftp.si.kernel.org
, v Avstriji
ftp.at.kernel.org
, v Združenih državah Amerike pa
ftp.us.kernel.org
.
Prijavite se kot ,,root
`` (ali pa uporabite ukaz su
)
in s cd
spremenite imenik na /usr/src
. Če ste ob
prvi namestitvi Linuxa namestili tudi izvorno kodo jedra (večina jih
stori tako), bo tam že imenik ,,linux
``, ki vsebuje celotno
staro drevo izvorne kode. Če imate dovolj diskovnega prostora in bi
se radi počutili varno, ohranite ta imenik. Dobra ideja je, da
izveste različico sistema, ki jo trenutno uporabljate, in ustrezno
preimenujete imenik. Trenutno različico jedra izveste z ukazom
,,uname -r
``. Če torej ,,uname -r
`` pravi
,,1.0.9``, boste preimenovali (z ,,mv
``) ,,linux
`` v
,,linux-1.0.9
``. Če se počutite malo bolj lahkomiselne,
preprosto pobrišite celoten imenik. V vsakem primeru se prepričajte,
da v /usr/src
nimate imenika ,,linux
``, preden
odpakirate celotno izvorno kodo.
Zdaj v imeniku /usr/src
odpakirajte izvorno kodo z ukazom
,,tar zxpvf linux-x.y.z.tar.gz
`` (če imate samo datoteko
.tar
brez končnega .gz
pa z ukazom ,,tar xpvf
linux-x.y.z.tar
``). Na zaslonu boste videli izpisane datoteke
izvorne kode. Ko tar
konča, boste imeli nov imenik
/usr/src/linux
. Naredite cd
v linux
in
preberite datoteko README
. Nekje bo razdelek z naslovom
,,INSTALLING the kernel
`` (,,NAMESTITEV jedra``).
Upoštevajte navodila, kjer je to primerno - simbolne povezave, ki
morajo biti na pravih mestih, brisanje ostalih datotek .o
itd.
Če imate datoteko .bz2
in pripomoček bzip2
(več o tem
preberite na
http://www.muraroa.demon.co.uk/
),
naredite tole:
bz2cat linux-x.y.z.tar.bz2 | tar xvf -
Opomba: Nekaj tega je reiteracija/razjasnitev podobnega razdelka v
Linusovi datoteki README
.
Ukaz ,,make config
`` v imeniku /usr/src/linux
požene
nastavitveni skript, ki vas vpraša veliko vprašanj. Potrebuje ukazno
lupino bash
, zato preverite, če ta obstaja v
/bin/bash
, /bin/sh
, ali $BASH
.
Verjetno boste raje uporabljali katero od alternativ ukazu ,,make
config
``. Tisti, ki poganjate grafični sistem X, lahko poskusite
,,make xconfig
``, če imate nameščen programski paket Tk
(,,klik-o-rama`` - Nat). ,,make menuconfig
`` je za tiste, ki
imate (n)curses in bi radi imeli tekstovne menuje. Ta dva vmesnika
imata bistveno prednost pred standardnim: če zamočite in med
konfiguracijo izberete napačno izbiro, lahko greste nazaj in zadevo
popravite.
Z uporabo ,,make menuconfig
`` ali ,,make xconfig
``
bodo nastavitvene izbire urejene hierarhično.
Pripravljeni ste na odgovarjanje nekaj vprašanj, navadno z
,,y
`` (da) ali ,,n
`` (ne). Gonilnik naprav imajo
tipično izbiro ,,m
``. Ta pomeni ,,modul``, se pravi, da ga bo
sistem prevedel, ne pa tudi vključil neposredno v jedro. Na voljo bo
kot nalagalni modul. Bolj duhovit način za opis te izbire bi bil
,,mogoče``. Nekatere bolj očitne in ne-kritične izbire tukaj niso
opisane; glejte razdelek
,,Druge nastavitvene izbire`` za kratek opis nekaterih posameznih izbir.
Pri ,,make menuconfig
`` s presledkom spreminjate izbiro.
V jedrih 2.0.x in poznejših je na voljo tudi izbira ,,?
``, ki
poda kratek opis posameznega nastavitvenega parametra. Ta informacija
je verjetno najbolj sveža. Tukaj je seznam nekaterih najpomembnejših
odlik, s hierarhijo, v kateri jih najdete, in kratkim opisom.
[ Emulacija matematičnih operacij v jedru (Vrsta in lastnosti procesorja) ]
Če nimate matematičnega koprocesorja (imate le goli procesor 386 ali
486SX), morate tukaj reči ,,y
``. Če imate koprocesor in
rečete ,,y
``, ne skrbite preveč - koprocesor se bo še vedno
uporabljal, emulacija pa ignorirala. Za vsak napol sodoben stroj bo
odgovor ,,ne``, a ne skrbite, če boste pomotoma rekli ,,da``; če
emulacija ni potrebna, se ne uporablja.
[ Podpora izboljšanim diskom (MFM/RLL) in diskom/CD-ROM-om tipa IDE (Blokovne naprave) ]
Verjetno morate to podpreti; pomeni, da bo jedro podpiralo standardne trde diske, ki jih najdemo v osebnih računalnikih večine ljudi. Ta gonilnik ne vključuje pogonov SCSI; v nastavitvah pridejo ti na vrsto kasneje.
Nastavitveni program vas bo nato vprašal ali želite podporo le starim diskom (,,old disk-only``) in novim diskom IDE (,,new IDE``). Izbrati morate eno od teh možnosti; glavna razlika je v tem, da stari gonilnik podpira le dva diska na enem vmesniku, medtem ko novi podpira drugi vmesnik in CD-ROM-e IDE/ATAPI. Novi gonilnik je 4 KB večji od starejšega in naj bi bil ,,izpopolnjen``, kar pomeni, da poleg vsebovanja različnega števila hroščev verjetno tudi izboljša obnašanje vašega diska, posebej, če imate novejšo strojno opremo tipa EIDE.
[ Omrežna podpora (Splošne nastavitve) ]
Tukaj boste zelo verjetno rekli ,,y
``, saj želite, da bo vaš
računalnik omrežen na Internet ali da bo dostopal vanj preko SLIP,
PPP, term itd., torej s klicnim dostopom. Vendar, ker veliko paketov
(kot na primer sistem X window) potrebuje omrežno podporo tudi, če vaš
računalnik ne živi v pravem omrežju, boste tukaj vseeno rekli
,,y
``. Pozneje vas bo program vprašal, če želite omrežno
podporo protokolu TCP/IP; spet boste odgovorili z ,,y
``, če
niste absolutno prepričani v nasprotno.
[ Medprocesna komunikacija Systema V (Splošne nastavitve) ]
Ena najboljših definicij IPC (Interprocess Communication, medprocesna
komunikacija) je v slovarčku knjige Programming Perl: ,,včasih se mora
proces le pogovoriti z drugim procesom``. Ne preseneča nas torej, da
nekateri perlovski programerji dovoljujejo procesom, da se pogovarjajo
drug z drugim, kot to počne tudi veliko drugih paketov (najbolj znan
je DOOM), torej izbira ,,n
`` ni dobra ideja, razen, če točno
veste, kaj počnete.
[ Procesorska družina (Vrsta in lastnosti procesorja) ]
(v starejših jedrih: uporabite zastavico -m486
za
optimizacije za 486)
Včasih je to vključilo posebne optimizacije za določen procesor; jedro
je teklo povsem dobro na ostalih čipih, a je bilo morda malo večje. V
novejših jedrih pa to ni več res, zato vnesite procesor, za katerega
prevajate jedro. Jedro za ,,386
`` bo delovalo na vseh
strojih.
[ Podpora SCSI ]
Če imate naprave tipa SCSI, recite ,,y
``. Vprašani boste po
nadaljnih podatkih, kot je podpora CD-ROM-om, diskom in katere vrste
vmesnik SCSI imate. Za več podrobnosti preberite SCSI-HOWTO
.
[ Podpora omrežnim napravam ]
Če imate mrežno kartico ali bi radi uporabljali SLIP, PPP ali
paralelni vmesnik za dostop na Internet, recite ,,y
``.
Nastavitveni skript vas bo vprašal o tipu kartice in protokolu, ki ga
boste uporabljali.
[ Datotečni sistemi ]
Nastavitveni skript vas bo vprašal, če želite imeti naslednje datotečne sisteme podprte v jedru:
Standard (minix)
- novejše distribucije ne delajo
datotečnih sistemov minix in veliko ljudi jih ne uporablja, a mogoče
je vseeno dobra zamisel, da bi jih podprli. Nekateri programi za
izdelavo ,,rešilnih diskov`` jih uporabljajo in veliko disket je
formatiranih kot minix, saj je minixov datotečni sistem na disketah
manj mukotrpen.
Second extended
- To je standardni datotečni sistem
Linuxa. Skoraj zagotovo ga imate in morate reči ,,y
``.
msdos
- Če želite uporabljate particije MS-DOS-a na
trdem disku ali nameščati dosovske formatirane diskete, recite
,,y
``.
Dostopnih je še mnogo drugih tujih datotečnih sistemov.
/proc
- (zamisel iz Bell Labs, domnevam). Datotečnega
sistema /proc
se ne ustvari na disku; to je datotečni vmesnik
do jedra in procesov. Veliko izpisovalcev procesov
(npr. ,,ps
``) ga uporablja. Poskusite kdaj ,,cat
/proc/meminfo
`` ali ,,cat /proc/devices
``. Nekatere
ukazne lupine (posebej rc
) uporabljajo /proc/self/fd
(na drugih sistemih znan kot /dev/fd
) za vhodno/izhodne (V/I)
operacije. Skoraj gotovo morate reči ,,y
``; veliko pomembnih
orodij za Linux je odvisnih od tega.
NFS
- Če vaš stroj biva na omrežju in želite
uporabljati datotečne sisteme, ki ležijo na drugih sistemih z NFS,
recite ,,y
``.
ISO9660
- Najdete ga na večini CD-ROM-ov. Če imate
pogon za CD-ROM in ga želite uporabljati v Linuxu, recite
,,y
``.
Prav, napišite ,,mount
``. Izpis bo približno takšen:
blah:# mount /dev/hda1 on / type ext2 (defaults) /dev/hda3 on /usr type ext2 (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults)
Poglejte v vsako vrstico; beseda poleg ,,type
`` je ime
datotečnega sistema. V tem primeru sta moja datotečna sistema
/
in /usr
tipa ,,second extended``, uporabljam
/proc
in nameščena je disketa z datotečnim sistemom msdos
(bljak).
Poskusite tudi ,,cat /proc/filesystems
``, če imate trenutno
vklopljen /proc
; to bo izpisalo vaše trenutne datotečne
sisteme v jedru.
Namestitev redko uporabljanih, ne-nujnih datotečnih sistemov lahko povzroči napihnjeno jedro; glejte razdelek o modulih za način, kako se temu izognete in razdelek ,,Velika ali počasna jedra`` o tem, zakaj je napihnjeno jedro nezaželjen pojav.
[ Znakovne naprave ]
Tukaj vključite gonilnike za vaš tiskalnik (pravzaprav, tiskalnik na
vzporednih vratih), miško, priklopljeno na vrata busmouse ali PS/2
(veliko notesnikov uporablja miškovni protokol PS/2 za njihove
vgrajene sledilne kroglice), nekatere tračne enote in druge takšne
,,znakovne`` naprave. Recite ,,y
``, če je tako prav.
Opomba: gpm
je program, ki vam omogoča uporabo miške izven
sistema X window za izrezovanje in prilepljanje besedila med
navideznimi zasloni. Dobro je, če imate miško na zaporednih vratih,
saj ta lepo shaja z Okni X, za druge miške pa morate uporabiti posebne
trike.
[ Zvok ]
Če imate veliko željo slišati, kako biff
laja, recite
,,y
``, in nastavitvenemu programu lahko poveste vse o vaši
zvočni kartici. (Opomba glede nastavitve zvočne kartice: ko vas
vpraša, če želite namestiti popolno različico gonilnikov, lahko rečete
,,n
`` in prihranite nekaj pomnilnika jedra z izbiro le tistih
lastnosti, ki se vam zdijo potrebne.)
Če zares potrebujete dobro podporo zvočne kartice, poglejte proste
gonilnike na naslovu
http://www.linux.org.uk/OSS/
in komercialni Open Sound System na
http://www.opensound.com/
.
Vse nastavitvene izbire tukaj niso naštete, saj se prepogosto
spreminjajo ali so same po sebi razvidne (na primer, podpora 3Com
3C509 za točno to mrežno kartico). Obstaja precej obsežen seznam vseh
izbir (in način, kako jih uvrstimo v skript Configure
);
projekt je začel in vzdrževal Axel Boldt
(boldt@math.ucsb.edu
) in je dostopen kot pomoč na zvezi. Na
voljo je tudi kot ena sama velika datoteka
Documentation/Configure.help
v izvorni kodi jedra od
različice Linuxa 2.0 naprej.
[ Hekanje jedra ]
Iz Linusove datoteke README
:
Izbira ,,hekanje jedra`` navadno vodi v večje in počasnejše jedro (ali
v oboje) in lahko naredi jedro manj stabilno tako, da prekodira
nekatere rutine, ki aktivno poskušajo sesuti slabo kodo in s tem najti
jedrne probleme (kmalloc()
). Torej boste, če ste navadni
smrtnik, tukaj odgovorili z ,,n
``.
Makefile
)
Ko opravite nastavljanje, vam sporočilo pove, da je jedro nastavljeno in da naj pogledate ,,najvišje-nivojsko datoteko Makefile za dodatno nastavitev`` itd.
Poglejte torej Makefile
. Verjetno vam je ne bo treba
spreminjati, a nikoli ne škodi, če pogledate. Po namestitvi novega
jedra lahko spreminjate izbire tudi z ukazom ,,rdev
``. Če se
ob ogledu te datoteke počutite izgubljeni, jo pač pozabite.