Pazartesi, Kasım 28, 2005

Cuma günü tüm gün çekirdekle uğraştım

Cuma günü tüm gün IBM makinamın sorunu ile uğraştım. Google'da ararken bulduğum bir link beni baya heyecanlandırdı. Sorunla ilgili olarak, bu sorunu çözdüğünü söyleyenler vardı. Bu linkte: http://bugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=284477
Neyse, sitede de yazdığı gibi çekirdeği yeniden derlemek gerekiyormuş. Bu da bana ilk kez debian'da çekirdek derleme sorunu çıkardı. Gerçekten problemli iştir çekirdek derlemek. Bir sürü sorun çıkar çoğu zaman. Ama Debian'da onun da kolay olduğunu öğrendim. Gerçekten şaşırdım. Şimdi nasıl yaptığıma geçeyim;
Önce çekirdek kaynağını indirmek gerekiyor. Ben de sitede yazdığı gibi 2.6.8 çekirdeği kullanmaya karar verdiğim için 2.6.8 çekirdeğin paketlerini aradım;
#apt-cache search kernel-source

Bu sayede indirebileceğim kernel-source paketlerinin listesi çıktı karşıma tabi ki tam isimleri de. Listeden gözüme kestirdiğim; kernel-source-2.6.8 dosyasını da indirdim tabi ki hemen;
#apt-get install kernel-source-2.6.8

kernel-source paketi otomatik olarak, /usr/src altına kernel-source-2.6.8.tar.bz2 adında bir dosya indiriyor. Bu paketi de açtım;
#tar -jxvf kernel-source-2.6.8.tar.bz2

Bu sayede kernel-source-2.6.8 adında bir klasörüm oluştu. İşte çekirdek kodlarım. :)
Ayrıca, çekirdek kodlarımın sistemde olmasını istediği bazı paketler daha varmış; onları da apt-get ile kurdum hızlıca;
#apt-get install libncurses5-dev libdb3-dev libqt3-mt-dev tk8.4-dev xspecs
#apt-get install initrd-tools module-init-tools

Sonra bir sembolik link oluşturdum linux adında, az önceki kernel-source-2.6.8 klasörü yerine.
bunun için /usr/src altında;
#ln -s kernel-source-2.6.8 linux

Bu sayede artık #cd linux dediğimizde aslında kernel-source-2.6.8 klasörüne girebileceğim.
Şimdi asıl önemli kısma geldim; Sayfada gördüğüm ayarları çekirdeğe nasıl uygulayacağım. Ben her zamanki gibi make menuconfig altında görebileceğim sanmıştım ama orada göremedim bu şekilde ayarlar. Eyvah nerede yanlış yapıyorum derken olayı çözdüm; config dosyasını düzenlemem gerekiyormuş listedeki gibi.

#cp /boot/config-2.6.8-1-386 .config

ile /usr/src/linux altına benim kullandığım config dosyasını .config adıyla kopyaladım. Daha sonra debian tarzı çekirdek derlemenin esprisi de buymuş ki; bu .config dosyası içinde düzenleme yaptım verilen linkteki gibi. :) (Tabi ki vim ile o satırları düzelttim) Sonra da bu config dosyasını çekirdeğe tanıttım;
#make oldconfig

Bu biiir dedim. Daha sonra menuconfig ile menuden konfigurasyon yapılabiliyor.
#make menuconfig (bunun yerine xconfig de kullanılabilir tabi ama o zaman x kullanıcısı ile açmak gerekiyor yoksa debian'da yemiyor kosnolda root'ken make xconfig yazmayı.)

menüden de extra düzenleme yaptım. (aslında yapmadım da yapılabilir diyelim) Sıra geldi, çekirdeğin derlenmesine; dım dım dım dım :)
# make-kpkg clean
# make-kpkg kernel-image --append_to_version .25112005 --revision r1 --initrd

