KaCaK Site Yöneticisi
Mesaj Sayısı : 476 Yaş : 31 Nerden : Sivasspor Kayıt tarihi : 04/06/07
| Konu: Linux çekirdeğini derlemek.. 7. seri Ve SoN Çarş. Haz. 13, 2007 8:30 pm | |
| Loadlin'in kullanılması Eğer, Linux sisteminizi yüklemek için 'loadlin' kullanıyorsanız, bu kullanışlı programın yerini (C:\loadlin) zaten biliryorsunuzdur. 'loadlin' programı hemen hemen her Linux dağıtıcısının birinci CD'sindeki 'dosutils' dizininde yeralmaktadır. Diskinizin 'C:\loadlin' dizinine yeni çekirdeği de, belkide farklı bir isimde, kopyalamanız gerekmektedir. Windows98'i DOS ortamında ilk başlatırken, Linux'a geçmek için aşağıdaki komutu vermeniz yeterli olur: loadlin bzImage Çekirdeğinizi kendiniz derlediyseniz, root bölmesinin yeri gibi çeşitli yapılandırma bilgileri normal şartlar altında çekirdekte yeralmaktadır. Bu yüzden, yukarıda çalıştırmış olduğunuz komut, Linux sisteminizi sorunsuz başlatmaya yeterli olacaktır. DOS ortamında 'loadlin | more' komutunu çalıştırırsanız, yardım sayfasını, içinde İnternet'teki 'loadlin'in 'nasıl' sayfasına olan bağlantı ile birlikte elde edersiniz. Eğer, 'lilo' ile uğraşmaktan çekiniyorsanız, yeni derlemiş olduğunuz çekirdeği 'loadlin' ile kolayca deneyebilrisiniz. 'loadlin' ile 'bzImage' 1.44MB'lik bir diskete sığmaktadır. EMM386 destekli DOS ortamında sisteminizi açtıktan sonra,'loadlin' ve 'bzImage'in bulunduğu disketten Linux'unuzu açmayı denemede sorun çıkabilecek hiçbir şey olamaz. Tabii bunun için DOS disketine sahip olmanız gerekmektedir. SuSE ve ALSA ses sürücüleri SuSE standart ALSA'yı (Advanced Linux Sound Architecture-Gelişmiş Linux Ses Mimarisi) kullanmaktadır. Bu aygıt sürücüleri, çekirdekte yeralan OSS projesindekilerden daha kalitelidir. Linux altında ses konusunda ciddi iseniz, mutlaka ALSA aygıt sürücülerini kullanmalısınız. Bu aygıt sürücüleri çekirdek (eski) kaynak kodlarına dahil olmadıkları için, ayrıca derlenip yüklenmeleri gerekmektedir. ALSA'nın kaynak kodları SuSE'nin 'zq' kısmında bulunmaktadır. Bunun ne anlama geldiğini bilmiyorsanız okumaya devam edin. ALSA'yı YaST veya YaST2 aracılıyla yüklerseniz, kaynak kodlar '/usr/src/packages/' dizininde yeralacaktır. ALSA aygıt sürücülerini derlemek ve yüklemek için aşağıdakileri yapınız: rpm -bb /usr/src/packages/SPECS/alsa.spec cd /usr/src/packages/BUILD/alsa/alsa-driver-<version number>/ ./configure make install İlk satırdaki komut, kaynak kodu ile aygıt sürücülerini '/usr/src/packages/BUILD/' dizinine yüklemektedir. Bunun yanısıra, ALSA kütüphaneleri ile çeşitli programlar, rpm dosyaları olarak derlenmektedir. Ancak, ne yazık ki ALSA aygıt sürücüleri benimsenmiş değer olarak doğrudan derlenmemektedir. Onları, son iki komutla kendiniz derleyip yüklemeniz gerekecektir. './configure' komutu, sisteminizdeki gerekli yapılandırma bilgileri ile dosyaları bulmakta ve yapılandırma dosyasına yerleştirmektedir. 'make install' komutu ise, aygıt sürücülerini, derleyerek çekirdeğin kullanımı için '/lib/modules/2.4.6/misc/ dizinine yüklemektedir. Şimdi, SuSE'yi başlattığınızda istenilen aygıt sürücüsü otomatik olarak yüklenmektedir. Kabul etmeliyim ki buradaki işlemler biraz karışık. Ama sizin, yeni çekirdeğinize ses desteği vermek için, gerekli aygıt sürücülerini elde etmek ve daha kısa yoldan yüklemek için ne yapmanız gerektiğini çok iyi bildiğinizi varsayıyorum. Eğer, SuSE kullanmıyor veya ALSA aygıt sürücülerinin daha yeni sürümlerini kullanmak isterseniz, aygıt sürücüleri ve ilgili kütüphaneler ile programları http://www.alsa-project.org adresinden elde edebilirsiniz. Sitenin başlangıç sayfasında, ALSA ile ilgili en son haberleri de alabilirsiniz. Sözgelimi, Şubat 2002 itibarıyla, ALSA aygıt sürücülerinin 2.5 sürümlü çekirdeğin kaynak kodları ağacına ekleneceği haberi. Bunun yanısıra sanaldoku yöresinin sayfasında, indirebileceğiniz çeşitli dosya ve programlara olan bağlantılar bulabilirsiniz. Aşağıda, ALSA aygıt sürücülerinin nasıl derleneceğini göstereceğim. Benzer işlemler, kütüphaneler ve diğer programlar için de yapılabilir. Belli bir dizinde, sözgelimi '/usr/local/', içinde aygıt sürücülerini içeren paketi açın. '/usr/local/alsa-driver-<sürüm-numarası>/' dizine geçip, yukarıdaki './configure' ile başlayan komutları çalıştırın. Eğer, Linux dağıtımınız standart olarak ALSA aygıt sürücülerini kullanmıyorsa, bazı ek işlemler de yapmanız gerekebilir. Ne yazık ki, bu konu zaten oldukça uzun olan bu yazının kapsamına dahil değildir. Ama yine de, ALSA ile ilgili daha fazla bilgi ALSA FAQ (SSS-Sıkça Sorulan Sorular) den bulunabilir. Bunları da indirmeniz mümkündür. Dizüstü bilgisayar (pcmcia) desteği Pcmcia detseği 2.4.x çekirdeklerinden itibaren standarttır. Buna karşın, PCMCIA Nasıl belgesi, PCMCIA'nın çekirdek sürümlerindekileri mümkünse kullanılmamasını yazmaktadır. Şimdilik pcmcia kaynak kodları, kabuk programları ve aygıt sürücüleri dahil olmak üzere, 2.0, 2.2 ve 2.4 sürümlü çekirdeklerin hepsiyle çalışabilmektedir. Ancak, kendi deneyimlerime göre, çekirdeği yeniden derlediğimde, pcmcia aygıt sürücüleri çalışmaz hale gelmekte ve onların da yeniden derlenmesi gerekmektedir. Buna, kullandığınız Linux dağıtımına göre iki çözüm vardır. Çözümlerden ilki, dağıtımızla birlikte gelen kaynak kodlarını kullanmak. Kaynak kodlarını yükleme ve derleme sonucunda elde edeceğiniz rpm dosyasını, herzaman yüklemeniz mümkündür. Diğer çözüm ise, en son pcmcia sürümünü http://sourceforge.net/projects/pcmcia-cs/ adresinden indirip, aşağıdaki gibi, paketi açıp, derleyebilir ve yükleyebilirsiniz: cp /etc/rc.d/pcmcia /etc/rc.d/pcmcia.SuSE cp ~/pcmcia-cs-3.1.?.tar.gz /usr/src cd /usr/src tar -zxf ./pcmcia-cs-3.1.?.tar.gz make config make all make install cp /etc/rc.d/pcmcia.SuSE /etc/rc.d/pcmcia İlk ve son satırdaki komutları SuSE'ye özgü bir sorunu çözmeye yönelktir. SuSE'nin pcmcia betik programı olan '/etc/rc.d/pcmcia', 'make install' komutu tarafından üzerine yazılmaktadır. Bu da SuSE'de çalışmamaktadır. Daha önceden saklamış olduğumuz betik programını 'make install' komutunu çalıştırdıktan sonra, dosyanın üzerine kopyalamakla sorun çözülmektedir. Eğer, yanlışıkla SuSE'nin asıl betik programının üzerine kopylama yaptıysanız, pcmcia paketini 'a1'den tekrar yüklemeniz, betiğin yedeğini almanız, 'make install' komutunu çalıştrmanız ve en sonunda sakladığınız asıl betik programını kopyalamanız gerekecektir. SuSE'de pcmcia desteği için olan rpm paketini aşağıdaki gibi elde edebilirsiniz: rpm -i /cdrom/suse/zq1/pcmcia-3.1.?.spm cd /usr/src/packages rpm -bb ./SPECS/pcmcia-3.1.?.spec cd /RPMS/i386/ rpm -i --force ./pcmcia-3.1.?.rpm SuSEconfig İlk satırdaki komutu çalıştırırken, altıncı veya yedinci CD, yani pcmcia aygıt sürücülerinin bulunduğu CD'yi /cdrom dizinine bağlamış olduğunuzu ve pcmcia aygıt sürücülerinin kendilerini yüklemek isteyeceğinizi varsaydım. 'rpm -i' komutu pcmcia kaynak kodlarını yüklemekte, 'rpm -bb' de pcmcia rpm dosyasını derlemektedir. '--force' seçeneğini kullanmak zorundasınız, yoksa rpm programı, haklı olarak, pcmcia'nın zaten yüklü olduğunu söyleyerek, aygıt sürücülerinin yeni derlenmiş halini yüklemeyecektir. Her zaman olduğu gibi, SuSE altında elle rpm paketi yükledikten sonra yapılandırma değişikliklerin hayata geçirilmesi için SuSEconfig (Küçük ve büyük harf yazımına dikkat edin!) programını çalıştırmanız gerekir. YaST veya YaST2 yükleme programları kullanılıyorsa, SuSEconfig programı, yeni paketlerin yüklenmesinden veya değiştirlmesinden sonra, otomatik olarak çalıştırmaktadır. Dolayısıyla, onu sizin terkardan çalıştırmanız gerekmez. Pcmcia detseğini düzgün bir şekilde kullanabilmek için, çekirdeği yapılandırırken ağ desteğini ('network support') seçip, ağ kartlarıyla ilgili diğer aygıt sürücülerinin hiçbirisini seçmemeniz gerekir. 11. resimde de sözü edildiği gibi, İnternet kullanmak istiyorsanız, TCP/IP desteğini de seçmeniz gerekecektir. 'modutils' in kullanılması Daha önce de sözünü ettiğimiz gibi, modülleri yönetmek için çekirdek 'modutils' denilen küçük programları kullanmaktadır. Bu prgramlar aşağıdakiler insmod (modül yüklemek için), rmmod (modül kaldırmak) ve lsmod (kullanılmakta olan tüm modülleri göstermektedir) gibi başkalarını da içermektedir. 'man lsmod' gibi komutlarla, çeşitli programlarının nasıl çalıştığını öğrenebilirsiniz. Ama ben burada bu konuya girmeyeceğim. 'modutils'in derlenmesi ve yüklenmesi kolaydır. Yapmanız gereken: cd /usr/src cp ~/modutils-2.4.6.tar.bz2 . ( assuming that the file sits in your ) ( home directory, '~' ) bzip2 -d modutils-2.4.6.tar.bz2 ( unzip: this may take a while ) tar -xvf modutils-2.4.6.tar cd modutils-2.4.6 ( go to the directory in which 'modutils' have ) ( just been unpacked ) ./configure (find system-specific configurations ) make ( compile 'modutils': since it is small the compilation can be ) ( surprisingly fast ) make install (install 'modutils' in the directory '/sbin/' ) dir. 'modutils'in çalışır duruma getirilmesi için gereken herşey bu kadardır. Buradaki 'modutils'in sürüm numarası çekirdek sürüm numarası ile aynı çıktı, ancak bunun herzaman böyle olmayacağı konusunda sizin dikkatinizi çekmek istiyorum. Çekirdek düzgün çalışmakta mıdır? Yeni çekirdeğiniz, yapılandırıldı, derlendi ve belkide lilo aracılığı ile yüklendi. Bilgisayarınızı yeniden başlattınız ve kendinize şu soruyu soruyorsunuz: Çekirdeğin düzgün çalıştığını nasıl öğrenebilirim? Çalışmayan donanımı, kullanmayı denemeye kalkıştığınızda hemen fark edeceksiniz. Bunun dışında, sistemin açılışı sırasında bir sürü yararlı mesajı henüz grafik ekrana geçmeden çekirdek ekranda görüntülemektedir. Bu mesajlar bağlantı noktları, kesmeler vs. gibi çeşitli yapılandırma bildirimleri olabileceği gibi, çekirdek tarafından aygıt sürücüleri modül veya çekirdeğin parçası olarak ilklendirilirken (initialization) oluşan sorunlar gibi hatalar da olabilir. Bu mesajlara dikkat etmekle, oluşabilecek çeşitli sorunlar öncesinde bir uyarı elde etmeniz olasıdır. SuSE'de mesajları izlemek kolaydır: Her mesajdan sonra ekranın sağ tarafına, herşey yolunda ise yeşil renkte 'done' (tamam) ve sorun oluşmuşsa kırmızı renkle 'failed' (olmadı veya sorun oluştu) yazısı yazılmaktadır. Yazılar sistemin açılışı sırasında oldukça hızlı geçtikleri için, giriş ekranı üzerinde bunları görebilmek olasıdır. Eğer, otomatik olarak grafik giriş ekranına giriyorsanız, metin ekranına veya giriş ekranına geçmek için '<Ctrl>+<Alt>+F1' tuş kombinasyonunu kullanabilirsiniz. Böylece, eğer bu mesajlar sizin için önemliyse, nerelerde sorunlar oluşabileceği konusunda bir ipucu elde etmiş olursunuz. 'Cannot find module' (Modül bulunamıyor) veya 'Cannot load module' (Modül yüklenemiyor) gibi mesajlar, gereksinim duyacağınız bazı kısımları çekirdeğe eklemediğiniz anlamına gelmektedir. Çekirdek yapılandırmasını düzeltmekle ve çekirdeği yeniden derlemekle genelde sorun çözülmektedir. Eğer, sadece bazı modülleri unuttuysanız, 'make modules' ve 'make modules_install' komutlarını çalıştırmanız yeterli olacaktır. Çekirdeği yeniden derlemek zorunda kalsanız da sorun olmaz. Çünkü çekirdeğin büyük bir kısmı derlenmiş durumda ve sadece eksik olan kısımların eklenmesi ve derlenmesi gerekecektir. Sonuç olarak, çekirdeği sıfırdan yapılandırıp derlemektense, bazı ufak değişiklikler yapmak daha hızlı ve kolaydır. Ondan sonra, keyifle bir fincan kahve içebilirsiniz. Çekirdeğin sistem açılış mesajlarını incelemenin bir başka yolu 'dmesg' komutunu kullanmaktan geçer. Bu komutu çalıştırmakla, daha sistemin açılışı sırasında geçip giden mesajlar tekrar ekrana gelmektedir. 'dmesg > temp' komutuyla ise, mesajlar temp dosyasına yönlendirilmekte ve bu dosyayı istediğiniz bir metin işlemcisiyle veya 'more temp' ile rahatça görebilirsiniz. Sonuç Bu rehber yazı elinizde olduğunda çekirdek ile ilgli deneylerinizi oldukça duyarlı bir şekilde yapabilirsiniz. Umarım, çekirdek ile oynamaya başlamak için olan çıtanın seviyesini yetrince alçaltabilmişimdir. Zamanınızın büyük bölümünü, hangi yapılandırmanın çekirdeğiniz için en uygunu olduğunu yapmakla geçireceksiniz. Derleme sırasında 'freecell' oyununu oynayabilir veya başka bilgisayar işleriyle uğraşabilirsiniz. Eğer, hala sorunlarla karşılaşıyor ve ne yapak gerektiğini bilmiyorsanız, konuyla ilgili soru sorabileceğiniz birçok e-ileti listesi ve sanaldoku yöresi vardır. Bunlar sadece İngilizce dilinde olmayıp birçok başka dilde de vardır. Kabul edilebilir kısa zamanda da, sorununuzu çözecek cevaplar elde etmeye başlarsınız. Bu tür yerleri bulmanın en iyi yolu arama motorlarıdır.
| |
|