http://kernel.org'dan 2.6.13.1 veya daha yeni bir sürümü indirdiğinizi,
/usr/src dizinine kaydettiğinizi ve paketi açtığınızı varsayıyorum.
Çekirdeğin kaynak kodlarının /usr/src/linux-2.6.13.1 dizininde olduğunu varsayıyorum. Bu çekirdek, eski başlık ve asm dosyalarında bir sürü uyarı veriyor. Ben iki defa derleme yaptım, bu yüzden; çünkü, ileride sistemde paket derlemek zorunda kalırsam, sorunlarla boğuşmak istemem. Siz bu işlemi baştan yapın ve tek derleme ile işi bitirin. Yapacağınız, basit bir işlem (root olarak):
/usr/src/linux-2.6.13.1/include/asm-i386 dizinideki her şeyi /usr/include/asm dizine kopyalayın.
/usr/include dizini altındaki linux dizinini içindekilerle birlikte silin. /usr/src/linux-2.6.13.1/include/linux dizinini /usr/include altına linux sembolik bağı ile bağlayın. Bu dizini kopyalamamalısınız, çünkü derleme işlemi bu dizinin içeriğini değiştiriyor. Bazı paketler kurulum sırasında çekirdeğin başlık dosyalarının kurulu çekirdeğin başlık dosyaları olmasına önem verirler ve bu dizindeki version.h ve modversion.h dosyasına bakarlar. Yalnız ben o kadar uğraşmama rağmen modversion.h oluşmadı. Bu yeni çekirdeğe özgü bir durum sanırım. (Bu noktada Debian'ın yapısını bozuyoruz ama listelerde sorulan ve yanıtı olmayan pek çok sorunun asıl kaynağı burası; ben çekirdeği hep böyle derlerim ama Debian'ın yapısını bozmak istemeyince iki derleme yapmak zorunda kaldım.)
Bu işlemi bitirdikten sonra /boot/config-2.6.8-2-386 dosyasını .config dosyası olarak /usr/src/linux-2.6.13.1 dizinine kopyalayın ve /usr/src/linux-2.6.13.1 dizinine girip komut satırına make menuconfig yazıp yapılandırmayı başlatın. Kopyaladığınız .config dosyası okunmuş olacağından sadece skystar2 için gereken modülleri ve bu sürüme özgü ek modülleri yapılandırmaya eklemek yetecek. Debian'ın eski çekirdeğinde skystar2 kartının modülleri sanırım ya yoktu (doğrusu bakmadım, yeniden derleyeceksem, çekirdeğin en yenisi derlerim) ya da bu kartı adamdan saymamışlar. Bu yüzden nasılsa .config ile eski yapılandırma etkin oluyor deyip bu adımı atlayıp geçmeyin.
Çekirdeğin Kconfig dosyasından bir alıntı (türkçe çevirisiyle):
config DVB_B2C2_FLEXCOP
tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
depends on DVB_CORE
select DVB_STV0299
select DVB_MT352
select DVB_MT312
select DVB_NXT2002
select DVB_STV0297
select DVB_BCM3510
help
B2C2 Inc. tarafından yapılmış sayısal TV alıcılırı için destek.
Technisats PCI kartları ve USB kutularına destek içerir.
Böyle bir aygıtınız varsa ve kullanmak istiyorsanız Y deyin.
config DVB_B2C2_FLEXCOP_PCI
tristate "Technisat/B2C2 Air/Sky/Cable2PC PCI"
depends on DVB_B2C2_FLEXCOP && PCI
help
Technisat/B2C2 tarafından yapılmış Air/Sky/CableStar2 PCI kartlar
için destek.
Böyle bir aygıtınız varsa ve kullanmak istiyorsanız Y deyin.
config DVB_B2C2_FLEXCOP_USB
tristate "Technisat/B2C2 Air/Sky/Cable2PC USB"
depends on DVB_B2C2_FLEXCOP && USB
help
Technisat/B2C2 tarafından yapılmış Air/Sky/CableStar2 USB1.1 kutular
için destek.
Böyle bir aygıtınız varsa ve kullanmak istiyorsanız Y deyin.
config DVB_B2C2_FLEXCOP_DEBUG
bool "Enable debug for the B2C2 FlexCop drivers"
depends on DVB_B2C2_FLEXCOP
help
Say Y if you want to enable the module option to control debug messages
of all B2C2 FlexCop drivers.
(Bu lazım değil)
Yapılandırmada,
Device Drivers
Multimedia Devices
Digital Video Broadcasting Devices
adımlarıyla ulaştığınız penceredeki ve alt bölümlerindeki tüm modülleri <M> olarak işaretleyin. Hepsi bu.
<exit>'leri seçerek yapılandırmadan çıkın, sonunda yapılandırmayı kaydedeyim mi diye soracak. Yes'i seçin.
Şimdi Debian paketimizi oluşturacağız:
| Not |
---|
Çekirdeğin başka paket yöneticileri için de desteği var. Geçerli make seçeneklerini görmek için make help yazın. Bu yeni çekirdekler de bir harika :-) Çekirdek derlemek hiç bu kadar kolay olmamıştı. |
Bu işlemin bitiminde, herşey yolunda gitmişse, /usr/src altında linux-2.6.13.1_2.6.13.1_i386.deb ya da benzer bir adla yeni bir dosya bulacaksınız. Bu paketi kuralım:
# dpkg -i linux-2.6.13.1_2.6.13.1_i386.deb
Yalnız, /boot dizinine baktığımda bu işlemin initrd dosyasını oluşturmamış olduğunu gördüm ve kendim oluşturdum:
# mkinitrd -o /boot/initrd.img-2.6.13.1 2.6.13.1
Daha bitmedi makineyi hemen yeniden başlatmayın. Grub'ın yeni çekirdekle açmasını sağlamamız lazım. /boot/grub/menu.lst dosyasını bir metin düzenleyici ile açın ve mevcut çekirdekler listesinin öncesine şu satırları ekleyin (grub menüsündeki ilk satırlar olmak üzere):
title Debian GNU/Linux, kernel 2.6.13.1 Default
root (hd1,0)
kernel /boot/vmlinuz-2.6.13.1 root=/dev/hdb1 ro
initrd /boot/initrd.img-2.6.13.1
savedefault
boot
title Debian GNU/Linux, kernel 2.6.13.1 Default (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.13.1 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.13.1
savedefault
boot
Benim Linux sistemim hdb1'de kurulu, siz (hd1,0) ve /dev/hdb1 yerine kendi sisteminizin kurulu olduğu disk bölümüyle ilgili değerleri yazın (İpucu: dosyadaki mevcut satırlara bakarak ne yazacağınıza karar verebilirsiniz.) Bir de dosyanın hemen hemen başlarında
diye bir satır olmalı, bu satırdaki değer 0 değilse 0 yapın. Dosyayı kaydedip çıkın ve komut satırına,
yazın. Tabii sizin grub'ınız ilk sabit diskin başındaysa bu geçerli, ikincideyse hd0 yerine hd1 yazmalısınız. Bu komut grub'ı açılış için güncelleyecek. Sistemi yeniden başlatmadan önce yapacak bir kaç işlem kaldı.
/usr/src/linux-2.6.13.1/Documentation/dvb dizinine girin ve şu komutu verin:
# perl get_dvb_firmware nxt2002
Bu komutu çalıştırabilmek için internete bağlı olmalısınız, çünkü betik, bir paket indirecek ve bu paketten bir dosya çıkarıp (SkyNETU.sys), bu dosyadan da kartın yerleşik olması gereken yazılımını (firmware) elde edecek.
İşlemin bitiminde dizinin içinde dvb-fe-nxt2002.fw adında yeni bir dosya bulacaksınız. Bu dosyayı /usr/lib/hotplug/firmware dizinine kopyalayın.
Eğer bir 3D ekran kartınız varsa (nvidia gibi) ve X için 3D sürücülerini kurmuşsanız, onları çekirdek değiştiği için kullanamayacaksınız. Synaptic'i açın ve daha önce kurduğunuz bu paketi sistemden kaldırmasını isteyin. Yok kendiniz kurmuşsanız (benim gibi) Synaptic'ten bazı xlib paketlerini yeniden kurmasını istemelisiniz. Synaptic'in geçmişinden bir alıntı:
Commit Log for Mon Sep 12 17:55:28 2005
Şu paketler yeniden kuruldu:
xlibmesa-dri (4.3.0.dfsg.1-14)
xlibmesa-gl (4.3.0.dfsg.1-14)
xlibmesa-gl-dev (4.3.0.dfsg.1-14)
xlibmesa-glu (4.3.0.dfsg.1-14)
xlibmesa-glu-dev (4.3.0.dfsg.1-14)
Ayrıca, /etc/X11/XF86Config-4 dosyasında evvelce yaptığınız değişiklikleri geri almalısınız. Bu işlem benim için,
satırını devreye sokmak ve
satırın iptal etmek, ayrıca,
satırını iptal edip
satırını devreye sokmak şeklinde oldu. Siz de benzer işlemleri yapmalısınız. Yoksa, X açılmayacaktır. Daha sonra (bu kurulum bittikten sonra) isterseniz, yeni çekirdeğinize göre ekran kartınızın yeni 3D sürücülerini kurarsınız.
Artık sistemi yeniden başlatmak için hazırız. Hemen yapın. Daha yapacak çok işimiz var.
Herşey yolunda gitmişse sistem her zamanki gibi açılacaktır. Bir bakın bakalım, modüllerimiz yüklenmiş mi?
# lsmod
...
b2c2_flexcop_pci 10648 0
b2c2_flexcop 31628 1 b2c2_flexcop_pci
dvb_core 84776 1 b2c2_flexcop
mt352 7044 1 b2c2_flexcop
bcm3510 11524 1 b2c2_flexcop
stv0299 11912 1 b2c2_flexcop
nxt2002 9988 1 b2c2_flexcop
firmware_class 11008 4 bttv,b2c2_flexcop,bcm3510,nxt2002
stv0297 9728 1 b2c2_flexcop
mt312 8708 1 b2c2_flexcop
...
i2c_core 22416 13 tuner,bttv,i2c_algo_bit,tveeprom,b2c2_flexcop,
mt352,bcm3510,stv0299,nxt2002,stv0297,mt312,via686a,i2c_sensor
...
Bütün listeyi buraya almadım. Bu listedekine benzer modülleri (satırların başındakiler) görüyorsanız, herşey yolunda demektir. Bu çıktıdan anlaşılacağı üzere bir bttv kartınız varsa, onu da gerekiyorsa, kullanmaya devam edebilirsiniz, tabii ki aynı anda değil. İki kart kardeş kardeş geçinip gidecektir :-)
Çekirdek kartımızı tanıdığına göre, onu kullanabileceğimiz uygulama paketlerini sisteme yükleyip kanalları izlemeye çalışalım.