veeeeeeee sonuç; HATAAAAAAA :(
Bir sürü satırdan sonra şöyle bir ekran;

LD usr/built-in.o
CC arch/i386/kernel/process.o
{standard input}: Assembler messages:
{standard input}:861: Error: suffix or operands invalid for `mov'
{standard input}:862: Error: suffix or operands invalid for `mov'
{standard input}:1055: Error: suffix or operands invalid for `mov'
{standard input}:1056: Error: suffix or operands invalid for `mov'
{standard input}:1122: Error: suffix or operands invalid for `mov'
{standard input}:1123: Error: suffix or operands invalid for `mov'
{standard input}:1190: Error: suffix or operands invalid for `mov'
{standard input}:1191: Error: suffix or operands invalid for `mov'
{standard input}:1300: Error: suffix or operands invalid for `mov'
{standard input}:1312: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/i386/kernel/process.o] B d 1
make: *** [arch/i386/kernel] B d
#

Amaaann tanrım. Bu hata ne yaaaaa? Neyse biraz daha araştırma sonucu bu hatanın da çözümü meğer bir patch ileymiş. Demek ki önce çekirdeğe patch (yama) yapacağız. Peki dedim. Yamayı indirdim; Bu arada bahsi geçen yama bu: PATCH Bu yamanın inmesi de yetmiyor tabi; ki çekideği yamamak için; make oldconfig yaptıktan sonra;

# patch -p1

ile çekirdeği yamadım. Ardından yine sırayla; make menuconfig (lazımsa) ve make-kpkg komutları. Yaşasın devam ediyor. Az önce hata verdiği yeri geçti. Biraz beklemeli derken baktım amcanın bitirmeye niyeti yok. Bir çay kahve mail arası. Aradan 1 saat sonra falan HATASIZ bir şekilde çekirdeğim derlenmiş, yetmemiş kpkg sayesinde çekirdeğim kernel-source kernel-image-2.6.8.25112005_r1_i386.deb adında deb paketi yapılmıştı. (Bu ne büyük bir lüks ya) Kalan sadece .deb paketini dpkg ile kurmak. Bunu da tabi ki;
# dpkg -P kernel-image-2.6.8.25112005_r1_i386.deb

ile kurdum ve gruba bile ekledi yeni çekirdeği. Daha sonra temizlik kaldı geriye. Önce; oluşturduğum linux sembolik linkini kaldırdım.
Peki sonuç ne oldu? Cuma akşam çıkmadan önce makinamı yeni çekirdekle açtım. Ardından 2 gün açık kaldı. Pazartesi sabahı heyecanla gelip makinama baktım. Sorunsuz görünüyordu. Kullanıcı adı, şifre girdim. Hemen sonra X'de bazı sorunlar oldu. Belki de nvidia sürücülerini yüklemediğim için olabilir diyorum. Bir de o şekilde deneyeceğim. Ayrıca son deneme şeklimde grubtan ACPI=Off yaparak olacak. Bunu yaparsam herhalde makina sadece elle kapatılabilcek ama olsun deneyeceğim. Bu arada ne çok şey öğrendim ya... :) I love this game(=linux) :)
Bir de bu sorunu yaşayanlara en üstteki çözümü bulduğum sayfada yazan alternatif çözüm, bios update ama ben öncelikle çekirdekten veya linuxtan çözmek istiyorum.
Sonuçlar yine blogta.. :)

Çarşamba, Kasım 16, 2005

Open Office2.0'da Java ve Zemberek

Koray Hoca sayesinde ben çok şey öğreniyorum gerçekten. Hocam, bana ilk üniversite 4. sınıfta başladı birşeyler öğretmeye hala devam ediyor. Sağolsun. :)
Bugün openoffice 2.0'da java ile ilgili bir sorun yaşamış. Nasıl kurarız diye sordu. Ben başta yanlış anlayıp, firefox'a java nasıl eklenecek sandım önce oradan başladım sonra her ikisini de çözdüm. Hatta bu sayede uzun zamandır "kurup bir deneyeyim şu zembereği" diyordum, bahane ile kurmuş oldum. Şimdi nasıl yaptım ona geleyim;
Önce Firefox için Java eklentisi;
Aslında işe tabi ki javayı indirirek başlıyoruz. http://www.java.com dan java paketini indiriyoruz. Zaten Linux kullananlara doğrudan; bu sayfa açılacak. Buradan sanırım isteyenler rpm ile kolayca kurabilecek fakat benim gibi debian kullananlar da kolayca bin paketinden işini görecek. bin paketi indikten sonra, konsolda
$ sh jre-1_5_0_05-linux-i586.bin
komutu ile bu dosyayı açıyoruz. Zaten bu işlemi yapınca doğrudan bulunduğu klasöre jre1.5.0.05 diye bir klasör oluşturuyor. Sistemde herkesin kullanabilmesi için bu klasörü uygun bir konuma alabiliriz. Örneğin /usr/share gibi. Daha sonra Firefox için; home dizini altında .mozilla/plugins dizini içine libjavaplugin_oji.so dosyasının sembolik linkini ekliyoruz. Bunu da kolayca, şöyle yapabiliriz; önce .mozilla/plugins dizinine gider ($ cd /home/...(kullanıcı adı)... /.mozilla/plugins) orada:
$ ln -s /usr/share/jre1.5.0_05/plugin/i386/ns7/libjavaplugin_oji.so
yazarsak pluginler içinde libjavaplugin_oji.so dosyasının sembolik linki oluşur. Eğer çalışan Firefox varsa kapatıp açıldığında artık java eklentileri çalışacaktır. Test için;
http://www.java.com/en/download/help/testvm.jsp

Geleyim OpenOffice 2.0'a. Aslında o daha da kolaymış. :)
Araçlar menüsünde seçenekler içinde JAVA diye bir başlık var. Altında Java seçenekleri var tabiki. "Önceden yüklenmiş Java çalıştırma ortamları (jre)" kısmına az önce yüklediğimiz java klasörünü Ekle... diyerek gösteriyoruz. Zaten bu işlemi yapınca doğrudan ismini görüyoruz "Sun Microsystems In.c." falan diye. Böylece artık OpenOffice 2.0'ımız javayı tanıyor. Zemberek eklemek için de; Araçlar-seçeneklerden Yazım Yardımı seçiyoruz. Zemberek Yazım denetleyicisi seçip bir de open office'i kapatır açarsak artık canavar gibi zemberek ile yazım denetimi yapabiliyoruz... Aslında OpenOffice 2.0 Türkçe zaten zemberek eklentisi ile geliyormuş da haberimiz yok. :)
Bu arada www.serdaraytekin.com özel teşekkürler...

Pazartesi, Kasım 14, 2005

Ah IBM vah IBM :)

İ.T.Ü.'deki işime başladığım gün bana bir IBM Thinkcentre M42 verdiler. Tabi ki ilk günden formatlayıp Debian'ımı kurdum. Ayarladım falan derken, akşama makinamı da açık bıraktım. Geldiğimde, makina açık olmasına rağmen işlem yapmıyordu. Hayır yapıyordu, sadece o kadar yavaşlamıştı ki. Bir anlam veremedim. Kurulum sırasında net bağlantısında da bazı sorunlar vardı belki ondandır deyip bir daha kurayım sıcağı sıcağına dedim. Kaybım yoktu nasıl olsa. Ertesi günlerde de aynı sorunu çıkardı. Fakat sorun makina reboot edildiğinde geçiyordu. Demekki sorun o değilmiş dedim ve bu sefer donanıma sardırdım. (Debian'ıma toz kondurmuyorum ya :) ) RAM'i değiştirdim, olmadı, kasayı komple değiştirdim olmadı. Artık sorunun işletim sisteminden olduğuna karar verdim ve araştırmaya başladım. Google Amca bana bir çok sorun çıkarttı ki, meğer Debian'ın kullandığı çekirdekmiş sorun, veya ben öyle anladım. 2.6.8 çekirdek kullanıyordum, denemek için 2.6.12 kurdum fakat 2.6.12 çekirdek sadece 1-2 saat sonra aynı sorunu çıkardı. Araştırmaya devam ediyorum, bu sorunu çözeceğim eninde sonunda. Aslında çözümü yazacaktım direk ama zaman alabilcek gibi. Fırsat bulmuşken de ayrıntıyı yazayım da, sonra çözümü de belki bu başlığın altına atabilirim.

Perşembe, Kasım 10, 2005

GNU/Linux Güncesi

GNU/Linux'a başlayalı 3-4 yıl olmuş. Redhat ardından Fedora, derken maceralı bir Debian süreci. Bu süreç içinde bir çok takıldığım sorunları bazen arkadaşlarımın yardımıyla bazen de sevgili Google amca ile çözdüm. Bu sırada da şunu çok iyi anladım; "dökümantasyon şart". Hem kendim için -ki daha sonra aynı sorunla karşılaşınca daha hızlı çözebilmek ve hatırlamak için-, hem de benim gibi, sorun çözmek için google'a bakıp, çözüm arayanlar için. Nasıl ki başkalarının yazdıklarından faydalandıysam sıra bana da gelmeli artık.
Bu düşünce ile Linux güncemi ayırmaya karar verdim. Bundan böyle yaşadığım sorunlar, çözümleri (çözebilirsem tabi) bu güncede olacak. Yani sadece teknik bir günce bu. Umarım faydası olur