Linux Cekirdek-NASIL Gorkem Cetin , e077245@orca.cc.metu.edu.tr Sertan Girgin , sertan@compclup.ceng.metu.edu.tr v1.0, 4 Aralik 1996 Bu dokuman, cekirdegin konfigurasyonu, derlenmesi ve guncellestirilmesi icin gerekli bilgileri icerir. 1. Giris Cekirdek-NASIL dokumani, cekirdek derlerken karsilanan sorunlari en aza indirmek ve kullanicinin ihtiyacini da gozonunde bulundurarak derleme asamasini en kisa zamanda ve en uygun yoldan gerceklestirmek icin yazilmistir. Linux cekirdegini derlemek uzun bir islem gerektirir ve kullanicinin onune pekcok secenekler sunar. 1.1 Gereksinimler Buradaki birtakim programlar, makinanizda GNU tar, find ve xargs komutlarinin bulundugunu farzeder. Bu komutlar neredeyse standartlasmis olduklarindan nadiren sorun cikartirlar. Ayrica bilgisayarinizdaki dosya yapisindan da haberdar olmaniz gerekir. Bu dosya hazirlanirken son kararli cekirdek surumu 2.0.23 idi, ornekler de bu surume gore hazirlandi. Cekirdek surekli degisim ve gelisim icinde oldugundan yeni cekirdekteki bir degisiklik, dosyada verilen bilgilerin yanlis olmasina neden olabilir. Bu durumu gozonunde bulundurunuz. Her linux cekirdegine bir surum kodu verilir : 1.0.9, 1.3.50 , 2.0.0 gibi. Her kodun ikinci numarasi, cekirdegin gelistirilme asamasinda mi, yoksa kararli mi oldugu konusunda fikir verir. Bu sayi cift ise o kernal, hatalari ayiklanmis ve onaylanmis bir cekirdek anlamina gelir. Diger durumda, sayi eger tek ise cekirdek henuz gelistirilme asamasindadir ve kararli olmayabilir. 2. Bazi onemli noktalar 2.1 Nedir bu cekirdek denilen sey ? Genel anlamda cekirdek, programlarin ve donanimin arasinda durarak iletisimi saglayan bir arabirimdir. Calisan tum programlarin ve sureclerin hafiza ile olan iliskilerini duzenler. islemcinin gucunun tum bu programlar arasinda adil bir sekilde dagitimini uzerine alir. Tum bu islemleri kullanicinin haberi olmadan heran, durmaksizin yapar. 2.2 Neden cekirdegi yukseltmem gerekiyor ? Linux uzerinde calisan binlerce kisi surekli olarak varolan linux programlari uzerinde calisirlar. Cekirdek ile ilgili her yeni dusunce , aninda programa gecirilir. Artik daha hizli calisan aygit suruculeri, daha hizli hafiza yonetimi veya kararliligi yuksek bir cekirdek olusmustur. Hatalar da surekli kapandigindan yukseltme islemi kullanicinin lehine olur. 2.3 Yeni cekirdekler benim donanimimi destekler mi ? Donanim-NASIL dosyasinda cekirdegin destekledigi tum donanimlar vardir. Ayrica cekirdegin derlenmesi asamasinda 'make config' komutunun ardindan destek goren tum donanimin listesi ekrana sirayla gelir. Bu listedeki bazi aygit suruculeri ise slackware dagitimindan ayri olarak modul olarak linux ile ilgili ftp adreslerinden bulunabilir. 2.4 Modul nedir ? Moduller, derleme esnasinda cekirdek uzerine eklenmeyen programciklardir. Kullanici bunlari cekirdekten ayri derler, istedigi zaman cekirdege ekleyip cikartabilir. Bunlar yapilirken makinayi kapatmaya da gerek kalmaz. Cok kullanilan ve populer bazi aygit suruculeri (PCMCIA suruculeri gibi) modul olarak derlenirler. 2.5 Sabit diskimde ne kadar bos yere ihtiyacim var ? Bu sisteminizde yapacaginiz konfigurasyona baglidir. Ornegin surum 2.0.10 yaklasik 6Mb disk alani kaplar. Acildigi zaman ise toplam kapladigi alan 24 Mb olur. Derleme asamasindan sonra bu rakam 30 Mb'i gecer. Her eklenen aygit surucu destegi sabit diskten bir miktar daha yer alir. Genellikle yeni cikan cekirdek kaynak kodu bir onceki surumden daha buyuktur. 2.6 Cekirdegin derlenmesi ne kadar surer ? Kullandiginiz sisteme gore bu sure degiskenlik gosterir. 16 Mb 486DX4/100 makinasinda, 5 dosya sistemi destegi, ag destegi ve ses karti surucusu ile yaklasik 20 dakika surer. Ayni konfigurasyonu iceren cekirdegin derlenmesi ise daha zayif bir makina olan 8Mb 386DX/40 altinda 1.5 saati bulur. Derlerken gidip cayinizi icin, biraz televizyon seyredin. Makinaniz 386 ise bir banyo alip disari cikin, alisveris yapin. Cok umitsiz bir durumdaysaniz, yapilacak en iyi sey en yakin bilgisayar sirketine ugrayarak yeni fiyatlari sormak :-) 3. Ayarlar 3.1 Cekirdegin alinmasi Cekirdek kaynak kodu ,ftp://ftp.metu.edu.tr/ adresindeki /pub/linux/tsx/sources/system dizininden veya tsx-11.mit.edu adresinin arsivini tutan herhangi bir adresten alinabilir. Bu dizin altindaki linux surumlerinin bir tanesini (v1.2, v2.0, v2.1 gibi) sectikten sonra altindaki dosyayi alabilirsiniz. Dosyanin ismi linux-x.y.z.tar.gz yapisindadir. Buradaki x.y.z sayisi surum sayisini gosterir. y sayisinin tek olmasi durumunda henuz cekirdegin test asmasinda oldugu anlasilabilir. Bu sayi cift ise sozkonusu cekirdek kararlidir. Asagidaki ornekte ftp.metu.edu.tr adresinden 2.0.10 surumunun alinisi gosterilmektedir: compclub:~$ ftp ftp.metu.edu.tr Connected to ephesus.cc.metu.edu.tr. 220- 220-Welcome to METU Ftp Site ! 220- 220-All logins and transfers are logged with your hostname. 220-If you do not agree with this policy, please cancel now. 220- 220 ephesus FTP server (Version wu-2.4(5) Wed Jan 10 18:06:56 EET 1996) ready. Name (ftp.metu.edu.tr:gorkem): ftp 331 Guest login ok, send your complete e-mail address as password. Password: 230-########################################################################## 230-## Welcome to the Middle East Technical University Ftp Archive ## 230-########################################################################## 230- 230- 230-Hello ftp@compclub.ceng.metu.edu.tr ! 230-You are the 19. anonymous user. 230-Maximum number of users allowed is 100. 230-Local Time is Tue Nov 5 12:19:41 1996. 230- 230-Mirrored sites are placed under the directory /pub 230-This archive is maintained by ftpload@ftp.metu.edu.tr 230-You can reach this archive via FSP at port 21. 230- 230-You can reach public directories via "cd dirname" 230-command independent of your current location; 230-e.g. "cd linux" instead of "cd /pub/linux" 230- 230 Guest login ok, access restrictions apply. ftp> cd /pub/linux/tsx/sources/system/ 250-Please read the file README 250- it was last modified on Mon Sep 16 11:36:00 1996 - 50 days ago 250 CWD command successful. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 66 -rw-r--r-- 1 ftpload ftp-adm 36981 Sep 16 12:36 CREDITS drwxr-xr-x 3 ftpload ftp-adm 512 Oct 13 15:59 Historic -rw-r--r-- 1 ftpload ftp-adm 12056 Sep 16 12:36 README drwxr-xr-x 2 ftpload ftp-adm 512 Oct 14 11:47 SillySounds drwxr-xr-x 2 ftpload ftp-adm 512 Oct 13 18:17 testing drwxr-xr-x 2 ftpload ftp-adm 512 Oct 14 11:47 v1.0 drwxr-xr-x 2 ftpload ftp-adm 2048 Oct 31 21:55 v1.1 drwxr-xr-x 2 ftpload ftp-adm 1024 Jun 25 11:34 v1.2 drwxr-xr-x 2 ftpload ftp-adm 6656 Sep 27 04:24 v1.3 drwxr-xr-x 2 ftpload ftp-adm 1536 Nov 2 00:05 v2.0 drwxr-xr-x 2 ftpload ftp-adm 512 Nov 2 21:33 v2.1 226 Transfer complete. ftp> cd v2.0 250 CWD command successful. ftp> bin 200 Type set to I. ftp> dir linux* 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 141009 -rw-r--r-- 1 ftpload ftp-adm 5859566 Jul 3 11:22 linux-2.0.1.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5940281 Jul 27 06:39 linux-2.0.10.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5952403 Aug 5 03:01 linux-2.0.11.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5954278 Aug 9 12:53 linux-2.0.12.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5981780 Aug 16 06:19 linux-2.0.13.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5984960 Aug 20 11:52 linux-2.0.14.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5986368 Aug 25 06:20 linux-2.0.15.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5990228 Aug 31 14:03 linux-2.0.16.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5991606 Sep 2 06:37 linux-2.0.17.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5993351 Sep 5 10:38 linux-2.0.18.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5997342 Sep 11 10:21 linux-2.0.19.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5861789 Jul 5 12:09 linux-2.0.2.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5997693 Sep 13 08:53 linux-2.0.20.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5999162 Sep 20 09:51 linux-2.0.21.tar.gz -rw-r--r-- 1 ftpload ftp-adm 6009488 Oct 8 13:02 linux-2.0.22.tar.gz -rw-r--r-- 1 ftpload ftp-adm 6010694 Oct 18 08:20 linux-2.0.23.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5931967 Jul 6 07:53 linux-2.0.3.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5926911 Jul 8 08:48 linux-2.0.4.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5927899 Jul 10 08:23 linux-2.0.5.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5929807 Jul 12 07:22 linux-2.0.6.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5931378 Jul 15 07:38 linux-2.0.7.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5936467 Jul 20 02:52 linux-2.0.8.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5939510 Jul 26 04:09 linux-2.0.9.tar.gz -rw-r--r-- 1 ftpload ftp-adm 5843677 Jun 9 23:36 linux-2.0.tar.gz 226 Transfer complete. ftp> get linux-2.0.20.tar.gz 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.0.20.tar.gz (5997693 bytes). 226 Transfer complete. 5997693 bytes received in 136 secs (43 Kbytes/sec) ftp> quit 221 Goodbye. 3.2 Arsivi nasil acarim ? Sisteme root olarak giris yapin ve /usr/src dizinine gecin. Linux'un kurulmasi asamasinda cekirdekleri de kurmus iseniz bu dizinde 'linux' isminde ve eski cekirdegin kaynak kodlarini kapsayan bir alt dizin goreceksiniz. Genellikle her kullanicinin yaptigi, bu dizinin ismini o an calisan cekirdegin surumune gore ile degistirmektir. Cekirdek surumunu bulmak icin ise 'uname -r' komutunu kullanabilirsiniz. $ uname -r 2.0.23 Bu komuttan cekirdegin 2.0.23 surumu oldugunu anlayabiliriz. Cekirdek kaynak kodlarinin bulundugu dizinin ismine de , ornegin linux-2.0.23 verilebilir. compclub:/usr/src# mv linux linux-2.0.23 Cekirdek kodunu iceren paketi acmadan once /usr/src dizinine kopyalayin, ve acmadan once bu dizinde 'linux' isimli bir dizinin olmadigina emin olun. Simdi /usr/src icinde iken (tum kaynak kodunun bu dizinde oldugunu farzederek) arsivlenmis kodu 'tar' komutu yardimiyla acalim. compclub:/usr/src# tar -zxf linux-x.y.z.tar.gz Komutun isletimi bitince 'linux' dizini olusur. ilk defa derleme islemi yapacaksaniz asagidaki komutlari sirasiyla yazin. compclub:/usr/src# cd /usr/include compclub:/usr/include# rm -rf asm linux scsi compclub:/usr/include# ln -s /usr/src/linux/include/asm-i386 asm compclub:/usr/include# ln -s /usr/src/linux/include/linux linux compclub:/usr/include# ln -s /usr/src/linux/include/scsi scsi compclub:/usr/include# cd /usr/src/linux compclub:/usr/src/linux# make mrproper 3.3 Cekirdek konfigurasyonu /usr/src/linux dizini altinda iken 'make config' yazin. Bu komut, bir konfigurasyon dosyasi yaratmak amaciyla sorular sorar. Bu islemler yapilirken bash'e ihtiyac duyuldugundan, /bin/bash dosyasinin varligindan emin olun. Karsiniza cikan sorulara 'y' (evet) veya 'n' (hayir) ile cevap vermeniz gerekir. Bazi aygit suruculerde 'm' secenegi de olabilir. Bunun anlami, sistem o programi 'modul' olarak derleyecek ve cekirdege dahil etmeyecek demektir. Kullanici derleme asamasindan sonra istedigi zaman bu modulu cekirdege dahil edebilir, isini bitirdikten sonra da cikarabilir. 2.0.x ve daha yukari surumlerde '?' tusuna basmakla daha ayrintili bilgi alinabilir. 3.3.1 Matematik islemci emulasyonu (Kernel math emulation) Kullandiginiz makinanin islemcisi yardimci matematik islemcisine sahip degilse (486SX, 386SX veya daha dusuk makinalar) bu secenege evet cevabini vermelisiniz. Matematik islemcisi olan bir makinada evet cevabini verilmesi durumunda da yardimci islemci kullanilir ve emulator hesaba katilmaz. Nasil olursa olsun, cekirdegi gereksiz programlar ve modullerle sisirmemelidir. 3.3.2 Normal (MFM/RLL) disk ve IDE disk/cdrom destegi (Normal (MFM/RLL) disk and IDE disk/cdrom support) Hemen herkesin kullandigi PC sabit disklerinin standart olmasi sebebiyle bu secenege 'y' cevabi verilebilir. Daha ileride SCSI sabit disk ve cdrom destegini de soracaktir. Ardindan gelecek olan 'old disks-only' ve 'new IDE' suruculerinnden birini secerken, aralarindaki farkin ilkinde tek arabirim uzerinden iki adet diski desteklemesi, digerinde ise ikinci arabirim ile birlikte IDE/ATAPI cdrom'lari desteklemesidir. Yeni teknolojili surucu, ilkinden daha fazla yer kaplar (4 Mb fazla). 3.3.3 Ag destegi (Networking support) Makinaniz herhangi bir ag uzerinde ise (Internet gibi), veya Internet'e baglanmak icin SLIP, PPP, term gibi programlari kullanmak istiyorsaniz bu bolume 'y' cevabi vermelisiniz. Fakat, ag uzerinde olmasaniz bile her gecen gun yeni yeni uygulama programlarinin ve paketlerin ag destegine ihtiyaci oldugunu dusunursek (X Window gibi) bu bolumu 'y' cevabi vermeniz sart gorunuyor. 3.3.4 En fazla 16Mb hafiza (Limit Memory to low 16Mb) Bazi hatali 386 DMA denetleyicileri hafizanin 16Mb'dan yuksek bolumlerine ulasamazlar. Cok nadir gorulen bu durum makinanizda varsa bu secenegi 'y' ile gecin. 3.3.5 System V IPC (System V IPC) IPC (Interprocess Communication - Sureclerarasi iletisim) 'nin en iyi tanimi Perl kitaplarinda bulunabilir. Bazi Perl programlari ve oyunlar (DOOM gibi) bu secenek olmadan calisamazlar. Bu durumda ne yaptiginizi iyi bilmiyorsaniz bu secenege 'n' - hayir cevabi vermeyin. 3.3.6 islemci tipi (386, 486, Pentium, PPro) Burada, cekirdeginizi hangi tur makina icin derliyorsaniz, o makinanin tipini giriniz. 3.3.7 SCSI destegi (SCSI Support) SCSI aygitlariniz var ise bu secenek icin 'evet' deyin. Daha sonra da karsiniza gelecek SCSI aygitlar arasindan size uygun olanlari alin. Daha genis bilgi icin SCSI-NASIL belgesi yol gosterebilir. 3.3.8 Ag karti destegi (Network Device Support) Aga baglanmak icin bir kart kullanacaksaniz, veya SLIP, PPP baglantilari, ya da paralel iskele uzerinden yapacaginiz her turlu islemler icin bu secenegi isaretleyin. Ardindan ekrana gelen kart tiplerinden ve protokollerden uygun olanlarini secin. 3.3.9 Dosya sistemleri (Filesystems) Burada, asagidaki dosya sistemlerinden kullanmak istediklerinizi secebilirsiniz. · minix : Yeni dagitimlar , artik tarih olmaya baslayan bu dosya sistemini desteklememekteler. Bazi kurtarma disketleri yaratmak icin daha yaygin, fakat daha az kararli olan ext2 dosya sistemine tercih edilirler. · Genisletilmis dosya sistemi - Extended file system (ext) : Bu da artik kullanimi olmayan bir dosya sistemi. Destegini ekleyip eklememek size kalmis. · Genisletilmis dosya sistemi-2 - Second extended file system (ext2) : Linux'un kullandigi en onemli dosya sistemi. Alinmasi gerekir. · xiafs : Artik kullanilmiyor. · msdos : Sabit diskinizde DOS bolumu varsa, ya da DOS disketi kullanmak istiyorsaniz, alin. · umsdos : Ms-dos dosya sistemine bazi yenilikler (uzun dosya isimleri gibi) getirilerek olusturulan bir teknoloji. Msdos destegi almadiysaniz buna da gerek yok. · /proc : Bu aslinda gercek bir dosya sistemi degil, cekirdek ve surecler arasinda arabirim gorevi yapan bir yapidir. Pek cok program bu dosya sistemini kullanir (ps , free gibi). 'y' cevabini vermelisiniz. · NFS : Linux makinaniz bir ag uzerinde kurulu iken ag uzerindeki diger makinalarin dosya sistemlerini kullanabilmenizi saglar. · ISO9660 : CD-ROM surucunuzu Linux altinda kullanabilmek 'y' cevabi verin. · OS/2 HPFS : Linux -henuz- OS/2 dosya sistemlerine yazamiyor. Bu destegi almak icin 'y' cevabi verin · System V : Bir UN*X surumu olan System V makinalarinin dosya sistemleri uzerinde calisabilmeyi saglar. 3.3.9.1 Hangi dosya sistemlerine ihtiyacim olacagini nasil anlarim ? "Mount" komutu yardimiyla, o an sisteminizde kullanilan dosya sistemleri ve sabit disk bolumlendirmeleri hakkinda bilgi sahibi olusunuz : compclub# mount /dev/hda2 on / type ext2 (defaults,rw) /dev/hda4 on /home type ext2 (defaults) /dev/hda3 on /dos type msdos (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults) Her satirdaki "type" sozcugunun yanindaki kelime, karsilik gelen sabit disk parcasindaki dosya sistemini gosterir. Bilgisayar Toplulugu makinasinda bulunan sabit diski uzerindeki / ve /home dizini 'ext2', /proc dizini 'proc' ve /dos dizini ise 'msdos' dosya sistemidir. Bunlarin disinda /mnt dizini altina bir disket surucu vardir. Halihazirdaki cekirdegin destekledigi dosya sistemlerini gormek icin su komutu kullanabilirsiniz: compclub:~$ cat /proc/filesystems ext2 minix msdos vfat nodev proc nodev nfs nodev smbfs nodev ncpfs 3.3.10 Karakter aygitlari (Character devices) Bu bolumde yazici, fare ve bazi teyp yedekleme suruculeri gibi karakter aygitlari icin suruculeri ekleyebilirsiniz. 3.3.11 Ses karti Linux, genis bir yelpazede ses kartlarini da destekliyor. Linux'un ses kapasitesini duyabilmek icin bu destegi ekleyin. Daha fazla bilgi Ses-NASIL belgesi altinda bulunabilir. NOT : Yukarida tum konfigurasyon secenekleri isaretlenmemistir, zira surekli gelisme ve degisiklikler gosterirler. 3.3.12 Cekirdek islemleri (Kernel Hacking) Cekirdekten dogan hatalarin bulunmasini kolaylastiran bu secenek, programcilara yonelik. Cekirdegin kararliligini azaltabilir. Secim size kalmis. Tum bu islemlerin ardindan 'make config' komutunun gorevi bitmis olur. Makefile dosyasina bir goz atin, degistirmeyi dusundugunuz bolumler varsa uzerinde dusunun. 4. Cekirdegin derlenmesi 4.1 Temizlik Fazla dosyalari temizlemek, gerekli olan dosyalarin da yerinde olup olmadigini kontrol etmek icin , sirasiyla compclub:~# make dep compclub:~# make clean yazin. Ardindan tum nesne dosyalari ve eski surumden kalan dosyalar silinecektir. Bu adimi es gecmeyin. 4.2 Cekirdegin derlenmesi Temizlik isleminden sonra, compclub:~# make zImage , veya compclub:~# make zdisk yazin. ilk secenekte cekirdek derlenip arch/i386/boot dizini altina 'zImage' adi altinda atilacaktir. Atilmadan once yerden kazanmak icin sikistirilir. Diger durumda ise yeni cekirdek sabit disk yerine A: disket surucusune yazilir. Disket uzerine yazmanin bir avantaji, kararli olmayan ve sistemi acmayan cekirdek ile karsilasilmasi halinde, sistemi sabit disk uzerindeki eski cekirdekten acabilme imkani birakmasidir. Cekirdegin sabit diskten yanlislikla silinmesi durumunda da disketten kopyalama sansi da verir. 'make oldconfig' komutu , onceden derlenmis cekirdegin konfigurasyon dosyasini okur ve derlemeyi bu dosyayi baz alarak yapar. Eski bir cekirdeginiz ve bunun karsiligi olan konfigurasyon dosyaniz yoksa, sozkonusu komutu yazmayin. 4.3 Cekirdegin kurulmasi LILO (Linux Loader - Linux Yukleyici), bilgisayarin acilisi aninda cekirdek ile ilgili duzenlemeleri okur, buna gore hangi cekirdekten acmasi gerektigini anlar. Konfigurasyon dosyasi biraz karmasik olmasina ragmen kullanim asamasinda buyuk yararlar saglar. /etc/lilo.conf dosyasinin icinde gerekli olan kurulum bilgileri vardir. Bu dosyanin bir bolum asagida goruluyor. image = /vmlinuz label = Linux root = /dev/hda1 ... 'image =' ibaresi kurulu olan cekirdege isaret eder. Cogu kullanici bu kisma 'vmlinuz' yazar. 'label =' bolumunde hangi isletim sistemi veya cekirdek surumunun acilista kullanilacagi yazilir. Hemen altindaki 'root' bolumunde ise 'label =' kisminda secilen isletim sisteminin hiyerarsik yapida en ust dizin yapisi yazilir. Eski cekirdegin bir yedegini alin ve yeni derlediginiz cekirdegi 'image =' satirinda belirtilen yere kopyalayin. compclub:~# cp zImage /vmlinuz Simdi LILO programini calistirin. Komut satirinda 'lilo' yazmak yeterlidir. compclub:~# lilo Added linux * Added dos LILO ve konfigurasyonu hakkinda , asagidaki adresten daha fazla bilgi alinabilir. ftp.metu.edu.tr:/pub/linux/sunsite/docs/howto/mini/LILO Yeni bir cekirdegi derledikten sonra LILO uzerinden ekleme yapmak ve acilis aninda kullanmak icin /etc/lilo.conf dosyasindaki image = /vmlinuz label = Linux root = /dev/hda1 ... satirlarinin kopyasini cikarin, 'image' , 'label' ve 'root' yerine sirasiyla yeni derlenen cekirdegin sabit disk uzerindeki yerini, ismini ve linux isletim sisteminizin kok dizinini yazin. Bunlara ek olarak, acilis aninda bekleme saglamak ve secim yapabilmek icin konfigurasyon dosyasinin basina 'delay = xxx' ekleyebilirsiniz. xxx sayisi, gecikme zamanini saniyenin onda biri olarak verilir. Bu sayede acilis aninda , ornegin 'shift' tusuna basilarak istenen cekirdegin ismi (label = satirinda yazilan isim) secilir ve calistirilir. 5. Cekirdegin yamanmasi (patch) 5.1 Yama uygulanmasi Cekirdegin her yeni surumuyle birlikte bir onceki surumunun yamasi da gelir. Yamayi uygulamak, tum cekirdegin tekrar derlenmesinden daha kolaydir. Ornek olarak, elinizde 2.0.10 cekirdegi var ve ftp adresinde 2.0.11 surumu cikmis. Halihazirdaki cekirdegi 2.0.11 surumune yukseltelim: Yamayi once /usr/src dizinine kopyalayin. Bu dizin altinda iken compclub:/usr/src# zcat patch-2.0.11.gz | patch -p0 , veya compclub:/usr/src# patch -p0 < patch-2.0.11 (eger sikistirilmis degilse) yazin. Bu komutun ardindan satirlar ekrandan kaymaya baslayacak ve yama islemi tamamlanacaktir. Satirlar bazen o kadar hizli kayar ki neler yazdigini bile goremeyebilirsiniz. Yamanin basarili bir sekilde tamamlandigindan emin olmak amaciyla, /usr/src/linux dizini altinda .rej uzantili dosyalara bakin. compclub:/usr/src# find . -name '*.rej' -print Komut, .rej uzantili dosyalar bulunursa yama islemi tamamlanamamis demektir. Eger yama islemi tamamlanirsa, sirasiyla compclub:/usr/src# make clean compclub:/usr/src# make config compclub:/usr/src# make dep komutlarini yazin. Bu komutlarla ilgili detayli bilgi 4. konunun basinda anlatilmistir. 'patch' komutunun alabildigi bazi secenekler vardir. 'patch -s' komutu olusabilecek tum hata mesajlarini ekrana yazar. Diger yama secenekleri 'man patch' yazarak gorulebilir. Yama uygulanan bir cekirdegi eski haline getirmek icin 'patch -R' komutunu kullanin. Birkac yamanin ardindan, .orig uzantili dosyalar etrafta dolasmaya baslar. Bu dosyalar gereksizdir, buyuk yer kapladiklari icin ise silinmeleri gerekir. Asagidaki komut yardimiyla /usr/src/linux dizini altinda .orig uzantili dosyalari silebilirsiniz. find . -name '*.orig' -exec rm -f {} ';' 5.2 Diger yamalar Standart olmayan ve Slackware ile dagitilmayan bazi yamalarin standart yamalarla cakismasi olasiligi buyuktur. Eger programiniz calismazsa kaynak programin uzerinde oynamaniz gerekebilir. Bu nedenle yamanin calistigindan emin olun. Daha once yama uzerinde deneyimi olan birisinden yardim isteyin veya cekirdeginizi yedekleyin. 6. Diger paketler Cekirdegin, kaynak kodunda ayrintili olarak aciklanmayan, buna ragmen onemli oldugunu dusundugum bazi onemli ozellikleri burada aciklanmistir. 6.1. Klavye (kbd) Linux konsolunun ozelligi sonucu, font degisikligi, klavye tuslarinin yeniden tanimlanmasi, video ekran modunun degistirilmesi gibi bazi ozellikler bu isletim sistemi altinda kolayca yapilabilmektedir. Hemen her dil icin font ve klavye tuslari tanimi destegi bulunmaktadir. 6.2 Linux yardimci programlari (util-linux) Rik Faith (faith@cs.unc.edu) , Linux yardimci programlarindan olusan buyuk bir paketi Internet uzerine koydu. Halen Nicolai Langfeldt (util-linux@math.uio.no) tarafindan duzenlenen ve guncellenen bu paketin icinde setterm, rdev ve ctrlaltdel gibi, cekirdek ile ilgili programlar bulunuyor. Fakat paketin once dusunup sonra kurulmasi gerekiyor , kullanici sonradan ciddi problemlere yol acabilecek sorunlarla karsi karsiya gelebiliyor. Bu paketi kurmadan once iki kez dusunun. 6.3 Sabit disk secenekleri (hdparm) Diger paketlere benzer sekilde bu paket de onceden cekirdek yamasi yapisindaydi. Ardindan standart cekirdegin icine alinarak her surumde dagitilmaya baslandi. Fakat hemen sabit diskin optimizasyonu icin kullanilan programlar ayri olarak dagitilmaya baslandi. 6.4 Standart fare - gpm (general purpose mouse) Bu program gorsel ekranda (virtual console) dosya kesip yapistirmanizi saglayan fareyi surer. 7. Bazi tuzaklar 7.1 make clean Eger rutin bir cekirdek guncellemesinden sonra yeni cekirdeginiz gercekten garip seyler yapiyorsa, buyuk ihtimalle yeni cekirdeginizi derlemeden once "make clean" komutunu kullanmayi unutmussunuzdur. Belirtiler sisteminizin sik sik cokmesinden garip G/C hatalarina veya dusuk performansa kadar hersey olabilir. "make dep" komutunu calistirdiginizdan da emin olun. 7.2 Buyuk veya yavas cekirdekler Eger cekirdeginiz cok fazla hafiza harciyorsa, cok buyukse, ve/veya yeni 786DX6/440 makinanizda bile derlenmesi sonsuza kadar suruyorsa, buyuk ihtimalle ayarlanmis bir cok gereksiz parca (aygit suruculeri, dosyasistemleri, vb.) vardir. Eger bu parcalari kullanmiyorsaniz, onlari ayarlamayin, cunku hafiza harcayacaktir. Buyuk cekirdeklerin en belirgin ozelligi surekli hafizadan diske ve diskten hafizaya takas yapmalaridir; eger diskiniz cok fazla ses yapiyorsa ve kapandiginda bir jetin inisine benzer ses cikaran eski Fujitsu Eagle'lardan degilse, cekirdek ayarlarinizi gozden gecirin. Cekirdeginizin ne kadar hafiza kullandigini makinanizin toplam hafizasindan /proc/meminfo dosyasindaki "total mem" degerini cikararak veya "free" komutunun ciktisindan ogrenebilirsiniz. Ayrica "dmesg" komutunu kullanarak (veya cekidek log dosyasina bakarak) da bu degere ulasabilirsiniz. Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data) seklinde bir satir goreceksiniz. Benim 386'im (daha az ozellikle ayarlanmis) sunu soyluyor. Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data) 7.3 Cekirdek derlenmiyor Eger cekirdek derlenmiyorsa, yama basarisiz olmus veya kaynak kod bir sekilde bozulmus olabilir. Derleyicinizin surumu dogru olmayabilir veya bozulmus da olabilir (ornegin, "include" dosyalari hatalidir). README dosyasinda anlatilan sembolik baglantilar in dogru kurulduguna emin olun. Genelde, eger standart bir cekidek derlenmiyorsa, sistemle ilgili ciddi bir sorun vardir ve bazi uygulamalarin (tools) yeniden yuklenmesi gerekli olabilir. Belkide bir 1.2.x cekirdegini ELF derleyiciyle (gcc 2.6.3 veya ustu) derliyorsunuzdur. Eger derleme sirasinda bir suru "... undefined" mesaji aliyorsaniz, sizin probleminiz bu olabilir. Bircok durumda bunu duzeltmek cok kolaydir. Su satirlari arch/i386/ Makefile dosyasinin basina ekleyin: AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include Daha sonra yeniden "make dep" ve "make zImage" komutlarini calistirin. Cok nadir durumlarda, gcc donanim problemlerinden dolayi cokebilir. Hata mesaji "xxx exited with signal 15" benzeri birsey olacaktir ve genellikle gizemli gozukecektir. Eger problemle karsilasirsaniz once gcc'yi yeniden kurmayi deneyin. Sadece eger cekir dek dissal cache kapatildiginda, hafiza azaltildiginda vb. durumlarda duzgun derleniyorsa kuskulanmalisiniz. 7.4 Cekirdegin yeni surumu acilis yapmiyor LILO'yu calistirmadiniz veya LILO duzgun ayarlanmamis. Bir seferinde soruna sebep olan ayar dosyasindaki bir problemdi; "boot=/dev/hda" yerine "boot=/dev/hda1" diyordu (ilk basta sikici olabilir, ama calisan bir ayar dosyasiz olduktan sonra, onu degistirmeniz gerekmez.). { You did not run LILO, or it is not configured correctly. One thing that ``got'' me once was a problem in the config file; it said `boot= /dev/hda1' instead of `boot = /dev/hda' (This can be really annoying at first, but once you have a working config file, you shouldn't need to change it.). } 7.5 LILO'yu calistirmayi unuttunuz, veya sistem hic acilmiyor Bu durumda yapacaginiz en iyi sey floppy diskten acilis yapmak ve daha sonra acilis yapabilen baska bir floppy hazirlamaktir (mesela "make zimage" isinizi gorur). Kok (/) dosyasisteminizin nerede oldugunu ve turunu (ornegin second extended, miniz) bilme niz gerekecek. Asagidaki ornekte ayrica /usr/src/linux kaynak agacinin hangi dosyasistemi uzerinde oldugunu, dosyasisteminin turunu ve nereye bindirildigini bilmeniz gerekecek. izleyen ornekte, root /dev/hda1, ve normalde /usr 'a bindirilmis olan /usr/src/linux 'u tutan dosyasistemi de /dev/hda3. Her ikiside second extended dosyasistemi. /usr/src/linux/arch/i386/boot da yer alan, calisan cekirdek goruntusu ise zImage. Mantik su; eger calisan bir zImage varsa, bunu yeni floppy icin kullanmak mumkundur. Daha iyi veya kotu calisabilecek (sisteminizin kurulumuna bagli olarak) baska bir alternatife ornekten sonra deginecegiz. Oncelikle bir boot/root disk ikilisinden veya kurtarma diskiden acilis yapin ve calisan cekirdek goruntusunun bulundugu dosya sistemini bindirin. # mkdir /mnt # mount -t ext2 /dev/hda3 /mnt Eger mkdir size dizinin zaten var oldugunu soylerse buna aldirmayin. Simdi cekirdek goruntusunun bulundugu dizine gecin. # /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot Formatlanmis bir disk'i "A:" surucusune yerlestirin (boot veya root diskini degil!), cekirdek goruntusunu disk'e aktarin, ve kok dosyasisteminize gore ayarlayin: cd /mnt/src/linux/arch/i386/boot dd if=zImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1 / dizinine gecin ve normal /usr dosyasistemini "umount" edin: cd / umount /mnt Artik sisteminizi bu floppy'den normal olarak yeniden acabilirsiniz. Yeniden acilis yaptiktan sonra lilo'yu calistirmayi (veya yanlis yaptiginiz neyse onu) unutmayin! Yukarida bahsedildigi gibi baska bir genel alternatif var. Eger / de calisan bir cekirdek goruntunuz (ornegin /vmlinuz) varsa onu boot disk olarak kullanabilirsiniz. Yukaridaki kosullarin oldugunu ve cekirdek goruntusunun /vmlinuz oldugunu varsayarsak, s adece yukaridaki ornekte su degisiklikleri yapin: /dev/hda3 'u /dev/hda1 (/ dosyasistemi) ile, /mnt/src/linux 'u /mnt ile, ve if=/zImage 'i de if=/vmlinuz ile degistirin. /mnt/src/linux 'un cikarimiyla ilgili not gozardi edilebilir. LILO'yu buyuk suruculerle (1024 silindirden fazla) kullanmak sorunlara yol acabilir. Bu konuda yardim icin bkz. LILO mini-NASIL. 7.6 `warning: bdflush not running' Bu vahim bir durum olabilir. 1.0 'dan sonraki cekirdek surumlerinde (20 Nisan 1994 civari) periyodik olarak dosyasistemi bufferlarini bosaltan "update" isimli program guncellestirildi/degistirildi. "bdflush" kaynak kodunu alin (cekirdek kaynak kodunu aldiginiz yerde olmalidir) ve kurun (bunu yaparken sisteminizi eski cekirdek altinda calistirmak isteyebilirsiniz). Kendisini "update" olarak kuracak ve yeniden acilistan sonra yeni kernel artik sikayet etmeyecektir. 7.7 undefinded symbols hakkinda birseyler soyluyor ve derlenmiyor Buyuk ihtimalle bir ELF derleyiciniz (gcc 2.6.3 ve sonrasi) ve 1.2.x (veya oncesi) cekirdek kodunuz var. Bunu duzeltmenin olagan yolu su uc satiri arch/i386/Makefile dosyasinin basina eklemektir: AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include Bu a.out kutuphaneleri ile 1.2.x cekirdegi derleyecektir. 7.8 IDE/ATAPI CD-ROM surucum calismiyor Sasirtici sekilde cok kisi belki de ters gidebilecek birkac seyden dolayi ATAPI suruculerini calistiramiyor. Eger CD-ROM surucunuz belirli bir IDE arabirim uzerindeki tek aygitsa, jumper ayarlari "master" ve "single" olmalidir. Create Labs ses kartlarinin uzerinde IDE arabirimi bulunur. Ancak bu bazi ilginc problemler yol aciyor. Soyle ki bazi anakartlarda yerlestirilmis bir IDE arabirimi varken, diger bircogunda iki IDE arabirimi bulunur (genelde IRQ15 'de). Bu durumda genel egilim soundblaster arabirimini ucuncu bir IDE kapisi (port) yapmaktir (genelde IRQ11). Ancak bu, ucuncu IDE arabirimini desteklemeyen linux surumleri 1.2.x 'de problemlere yol acar. Bu problemi gidermek icin birkac seceneginiz var. Eger ikinci bir IDE kapiniz varsa ve onu kullanmiyorsaniz veya uzerinde iki surucu yoksa, ATAPI surucunuzu ses kartindan alarak ikinci arabirime yerlestirin. Daha sonra ses karti uzerindeki arabirimi iptal edebilirsiniz. Eger ikinci bir arabiriminiz yoksa, ses kartiniz uzerindeki arabirimin (ses kartinin ses bolumunun degil) jumper ayarlarini IRQ15, ikinci arabirim, olarak degistirin. Bu ise yaramali. Eger herhangi bir nedenle surucunuz "ucuncu" arabirimde olmadiysa, veya baska problemler varsa, bir 1.3.x cekirdegi (ornegin 1.3.57) alin ve /drivers/block/README.ide dosyasini okuyun. Orada cok daha fazla bilgi bulabilirsiniz. 7.9 obsolete routing requests hakkinda garip seyler soyluyor Route programinin ve route manipulation yapan diger programlarin yeni surumlerini alin. /usr/include/linux/route.h dosyasi degistirildi. 7.10 Firewalling 1.2.0 'da calismiyor En az 1.2.1 surumune yukseltme yapin. 7.11 ``Not a compressed kernel Image file'' /usr/src/linux dizininde yaratilan vmlinux dosyasini boot goruntusu olarak kullanmayin; dogru dosya [..]/arch/i386/boot/zImage dosyasidir. 7.12 1.3.x 'e yukselttikten sonra console terminal ile problemler /etc/termcap dizininde bulunan console termcap girisindeki "dumb" keilmesini "linux" ile degistirin. Ayrica bir terminfo tanimi de yapmaniz gerekebilir. 7.13 Cekirdek yukseltmesinden sonra derleme yapmiyor Linux cekirdek kaynak kodunda, /usr/include dizinindeki standart include dosyalari (sonu .h ile biten) tarafindan kullanilan bir takim include dosyalari bulunur. tipik olarak su sekilde kulanilirlar (xyzzy.h/usr/include/linux dizininde bir dosya olmak uzere): # include Normalde, cekidek kaynak kodunun include/linux dizinine /usr/include isimli bir baglanti vardir. Eger bu link yoksa veya yanlis bir yer gosteriyorsa, bircok sey derlenmiyecektir. Eger cekirdek kaynak kodunuzun diskinizde cok fazla yer kapladigini dusunup onu sildiyseniz, bu problem olabilir. Baska bir problem yaratabilecek sey dosya izinleridir ; eger root'unuzun diger kullanicilarin dosyalari gormesine izin vermeyen bir umask'i varsa, ve cekirdek kaynak kodunu p (dosya modlarini koru) parametresi olmadan actiysaniz, o kullanicilar C derleyicisini kullanamayacaktir. Chmod komutu bu durumu duzeltmek icin kullanilabilir. Ancak include dosyalarini yeniden acmak daha kolay olacaktir. Bunu, baslangicta tum kaynak kodu acarken kullandiginiz komuta su parametreleri ekleyerek yapabilirsiniz: # tar zxvpf linux.x.y.z.tar.gz linux/include Not: "make config" eger yoksa /usr/src/linux baglantisini yeniden yaratacaktir. 8. 2.0.x surumune yukseltme hakkinda notlar Cekirdek surumu 2.0.x cekirdek kurulumuna birkac degisiklik getirdi. Surum 2.0.x'e yukseltirken ihtiyaciniz olacak bilgiler 2.0.x kaynak agacinda bulunan Document/Changes dosyasinda bulunmaktadir. Buyuk ihtimalle gcc, libc ve SysVInit gibi birkac anahtar paketi yukseltmeniz ve bazi sistem dosyalarinda degisiklikler yapmaniz gerekebilir, dolayisiyla bu dosyayi okuyun. 9. Moduller Yuklenebilir cekirdek modulleri hafiza kullanimini azaltir ve ayar yapmayi kolaylastirir. Bu moduller dosyasistemlerini, ethernet kart suruculerini, teyp ve yazici suruculerini vb. icerecek sekilde genisliyor. 9.1 Modul yardimcilarini (utilities) yukleme Modul yardimcilari cekirdek kaynak kodunu aldiginiz yerde modules-x.y.z.tar.gz dosyasinda bulunabilir; su an kullandiginiz cekirdek surumune esit veya altinda olan en yuksek patchlevel x.y.z dosyasini alin. Dosyayi "tarr zxvf modules-x.y.z.tar.gz" komut uyla acin, yarattigi dizine gecin (modules-x.y.z), README dosyasini okuyun ve kurulum komutlarini uygulayin (genelde "make install" gibi kolay bir komuttur). Bu adimdan sonra,insmod, rmmod, ksyms, lsmod, genksyms, modprobe, ve depmod programlari /sbin diz inide kurulmus olmalidir. Eger istiyorsaniz, yardimci programlari insmod icindeki "hw" ornek surucusuyle deneyebilirsiniz; daha fazla bilgi altdizindeki INSTALL dosyasinda bulunabilir. insmod calisan cekirdege modulleri ekler. Moduller genellikle .o eklentilidir; yukarida bahsedilen ornek surucunun ismi drv_hello.o, dolayisiyla bu surucuyu eklemek icin girilmesi gereken komut "insmod drv_hello.o". Cekirdegin kullandigi modulleri gormek icin lsmod programini kullanin. Cikti suna benzer birsey olacaktir: # lsmod Module: #pages: Used by: drv_hello 1 Ciktinin anlami ise; "drv_hello" isimli modul bir sayfa (4K) hafiza kullaniyor ve baska bir cekirdek modulu ona bagimli degil. Bu modulu kaldirmak icin "rmmod drv_hello" komutunu kullanin. Burada dikkat edilmesi gereken husus rmmod programinin parametre olarak lsmod'un ciktisi olan modul ismini istemesidir, dosya ismini degil. Diger modul yardimcilarinin amaclari manual sayfalarinda bulunabilir. 9.2. Cekirdek ile dagitilan moduller Surum 1.2.2'den beri bircok dosyasistemi, bazi SCSI suruculer, bir takim ethernet adapter suruculeri ve benzeri bircok sey modul olarak yuklenebiliyor. Bunlari kullanmak icin, normal cekirdekte bunlari ayarlamadiginiza emin olun (make config sirasinda bu nlar hakkindaki sorulara y ile cevap vermeyin). Yeni bir cekirdek derleyin ve bununla yeniden acilis yapin. Daha sonra /usr/src/linux dizinine gecin ve "make modules" komutunu calistirin. Bu cekirdek ayarlarinda belirtmediginiz tum modulleri derleyecek ve bunlara baglantilari /usr/src/linux/modules dizinine yerlestirecektir. Modulleri dogrudan bu dizinden veya onlari x.y.z cekirdek surumu olmak uzere /lib/modules/x.y.z dizinine yerlestircecek "make modules_install" komutunu calistirarak kullanabilirsiniz. Moduller ozellikle dosyasistemlerinde yarali olabilir. Minix veya msdos dosyasistemlerini cok sik kullanmiyor olabilirsiniz. Bu durumda msdos disketini kullanmak icin once "insmod /usr/src/linux/modules/msdos.o" komutunu, isiniz bitince de "rmmod msdos" komutunu kullanmak normal isleyis sirasinda cekirdekte 50K hafiza tasarrufu yapmanizi saglar. Minix dosyasistemi icin kucuk bir not: "rescue" disklerinde kullanmak icin bunu herzaman dogrudan cekirdek icine ayarlamalisiniz. { A small note is in order for the minix filesystem: you should always configure it directly into the kernel for use in ``rescue'' disks. } 10. Diger ayar secenekleri Bu kisim ayarlar kisminda listelenmemis bazi secilmis cekirdek ayar secenekleri hakkinda bilgiler kapsamaktadir. Device suruculerinini buyuk kismi burada listelenmemistir. 10.1 Genel kurulum Normal floppy disk destegi - /drivers/block/README.fd dosyasini okumak isteyebilirsiniz; bu ozellikle IBM Thinkpad kullanicilari icin onemlidir. XT harddisk support - if you want to use that 8 bit XT controller collecting dust in the corner. PCI bios support - PCI desteginiz varsa, bunu secebilirsiniz. Dikkat etmeniz gereken bir husus var. Bazi eski PCI anakartlari bu secenekle kullanildiklari zaman sistemi kilitleyebilirler. Kernel support for ELF binaries - ELF yapisi program destegi artik iyice yerlesmis durumda. Alin. 10.2. Baglanti ve ag secenekleri Bunlar NET-2-NASIL dosyasinda detayli olarak anlatilmistir. 11. ipuclari 11.1 make veya patch komutlarinin ciktilarini gorme Bu iki komutun hata mesajlarini bir dosyaya yonlendirebilirsiniz. Oncelikle hangi kabuk altinda calistiginizi anlayin. # echo $SHELL Eger sh veya bash kullaniyorsaniz, # (komut) 2>&1 | tee (cikti dosyasi) yardimiyla "komut" un ciktisini "cikti dosyasi" na yazabilirsiniz. Csh veya tcsh ile, # (command) |& tee (output file) 11.2 Alternatif cekirdek kurmak Eskisine dokunmadan yeni bir cekirdegi kurmak mumkundur. Diger UNIX benzeri isletim sistemlerinin aksine, LILO bir cekirdegi disk uzerindeki herhangi bir bolumden kurabilir. LILO konfigurasyon dosyasinin sonuna image = /usr/src/linux/arch/i386/zImage label = yeni_cekirdek gibi iki satir eklenirse, eski cekirdege dokunmadan yeni cekirdegi kullanarak sistem acilabilir. LILO'ya , yeni bir cekirdegi yuklemesini soylemek icin en iyi yol sistem acilis esnasinda "shift" tusuna basmaktir. Bu esnada ekranda "LILO" yazacak ve siz yeni cekirdegin ismini yazdiktan sonra sistem bunu kullanarak acilacaktir. Ayni anda birkac cekirdek kaynak kodunu sistemde bulundurmayi dusunuyorsaniz, izlenecek en guvenilir yol, her birine /usr/src/linux-x.y.z ismini vermektir (x.y.z halihazirdaki cekirdek surumunu gosterir). Ardindan sembolik bir baglanti yardimiyla istediginiz kaynak dizinini secebilirsiniz, ornegin # ln -sf linux-1.2.2 /usr/src/linux komutu, linux-1.2.2 dizinini aktif hale getirir. Artik kaynak dosyalarinin bulundugu dizin linux-1.2.2 dizinidir. 11.3 Yeni cekirdekler hakkinda Russell Nelson (nelson@crynwr.com) yeni cekirdek surumleri hakkinda kisa bilgiler verior. Bu belgelere , ftp://ftp.emlist.com/pub/kchanges veya http://www.crynwr.com/kchanges adreslerinden erisilebilir.