Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom Bar]
[Photo of the Author]
Serge Winitzki
İçerik:
Giriş
Bir Kuruluma Doğru İlk Adımlar
Bütün Yönleriyle Linux
Saga Görüntü Kartı
Türlülük Linux'un Tuzu Biberidir
Yeni Bir Çekirdeğin Derlenmesi
Bit'ler ve Parçalar ya da Bir Zil Nasıl Öttürülür
Çevireriş Ağiletişimlendirimi GNU Yolu
Ek: Donanım Gerçekleri
Kaynaklar

Fujitsu 635T İzerinde GNU-Linux

Çeviri: Salih Giray ve Yavuz Sert

[Ilustration]

Özet:

Bu yazı bir dizüstü bilgisayara özgürce dağıtılan GNU/Linux işletim sisteminin yeni sürümünün en baştan kurulmasının öyküsüdür. Bunun benzer olan masaüstü veya dizüstü bilgisayarlara linux kurmak isteyenler için ve belki de Linux dağıtımlarının geliştiricilerine faydalı olması için bilgi kaynağı olması istenmektedir. Açıklama oldukça teknik olduğundan okuyucuların Unix işletim sistemini bilen (veya yeterince öğrenme isteminde olan) kişilerden olması daha iyi olacaktır.


Giriş

Bu benim bir dizüstü bilgisayara ikinci kez GNU/Linux işletim sistemini kurmam. İlk denememde bir LapNote P150 kullandım ve gerekli kaynak buradadır. Slackware CDROM'undaki çeşitli NASILYAPILIR'lar gibi bilgileri Linux Kurulum Yolgöstereni sürüm 3.2 (Linux Installation Guide) ve Linux'ta DizÜstü Bilgisayarlar görsel sanalyöre sayfasından yararlandım. Aşağıdaki bütün bilgiler Fujitsu 635T üzerine Slackware 3.5 kurulumu için kendine özgü bir bakış sağlar. Belirli programlara Internet bağlantıları sağlanmamaktadır. Bunun nedeni gelecekte okuyucunun belirtilmiş görsel sanalyöreler üzerinden bu programları yerleştirebileceğinin varsayılmasıdır.

Kuruluma Doğru İlk Adımlar

E-gönderim aracılığıyla ikinci el bir Fujitsu 635T dizüstü bilgisayarı satın aldım. Beklediğim gibi bilgisayar "windows, vsürüm "95 OSR 2" işletim sistemi ile birlikte geldi. Windows'un kurulumu büyük olasılıkla, bana satılmadan, daha önceki sahibi silinip temiz bir yeniden kurulumla yapılmıştı. Ses kartı tanınmıyordu ve bütün PCMCIA sistemi sanki hiçbir yerde yokmuş gibi görünüyordu. Gerçek renk kipini (mode) destekleyip desteklemediğini şimdi anımsamıyorum. Kalıcı tekerdeki (Hard Disk) bölünümleri (partition) arasında tekere asılı kal bölünümü (suspend-to-disk partition) olmadığından tekere asılı kal bölünümü (suspend-to-disk) seçeneğini denemedim. Çünkü onun işlemeyeceğini, tekere asılı kal bölünüm'süz bölünüm yapısının zarar görebileceğinden korkuyordum. (Korkularım boşunaymış: tekere asılı kal seçeneğini etkinleştirmek istediğimde, BIOS tekere asılı kal bölünümünün olmadığını saptadı ve uyarı duyurumu yaptı).

Windows'u hemen silmekle işlemleri tehlikeye atmanın akılcı bir yaklaşım olmadığını biliyorum; Bu yüzden ilk önce birkaç şeyi alıp çıkarmaya gereksinimim vardı. İlk olarak Yazı Türü yazıcı sürücüsünü kurdum ve daha sonra kullanmak için Kontrol Paneli'ndeki bütün sistem ayarlarının yazıcıdan çıktısını aldım. Bu sözde işletim sisteminin belki de tek yararlı şeyi bu dosyadır, çünkü ana bilgisayar sistemi elyordamları (manuals) ile beraber gelmemektedir (kim olduğunu bildiğiniz, belâlı bilgisayar ile uğraştıran, satımcıya teşekkür etmiyorum). Bu işin kuralına göre bütün bu bilgiler donanım elyordamlarında bulunmak zorundadırlar; fakat bu günlerde Windows yüklenmesi pazarda bütün bu bilgilerin verilmesi ile eşdeğer tutulmaktadır. Aslında siz belki de bilgi çıkarımı yapabileceğiniz doğru kurulmuş bir Windows kopyası almışsınızdır.

Donanım bilgilerinin özetini diskette bir dosyaya yazdıktan sonra bilgisayarı yeniden başlattım ve BIOS ayarlama kipine girdim. BIOS hoş bir arayüze sahip olup port numaraları seri portların ve ses kartının IRQ numaraları, güç yönetimi, hatta paralel port kipleri (modes) gibi özelliklerin denetimine olanak sağlar.
Bu sözde işletim sistemiyle daha fazla uğraşmamaya karar verdim.
Ayrıca, PCMCIA'nın, CardBus ve PCIC uyumlu kipler olarak adlandırılan iki işlem kipi vardır; "Windows", "PCIC" kipindeki PCMCIA sistemini tanımakla birlikte "CardBus" kipindekini tanıyamıyordu. (Daha sonra farkına vardığım üzere, Linux kipi de eşit şekilde destekliyordu). Güç işletimi de Windows tarafından desteklenmiyordu ve düşürücü istasyonun elyordamının (manual) belirttiği Güç Düşürmeme düğmesi hiçbir yerde bulunmuyordu. Bundan sonra bu sözde işletim sistemi ile daha fazla ilgilenmemeye karar verdim. Ama yine de Linux işletim sistemini yüklemek için bir Linux açılış disketi oluşturmaya gereksinimim olduğundan dolayı onu silme zamanı değildi.

Linux açılış disketinin nasıl oluşturulacağını çözmek ilk adımdı. Slackware Linux 3.5 dağıtımını yöreyeçekmiş ve README, INSTALL gibi dosyaları elden geçirmiştim. Önerilen işlem basamaklarına göre açılış dosyalarını diskete yazmak için Slackware tarafından sağlanan "rawrite.exe" adlı DOS programını kullandım. Slackware CDROM'undaki "bootdsks.144" dizininde rawrite.exe bare.i a: buyruğu, en basit yalın (bare) çekirdek yapmak için ve rawrite.exe color.gz a: buyruğu da Slackware kurulumu için gerekli root disketini yapmak için kullanılır. Sonra bareamo.i başlangıç disketini de kullanabileceğimi çözdüm, çünkü dizüstü bilgisayar Gelişmiş Güç İşletimi (Advanced Power Management, APM) fonksiyonları kullanmaktaydı ve bunları ana kurulum sırasında bu yolu kullanarak devreye sokabilirdim. Örnek olarak kurulum işlemini, işlemin tam ortasında durdurabilir daha sonra yeniden başlatabilirdim. Ama en başında en basit çekirdek dışında birşey kullanmak istemedim. APM'yi desteklemeyen çekirdeğin kullanımı sonucunda, dizüstü bilgisayarı bir saat kadar bıraktığımda sorunla karşılaştım ve kendini otomatik olarak durdurduğunu gördüm. Tipik tepki seçkisiz (random) programların devam etmeyi reddetmesi ve işlemci (CPU) düzeyinde bir yazmaç tıpkıgösterimi ekleyek sıfırla bölme" hata duyurumu (error message) yapılmasıydı. APM uyumlu çekirdek kullanımı ile başladığımda bu çeşit donanımsal aksamalar ortadan kalktı.

Bütün Yönleriyle Linux

Bilgisayarı tekrar başlattım ve iki disketi kullanarak Linux sistemi açtım daha sonra ise geçişsözcüğü kullanmadan "root" kullanıcısı ile bilgisayara girdim. Sisteme girişde giriş buyrukimi (login prompt) bana Linux için bazı kalıcı teker bölünümleri oluşturmaya gereksinimim olduğunu ve daha sonra da kurulum programını çalıştırmam gerektiğini söyledi. Aynı mesaj bana bölünüm için fdisk ya da cfdisk kullanmamı söylüyor. fdisk'in kullanım için çok uygun olmadığını bildiğimden cfdisk'i denemye karar verdim ve bu kolay ve sezgisel metin arayüzü benim için hoş bir sürpriz oldu. 1.35 GB'lık FAT dosya sistemli tek bölünümlü kalıcı tekerimi sildim (Hoşçakal Windows) ve bir tane 64 MB'lık değiştokuş bölünümü (swap partition) ve 2 tane Linux (300MB ve 1GB) türü bölünüm oluşturdum. Küçük bölünümü sistem dosyaları için ve daha büyük bölünümü ise kullanıcı dosyaları ve uygulamalarını koyup daha sonra Linux'u yeniden kurmak istersem bu bilgilerin kaybolmaması için oluşturdum.

cfdisk ile işimi bitirdikten sonra kurulum programını çalıştırdım. Kurulumun ilk adımları oldukça açıktı, klavye tekrar seçilir, değiştokuş (swap) alanı oluşturulur ve kurulumdaki erek ve kaynak dosyalar seçilir. Kalıcı diskin küçük bölümünü root bölünümü (/) olarak ve daha büyük bölünümünü de /usr dizini olarak mount ettim. Karşılaştığım ilk hata kaynak dizini ile ilgiliydi. Gerçek bir Slackware CDROM'una sahip değildim ama buna rağmen bütün dosyaları alıp CDROM'a "windows" kullanarak yerleştirmiştim. Birkac kez denedim ama kurulum Slackware dagıtımı içeren dizin olarak verdiğimi dizin olarak tanımadı.
Bu sorunu çözmek için Ctrl-Alt-F2 tuşlarına bastım.

Sorun büyük-küçük harf ayırımı yapmayan DOS dosya sisteminde oluşturduğum bu dosyaların adları, harf ayırımı yapan Linux tarafından okunup tanınamıyordu. Örneğin DOS'ta README ile readme dosyaları aynı dosyanın adlarıyken Linux'ta 2 farklı dosyayı belirtir. Bu sorunu Ctrl-Alt-F2 tuşlarına basarak çözdüm. Bunu daha önce kullandığım Linux'tan biliyorum, Ctrl-Alt-F1'den F6'ya kadar kullanarak Linux'un sanal konsolları arasında yazı kipinde geçiş yapabiliyordum. Başka bir giriş ekranı ile karşılaştım ve yine root olarak geçişsözcük olarak girdim. İkinci bir konsola sahip olduğum için şükrediyorum: mount, cat ve ls gibi kullanışlı buyruklar buradan kullanılabiliyordu ve CD'yi buradan mount edebildim (CDROM sürücüsünün /dev/hdc'de olduğunu Slackware'ın açılışından biliyordum, bu yüzden şu buyrukları kullandım: mkdir /cdrom; mount /dev/hdc /cdrom), Slackware dosyalarını kalıcı tekerin bölünümlerinden birine kopyaladım ve sonra dosyaları noktalarıyla birlikte yeniden adlandırdım. (Diğer bir seçenek, kurulum dosyalarının girişinde ZIP sürümünü kullanmaktır ama bizim kullandığımız bare çekirdeği bunu desteklememekteydi, daha sonra Slackware ile gelen paralel port ZIP sürümünün benim makinemde çalışmadığını anladım, aşağıya bakınız) Bundan sonra kurulum programında Slackware'in desteklemesinden dolayı "dosyaları mount edilmiş dizinden al" seçeneğini seçtim. Çünkü diğer bir konsola geçtiğimde, CD'deki Slackware bilgi dosyaları, çeşitli NASILYAPILIR'ları ve Kurulum Yolgöstereni'ni kurulum ile aynı anda okuyabiliyordum. Bu bana çok kullanışlı göründü. Herhangi bir anda hangi dosya sisteminin mount edildiğini görebiliyor (cat /etc/mtab), eğer gerekliyse onları mount ya da umount edebiliyor ( mount -t ext2 /dev/hda3 /mnt/usr) ya da dosyaların yerlerinde değişiklikler yapabiliyordum. Bir paralel kabuk penceresine girebilir ve sistemde ne olaylar olduğunu görebilirdim. Tüm bu sözedilenler içinde bütünüyle yükleme yazılımına bağlı kalmadığımdan bu yükleme daha rahat hale gelmişti.

Sonraki adım kurulumda kullanacağım yazılım paketlerini seçmekti. Oyunlar, X sunucusu geliştirme paketi ve kaynakyazıları dışında CDROM'daki bütün paketleri kurdum. Bundan sonra kurulum programı kalıcı tekeri açılabilir yapmak için lilo açılış işletmenini kullandı. bareamp.i çekirdeğini kullandığımdan, otomatik lilo kurulumunu seçtim. İletişimağı biçimlendirilmesini atladım, font ayarlarını seçmedim, modemimin COM2'de olduğunu gösterdim, faremi PPS/2 uyumlu olarak seçtim ve zaman dilimini Amsterdam olarak belirledim. (Niçin o dev zaman dilimi listesinde PageDown tuşunu kullandığımda hızlı akış sağlanmıyor). En son olarak bilgisayarı yeniden başlattım ve başarılı olarak açıldı. Yine geçişsözcüğü kullanmadan root olarak girdim ve yaklaşık 53 BogoMips hesaplama gücü ile ayarlamaya hazırdım. Bu, BogoMips MİNİ-NASILYAPILIR'da açıklandığı gibi, yaklaşık 133 Mhz Pentium'a karşılık geliyordu.

Şimdiye kadar oluşan tek eksiklik paralel porta bağlı olan zip sürücüsünün tanınmamasıydı. Sürücü (ppa, parallel port uyumlandırıcısı (adaptör)) 0x278 portunda
Yeni sürücü olan Curtin sürüm 1.42 paralel portun herşeyini tanıyordu ve ECP paralel portuyla daha hızlı bir giriş kipi kullanmamı sağlıyordu.
paralel port girişi olmadığını önemle belirtti ( duyurumu anlamak zordu, modprobe ppa buyruğu hata duyurumunun en başında "init_module: aracı ya da kaynak uğraşta (busy)" gibi birşey söyledi). Bilgisayarı yeniden başlattım ve BIOS ayar ekranın açtım, paralel port 0x378 olarak ayarlanmıştı. İyi ama belki o 0x278 olarak istemişti? 0x278 olarak değiştirdim, emin olmak için basit çift yönlü paralel port kipine geçirdim ve yeniden açtım. Bu kez paralel port sürücüsü zip sürücüsünü 0x378 portunda bulamadığını söyledi. Bu kedi-fare oyununun başlangıcını gösteriyordu, niçin bunun en doğru port olduğunu söylememekte? Port zip sürücüsünün en son sürümünü derledikten sonra sorun ortadan kalktı (Konu ile ilgili bilgi için Linux Dizüstü Bilgisayarlar görsel sanalyöresi'ne konuk olun). Yeni sürücü olan "Curtin" sürüm 1.42, paralel portun herşeyini kendisi tanıyordu ve ECP paralel portuyla daha hızlı bir erişim kipi kullanmamı sağlıyordu.

lilo ayarlama dosyasını elle değiştirmeyi denedim, ayar dosyasını değiştirdikten sonra lilo buyruğunu çalıştırmayı genellikle unutuyordum. Bunun yerine unutkanlıktan arı olan liloconfig programını buldum.

Sonuç yorumları: Bazan kurulum fonksiyonlarının bazıları işlerini bitirince hata duyurumu verirler ama bu hata duyurumları sonraki ekran çıktığında hemen kaybolurlar. Ben bu hata duyurumlarını sabit tutarak yükleme işleminin başarılı olup olmadığını öğrenebilirim. Belki kabuk programlarının daha çok çalışması için daha çok işe gereksinim olacaktı, ama bu çok önemli değildi; hiç olmazsa buyrukların çıkışları yönlendirilebilir ve istendiğinde gösterilebilir. Merhaba Bay Volkerding, belki beni duyuyorsunuzdur.

Saga Video Kartı

İlk ana sorunumun X pencere sistemini kurmak, görüntü kartımla 800x600 çözünürlükteki LCD ekranımı çalıştırmak olacağını umuyordum. Ama etkin işlemler üzücü olmaktan uzaktı, basitçe dosdoğru çalışıyordu ve sadece gerçek renk kipinin üzerinde biraz oynanması gerekiyordu.

Slackware Linux dağıtımları XFree86 ile birlikte geliyor ve yüksek kalitedeki X sunucusu görüntü yongama (graphics chip) tam destek vereceğini söylüyordu. İlk önce Hızlandırılmış X'i denedikten sonra buna karşı karar aldım, çünkü XFree86 daha çok ayarlanabilir ve benim daha önce kullandığım ve daha az desteklenen bilgisayarımda daha çok deneyimim vardı. Xfree86'yı ayarlamak için iki seçeneğim vardı; X tabanlı ayar programı ve yazı tabanlı program. Faremin alt kısmı biraz yıpranmış ve hantal olduğundan yazı tabanlı ayarlamayı yeğledim (arayüzü oldukça kötü ama bu, gerçekten doğru). Sonra grafiksel ayarlamanın bu noktada bir şekilde çalışmayacağını buldum. Çünkü yazı kipi fare sürücüsü olan gpm kurmak üzere seçtiğim ve etkinleştirdiğim fare ile uyumsuzdu. gpm -k yardımı ile onu ortadan kaldırdım ama grafiksel kurulum gerçekten işe yarar değildi ve fareye gereksinim duyuyordu.

2 MB bellekli C&T 65550 grafik uyumlandırıcısı listede vardı ve bütün renk derinliklerindeki 800x600 çözünürlük kiplerini seçtim. Kurulumun ortasında X -probeonly'i çalıştırarak uygulanabilir vıdeo kiplerini araştırdım ama hata verdi, çünkü kurulumun bu noktası hakkında başlangıç dosyalarında yeterli bilgi yoktu. Bundan dolayı bu adımı atladım ve daha ileri sorunlara yöneldim. Monitör özelliklerinin sorunlarıyla ilgilenmedim (örneğin güçlendirme (refresh) frekanslarının yatay ve düşey değerleri gibi). Daha önceki deneyimimden bu bilginin başarılı ayarlama için ne zorunlu ne de yeterli olduğunu biliyorum. Sade bir şekilde "generiç multisync SVGA monitör"ü seçtim (Niçin dizüstü bilgisayarların ekranları listede yok).
Bu dosyada (XF86Config) ayarlama programı ile fazlalıkların tümü kendiliğinden seçilir.

Biçimlendirmeyle ilgili herşeyi bitirdikten sonra ana görüntü ayar dosyası olan /etc/X11/XF86Config'e baktım. Bu dosya, genellikle, biçimlendirme programının kendiliğinden yerleştirdiği fazlalıklarla doludur. Donanımla ilgili olan çok önemli bölüm oldukça bilinen KipSatırları (Modeline) kesimidir. Her bir KipSatırı açıklaması özel görüntü kipini, uygun ekran çözünürlüğünü, tazeleme frekanslarını ve bunun gibi bilgileri içerir. Her kip bir ada sahiptir ve etkin olan sunucu hangi noktasal renk derinliğinde hangi kiplerin bulundugunu söylediğinde (dosyanın Screen bölümünde) ayar dosyası dosya adlarına gönderim yapar. Eğer aynı adlı birden çok kip varsa, sunucu bunlardan yalnızca birini, tazeleme frekansı ve dolayısıyla görüntü kalitesi "en iyi" olanı kullanır. Benim daha önceki XFree86 ayarlama deneyimimden otomatik ayarlama ile onun yakalanabileceğini biliyordum. Yani o, 640x480 ya da 800x600 gibi, aynı çözünürlüğe ve adlara sahip özdeş birçok kipsatırını devreye sokmakta ve verilen monitör için "en iyi" kipi seçmek sunucuya bırakılmaktaydı. Ama kiplerin yalnızca bir kaçı, sözgelimi, 800x600'ü etkin olarak çalıştırabilir. Bu pratikte şöyle olur: sunucu en iyi kipi seçer, ama bazı nedenlerden dolayı bu çalışmazsa kullanıcı buna şaşırır. Daha iyi bir yol ise bu kipleri 800x600a, 800x600b ve bunun gibi farklı adlarla adlandırmak ve sunucunun bunların hepsini kullanmasını sağlamaktır. Kullanıcı Ctrl Alt + ve Ctrl Alt - tuşlarına basarak varolan kipler arasında dolaşabilir ve böylece en iyiyi seçmesi sağlanabilir.

Ben 800x600 dışındaki kiplerin hepsini sildim, onları yeniden adlandırdım, tümünü Screen bölümü içine yerleştirdim ve X pencere sistemini başlatacak olan startx buyruğunu verdim. Benim için en iyi olan kipsatırı aşağıdaki gibiydi:

# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600a" 40 800 840 968 1056 600 601 605 628 +hsync +vsync

Diğer biri benzer olan 56 Hz'deki olup aynı resim kalitesini vermekteydi. Yüksek çözünürlükte güzel bir resim alabiliyordum. Bununla birlikte pencere yöneticisi görülebilir değildi. Gerçek renk kipi de çalışmıyordu. ( Gerçek renk kipi startx -- -bpp 24 ile başlatılıyordu, kullandığım grafik yongasında dolayı gerçek 32 bit değil 24 bit, 24 bpp, oluyordu; X biçimlendiricisi Screen bölümünde 32 bit seçeneğini doğru olarak gözardı ediyordu ve her zaman renk derinliğini 8 bit olarak kullanıyordu) X'i yeniden yÖnlendirilmiş çıkışla (startx >& /tmp /startx-output) çalıştırdım ve sonuçlarını bir dosyada tuttum. Tersi durumda duyurumların çok hızlı bir biçimde kayarak ekranda görüntülenmesi nedeniyle, bu teknik X kurulum sorunlarına tanı koyabilmek için çok kullanılan bir yoldur.

Pencere işletmeninin sorunu, bazı nedenlerden dolayı DISPLAY değişkeninin ayarlanmamasından kaynaklanmaktaydı.

Pencere işletmeninin sorunu, bazı nedenlerden dolayı DISPLAY değişkeninin ayarlanmamasından kaynaklanmaktaydı. Bu çevre değişkeni tüm programların pencereleri nerelerde göstereceğimizi bilmemiz açısından önemlidir. Bunu startx ayar dosyasını inceleyerek anladım ve sorunu çözdüm.

Gerçek renkle ilgili sorun X'in gerçek renk kipinde "piksel saati çok yüksek oluyor" biçiminde yakınmasıydı. Görünüşe göre bu, piksel saatinde gerçek donanım sınırlandırmasıdır. Bazan gerçek renk kipinin elde edilmesinin olanaksız olduğunu düşündüm ama diğer insanların C&T uyumlandırıcıları için kullandıkları kipsatırlarını baktım (Bunları Dizüstü Bilgisayarlarda Linux görsel sanalyöresi'nde buldum) ve aşağıdaki düşük saat frekanslı kipsatırını keşfettim):

#800x600 @ 49.5 Hz vsync, 30 kHz hsync, yucky and flickery even on LCD
ModeLine "800x600b" 28.3 800 816 856 920 600 603 605 618

Bu kip çok düşük bir tazeleme oranı ve düşük resim kalitesine sahiptir; bunu devreye soktuğumda, ekran gözlerimi yaşartarak vızıltılı sesler çıkardı. LCD ekranlar CRT'den daha iyi resim kalitesi veriyordu ve çoğu kez kabul edilebilir görüntü 56 Hz düşey tazeleme oranındaydı. ( tipik 14 inch ekranlarda gözüme bir ağrı giriyordu). Ama bu kesinlikle yeterince iyi değildi. Bunu böyle yapacağımı bilmiyordum ama diğer değerleri değiştirmeden 28.3 yerine 35.1 yazarak saat frekansını arttırdığımda kip daha iyi çalıştı. O zaman saat frekansını eski kipsatırında alt sınır 35.4'le değiştirmeyi denedim ve çalıştı. Şu an bunu yazmak için onu (gerçek renk'te) kullanıyorum. Daha sonra, gerçek renk kipini benimsenmiş (default) hale getirmek için Xf86Config dosyasında Screen bölümüne Default Color Depth 24 satırını ekledim. Kesin renk derinliğini benimsenmiş olarak kullanıllır yapmanın bir yolunu anımsadım ama X elyordamlarında "DefaultColorDepth"i bulmam gerekiyordu. Çünkü X biçimlendirim yazımı benimsenmiş renk derinliği ile ilgili hiçbir örnek satır içermiyordu.

28.3 deneme kipini X sunucusu için kabul edilebilir yapmak amcıyla izin verilen monitör frekans değerlerini değiştirmek zorunda kaldım. Biçimlendirici bu değerleri yerleştirdi.

HorizSync 31.5 - 37.9
VertRefresh 50 - 90
ama o zaman yeni 28.3 kipinde başlatamadım çünkü frekanslar çok düşüktü. /tmp/startx-output dosyasını inceledim ve X'in izin verilmeyen frekans değerleri hakkında yakındığını buldum. Böylece, HorizSync'yi 31.5 yerine 30'a ve VertRefresh'i 50 yerine 48'e düşürdüm. Bununla birlikte, bu iki ayar da, özellikle alt sınırlar, o kadar önemli değildi. Çünkü gerçek saat değerleri kipsatırınca belirleniyordu. İlke olarak, bu ayarlar ekranın yüksek bir frekansta yanmasını önlemek için buradadırlar: X sunucusu bütün kipsatırlarının frekans sonuçlarını hesaplayacak ve verilen bölge dışındakileri dışlayacaktır. Ama uygulamada monitör yeteneklerinin kesin bir duyarlılıkla ölçülemeyeceğini buldum. X sunucusunun iyi kipleri kabul etmesini sağlamak için bu bölgeleri biraz değistirmeye gereksinim duydum.

İki son hamle vardı. X oturumundan yazı konsoluna geçip XF86Config dosyasına TextClockFreq 40 satırını ekleyerek frekansı yeniden düzelttim ve sanal konsolu erişilebilir olarak saklamak ve de DISPLAY çevre değişkenini ayarlamak içinstartx ayar dosyasını (/usr/X11R6 /bin/startx) yeniden düzenledim. (Bu değişkenler pencere işletmeni fvwm2 tarafından sözümona işletiliyordu ama hiç de öyle görünmüyor) Yazımın son bölümü artık aşağıdaki gibiydi:

export DISPLAY=":0.0"
exec xinit $clientargs -- $serverargs >& /tmp/xinit.out &

Yukarıdaki ikinci satır X konsolun bütün çıkış bilgilerini geçici dizindeki bir dosyaya yazar ve geri plandaki tüm X pencere işlemlerini yerleştirerek gerekli olduğunda kullanılmasını sağlar.

Türlülük Linux'un Tuzu Biberidir

Sistem çalıştı ama hep eğlence ile ilgili birşeyleri kaçırdığım izlenimi edinmiştim: son çıkan yarı-tecimsel dağıtımlardan ikisini, RedHat 5.1 ve SuSe 5.2'yi edindim. Bu ikisi kurulum ve ayarlamada rakip tanımıyordu ve ben bunların yerine bilgisayar bilgelerinin yeğlediği Slackware'i kullanıyorum. Artık bunların da tadını almak istiyorum.

Sistem çalıştı ama her zaman eğlence ile ilgili birşeyleri kaçırdığım izlenimi edinmiştim.

SuSE 5.2, açıklanan bütün yeteneklerine karşın benim dizüstü bilgisayarımı açamadı. Açılış disketlerini çalışmakta olan Slackware dağıtımında yaptım, bu işlemi dd if=/cdrom/disks/eide01 of=/dev/fd0 buyruğu ile yaptım. Belki bellek şatışması ya da ona benzer bir nedenle, IDE açılış disketlerinin hiçbiri (eide01'den eide03'e) "Linux Yükleniyor..." (3 nokta ile) duyurumundan öteye gidemedi. Daha sonra başkalarından duydum ki bazan açılış disketleri çalışmaz ve ondan sonra birisinin geçici bellek (memory cache) ile oynaması ya da başka bir kabuk seçmesi gerekirmiş. Ama 1) çekirdeklerin hiçbiri çalışmadı, BIOS ayar programı geçici bellek ile uğraşmama izin vermedi.
SuSE 5.2, açıklanan bütün yeteneklerine rağmen dizüstü bilgisayarımı açamadı.
2) Niçin Slackware disketleri iyi çalışırken boşuna uğraşıp canımı sıkayım. Artık Suse'den vazgeçtim. Ayrıca, ( İngilizce benim anadilim olmamasına rağmen) şunu söylemeleyim ki SuSe'nin (İngilizce) duyurumları Almanca'dan ivedilikle çevrilerek oluşturulmuş.

Daha önceki Linux deneyimim RedHat4.1 ile olduğundan ve RedHat5.2'nin daha güvenilir olduğunu duyduğumdan dolayı RedHat 5.2'e dönmeyi çok istiyordum. Kurulum yazıları gözlerimin önünde parladı, yalnızca bir tane başlangıç disketi yapmam beni kuruluma hemen coşkuyla sokacaktı. Paralel port zip sürücüsü kurulumda kullanmama rağmen /dev/sda'da başarılı olarak bulundu. Ama bu beni oldukça sıkıntıya soktu, örneğin fdisk "/dev/sda'ya girilemiyor" yakınması vererek başlatılamadı. Ayrıca kurulum sırasında yalnızca bir tane yalnız kabuğu çalıştıran paralel port, yazılı işlemleri görüntülemesi için ( Ctrl-Alt-F3 ve F4 ) iki tane hata duyurum konsolum vardı. O yazılara devam ettikçe ve bireysel paketlerin seçildiği noktaya geldikçe kurulum için ne kadar boş yer kaldığını görebiliyorum (Slackware'e benzemiyor). Şu ana kadar istenilen boş alan 400MB'ın altında olduğundan ve /usr bölünümünde bunun iki katından daha fazla yer olduğundan bu çok önemli değildi

Daha basit olan X ayarlarını yapmaya kalkıştım. Ayarlar sonucu oluşan /etc/X11/XF86Config dosyası benim donanımım için biraz uygunsuzdu. Çünkü ilgili 24bpp gerçek renk kipini atlıyordu; onun yerine 32bpp'i atlayabilirdi. Ancak ben hangi kiplerin çalıştıgını biliyordum ve o kadar da kötü değildi. Grafik uyumlandırıcım (C&T) dogru olarak kimliklendirilmişti. X'i sorunsuz olarak calıstırdım. (Tek hoşlanmadıgım şey X terminalin siyah üzerine beyaz yazı kullanması. Sonra, /redhat/contrib dizinindeki GhostScript 5.10'u yüklemek için ünlü rpm ("RedHat Paket İşletmeni", yazılım yükleme ve kaldırma için kullanılan program) programını kullanmaya calıstım. Bunun için sıkıcı olan tar zxf paket_adı.tgz yerine daha basit olan rpm -i paket_adı.rpm buyruğunu kullandım. rpm bana bu yükleme için "ghostscript-fonts-standard" gibi başka paketlere gereksinim duydugu duyurumunu verdi. Diğer ghostscript font paketleri etraftaydı ama o yoktu. Böyle birşeyle RedHat 4.2'de de karşılaşmıştım. rpm bir defasında bana (RedHat 4.2 altında) "/bin/sh paketinin sistemimde bulunmadığını söylemişti. /bin/sh kabuk demektir. Onsuz, tüm bu buyrukları nasıl verebilirdim? Anakart'ın varolmadığını söylediğini de duyabilecektim. Bunun tipik "rpm çılgınlığı" olduğunu düşünüp ondan vazgeçtim. Toplamda sistem, aynı bileşenleri içeren Slackware kurulumundan daha yavaş çalışıyordu.

..sistem biçimlendirme elaygıtı linuxconf, sistem yönetmeninin en iyi arkadaşı olarak gözükmektedir.

Sonra sistem biçimlendirme elaygıtı, sistem yoneticilerinin cok yakın yardımcısı linuxconf ile uğraştım. Ne yazık ki, çoğu bağlantısız nesnenin ayarın sistemimde nasıl değiştirileceğini anlayamıyordum. Bazı yerler açıkca görülebiliyordu ama diğerlerini çıkarabilmek neredeyse olanaksızdı. Benim için temel öncelik sistem biçimlendirimini anlamak ve buna göre sorunları gidermekti. RedHat ve onun "onu kolaylaştır" felsefesi'ndeki izleyicilerinin, kolay kullanımı, bilinen ayrıntıları saklayarak değil de, yönetmenin herhangi bir şeyi elle değil ama bazı yazılımları çalıştırmasını saglayarak gündeme getirdiklerinden kuşkuluyum.

Diğer bir yakınmam: zip sürücüsünün bulunmasına rağmen kullanıma geçmesi çok uzun sürüyor, çünkü yalnızca yavaş kipin kullanılabildiği eski beta sürümü kullanılıyor. Bu yüzden sürücüyü ve belki de çekirdeği yeniden derlemem gerekiyor. Çekirdek kaynak kodlarını yüklerken diğer bir sorunla daha karşılastım. Şimdi ne olduğunu anımsamıyorum. Bu düşüncelerden ve "rpm çılgınlığı"ndan çekindiğimden dolayı RedHat'i bırakıp, eski ama güvenilir, Slackware'e döndüm. Elimdeki Slackware disketleriyle yeniden başlattım ve kafamdaki bilgilerle kurulumu yineledim ve sistem hemen yeniden devreye girip çalıştı.

Yeni Bir Çekirdeğin Derlenmesi

Linux Sisteminin merkezinde çekirdek olduğunu ve çekirdeğin, fareden, ses kartına, benim paralel port ZIP sürücüme, dış SCSI CDROM sürücüsüne kadar çeşitli tüm çevre aygıtları içermesi gerektiğini biliyordum. Ayrıca, çekirdeğin bu aygıtları modül olarak yüklenildikleri zaman da destekleyebildiğini yani istendiğinde yüklenip daha sonra devre düşü bırakılabildiklerini biliyordum. Böylece, istenildiğinde uyumsuz aygıtlar için yükleme sonra devre dışı bırakmak mümkün olduğundan dolayı çekirdek daha küçük ve daha esnek hale gelir. Örneğin, yazıcı sürücüsü paralel portla ZIP sürücüsüyle uyumlu olmayabilir, o zaman sürücüyü bir anda bu iki sürücüden yalnızca birisi için yükleyebilirdim.

İúerinde çalıştığı bilgisayarı kesin olarak destekleyen bir çekirdek derlemek daha iyidir.

Standart bir Linux dağıtımı ile gelen çekirdek, sahiplenmeyi düşünme eğilimi göstermeyeceğim, bazı ana aygıtların desteğini içerir, bu aygıtlar bellekte birşey yapmaksızin kalıp dururlar. En iyisi çekirdeği üzerinde calıştığı sisteme göre derlemektir.

Bunu aklımda tutarak, bilgisayarım için uygun bir çekirdeği biçimlendirip derlemeye başladım. Slackware'i yüklerken tüm çekirdek kaynak kodlarını yüklemeyi seçtiğimden dolayı çekirdeği yeniden derlemek çok kolay oldu. /usr/src/linux dizinine geçip make menuconfig buyruğuyla yazı-tabanlı çekirdek biçimlendirme yazımını başlattım. Kısa bir süre sonra, çeşitli çekirdek seçenekleri içeren hoş bir diyalog kutusu karşımda göründü. Herbir çekirdek seçeneği anlatımlarla iyi bezenmişti ve zaman yitirmeden onlar içinden bakabiliyordum. "ESS AudioDrive" türü ses kartıma kadar girebileceğim her şeyi girdim. Ses kartım listede bulunmamakla birlikte, README dosyalarından edindiğim bilgi çerçevesinde onun bir SoundBlaster türü olduğunu sanmaktaydım (listede yoktu ama öyle olmalıydı). Modül olarak derlenmesi gereken tüm paralel aygıtların tümünü seçtim. Aygıtlar, güç işletmeni ("APM"), ses gürleticisi (SoundBlaster) uyumlu ses kartı, bir PS/2 fare, seri portlar, disket, cdrom, ve SCSI teker desteği (benim ZIP tekerim için ama ona sahip olmak iyiydi) gibilerini içermekteydi. SLIP ve PPP gibi iletişimağıyla ilgili şeyler ve a.out, ELF, ve çalıştırmam gerektiren durumlarda kullanabilmem için java çalıştırılabilir biçimleri (format) için modüller yaptım. SGI uyumlu ZIP tekerleriyle çalışabilmek amacıyla Macintosh dosya sistemi (hfs) için ve paralel ZIP sürücüsü için güncellenmiş destek (bu şeyler standart çekirdekle birlikte gelmiyorlardı ama onlara gereksinimim vardı) için modülleri ayrıca derledim. En son PCMCIA paketini (pcmcia-cs-3.0.4) yöreyeçektim ve SCSI kart ve iletişimağı kartı destek modülerini derledim.

Ardından make dep; make zlilo; make modules; make modules_install buyruklarını çalıtırıp 15 dakika bekledim. Herşey bittikten sonra yeni çekirdek ve modüller derlenmiş ve doğru yerlere yerleştirilmiştiler. Oluşan /vmlinuz çekirdek dosyasının /vmlinuz.old altında korunmakta olan eskisinden daha yeni ve küçük olduğunu denetledikten sonra makinemi yeniden başlattım (reboot)... ve başlatılamadığını herhangi bir dosya sistemi mount edilmeden önce durduğunu gïzlemledim. VFS: mounted root (ext2 filesystem) readonly'deki bölünüm denetiminden sonra alışılmış başlatım duyurum dizisi (boot message sequence) durdu kaldı. Hiçbir dosya sistemi okuma ve yazma için mount edilemedi, INIT tarafından başlatılan, sistem başlatım yazımlarından hiçbiri çalıştırılamadı.

Eski çekirdeği içeren başlatım disketi ile Slackware'i yeniden baslattıktan sonra sistemim geri geldi, yeniden çekirdek biçimlendirme aşamasına geçtim ve yeni çekirdeğimde neyin hatalı olduğunu düşündüm. Sonra ölümcül yanlışımı buldum: herşeyi modüllerle yapmaya o kadar kendimi alıştırmam aptalca bir yanlışlık yapmama neden olmuştu. Tüm çalıştırılabilir biçimler (a.out, ELF and java gibi) için destekleri modül olarak derlemiştim. Tüm çekirdek ve modüller ELF'de derlenmiştiler. Bu yüzden, yeni çekirdek başlatılınca ELF desteği için olan modülünu yükleyinceye kadar hiç bir modülü yükleyemiyordu. Öte yandan, bu modülün yüklenmesi insmod programının çalıştırılmasını gerektiriyordu ki bu da ELF çalıştırılabilir desteğinin modül olarak değil de çekirdek içine derlenmesini gerektiriyordu. Bu durum, günümüzde birçok programın ELF çalıştırılabilir dosyası biçiminde derlenmesi nedeniyle doğal bir şeydi. Bu doğrultudaki değişikliği yaptıktan sonra çekirdeği yeniden derlediğimde, sorunsuz olarak yeniden başlatmayı başarabilmiştim.

Sonra /lib/modules dizinine gittim ve derlenenlerden eski olan tüm modülleri sildim. Bunun sayesinde başlatımda, uyuşumsuz modüllerle ilgili hata duyurumlarından kurtulmuş oldum. Ayrıca /etc/rc.d/rc.S sistem başlatım yazım dosyasını elden geçirerek modülleri otomatik olarak yükleyen ve kaldıran kerneld "deamon"ının devreye sokulmasını sağladım. kerneld sayesinde modülleri insmod ve rmmod ile elle yükleyip kaldırmak (böyle yapabilmek hâlâ mümkün olsa da) gerekmiyor. lsmod buyruğu o anda çekirdekte yüklü bulunan tüm modülleri listeliyor.

/etc/conf/modules'e alias scsi_hostadapter ppa satırını eklemek gereksinimini duydum. Böylece, ZIP tekerini (/dev/sda) mount etmeye çabaladığımda paralel port ppa otomatik olarak yüklenmişti.

kerneld, modülleri gerektiğinde yükleyip bir süre için kullanılmadıklarında kaldırarak, düzgün biçimde çalıştı. /etc/conf /modules'e alias scsi_hostadapter ppa satırını eklemek gereksinimini duydum. Böylece, ZIP tekerini (/dev/sda) mount etmeye çabaladığımda paralel port ppa otomatik olarak yüklenmişti. Paralel port uyarlayıcısı yerine SCSI kart kullandığımda bunu değiştirmek zorunda kalacağımı kestirmiştim.

Bit'ler ve Parçalar, ya da Bir Zil Nasıl Öttürülür

Yeni çekirdek ile birlikte birkaç iyi biçimlendirme olanağı elime geçti. Bunlar, iki fareyi aynı anda desteklemek, dış veri kayıt aygıtlarına (çimdilik disket, CDROM ve ZIP sürücüleri) girişi denetlemek, Rusça'yı desteklemek ve fvwm2 pencere işletmenini ayarlamak.

Slackware kurulum yazımı /mnt dizinini ve onun altına da, disketler ve CDROM'lardaki dosya sistemlerini mount etmek için /mnt/floppy ve /mnt/cdrom alt dizinlerini oluşturmuştu. Bunların ayrı bir dizin altında bulunmalarını uygun bulmadım ve onun yerine kök dizin altında floppy ve cdrom dizinlerini yarattım. Ama daha sonra, farklı seçenekler altında aygıtları mount edebilmek için daha çok dizine gereksinimim olduğunun farkına vardım ve bunları kök dizin altında tutmak yerine mnt silsilesini yeniden yarattım.

Ayrıca /etc/fstab dosyasını elden geçirerek mount ayarlarını da değiştirdim. Yükleme sonunda bu dosya benimsenmiş olanları içermekle birlikte benim gereksinimlerimi karşılamıyordu. Herseyden once floppy, cdrom ve ZIP sürücüleri için satırlar ekledim. Otomatik mount edilmelerini önlemek ve tüm kullanıcıların mount etme hakkı olması (user seçeneği) için gereken değişiklikleri yaptım:

/dev/fd0   /mnt/floppy	vfat	user,noauto,noexec,nonumtail  0 0
/dev/sda4  /mnt/zip	vfat	user,noauto,noexec,nonumtail  0 0
/dev/hdc  /mnt/cdrom	iso9660	user,noauto,noexec	      0 0

noexec seçeneği DOS uyumlu dosya sistemleri içindir. Dosyaların o dosya sistemi üzerinde çalıstırılamaz olmasını, yapılması sağduyulu olarak düşünülebilecek bir şeyi, sağlıyor. nonumtail seçeneği çirkin dosya adlarıyla dosya oluşturmayı engelliyor: longname.file dosyası eğer ad çatışması yoksa longna~1.fil yerine longname.fil olarak adlandırılacaktır. vfat dosyasistemi, eski msdos türünün tersine uzun dosya adlarını DOS uyumlu bir biçimde destekler. Dolayısıyla, neden kullanılmasın.

mtools paketi basıma biraz dert açtı: o ya /dev/fd0'a okuma-yazma hakkı verilmesini ister ya da disketi yalnızca yetkin kullanıcı (superuser) gerçekten okur ya da üzerine yazabilir. Mtools dosyalarındaki dosyaların setuid bit'ini ayarlamak yadımcı olacağa benzemiyordu. Bu aygıtları elle mount etmeye karar verdim.

Fareler hakkındaki öyküm gerçekten basit çünkü önceki laptop'umda bu konu ile uğraşmıştım. Laptop'un PS/2 benzeri dokunma ile çalışan bir faresi olmakla birlikte ben ona bir de seri porttan bağlanan dış fare eklemiştim. İki fare de gpm (genel amaçlı fare, İngilizcesi: general purpose mouse) programı sayesinde kullanılabiliyordu. Programın iki amacı vardı: yazı ortamında kesme ve kopyalama işini görmek
Her iki fare de en kolay olarak gpm (genel amaçlı fare, İngilizce'si: general purpose mouse) programıyla desteklenebiliyordu.
ikincisi gpm ( bus fare, PS/2, serisel veya diğerleri gibi herhangi bir şey olabilen) iki değişik fareyi tek bir gösterici aygıta odaklıyordu. Tüm istenilen bir buyruk satırıydı. Sözdizimi biraz karmaşık olmakla birlikte temiz açıklamaları ve örnekleri elyordam sayfasında (man gpm) bulmak mümkündür. gpm programı /etc/rc.d/rc.local başlatım dosyasına yazılarak baslatılır. Böylece kurulum ve etkinleştirme sağlanmış olur. Ben bu dosyadaki satırı şu satır ile değiştirdim:

gpm -t ps2 -m /dev/psaux -2 -M -t -mman /dev/cua0 -3 -R

Bu şöyle açıklanabilir: birinci fare PS/2 türünde olup yardımcı port'ta bulunacak ve 2 düğmesi bulunacak; ikinci fare (-M) [Logitech] MouseMan türünde olup birinci serisel port'a (/dev/cua0) bağlı olacak ve 3 düğmesi bulunacak, ve -R her iki farenin de X window oturumlarında bir tek fare gibi davranacakları anlamına gelecektir. (1.14 ya da daha sonraki sürümlü gpm kullanılması durumunda, -R seçeneğinin burada gerekli olmadığına dikkat ediniz.) Bu satırın girilmesinden sonra gpm'i öldürdüm ve yeniden başlattım (gpm -k; /etc/rc.d/rc.local) ve o zaman her iki farem de hemen çalışmaya başladılar ve herhangi bir sorun çıkarmadılar. Üstelik, bir X pencere oturumunda çalışırken serisel fareyi takabiliyordum, ve o çalışıyordu. Bunlar, sözümona işletim sistemi diye nitelendirilen "windows" altında olanaksızdı: orada kullanıcıya bilgisayarı "yeni bir donanım" işi yapmak için yeniden başlatma öneriliyordu.

Uğraştığım diğer bir konu da Krilik karakter kümesinin desteğini sağlamaktı. Rusça karakterleri okuyabilmeli ve arasıra da yazabilmeliydim. Bu desteği yalnızca X için yükledim. Bu destek iki parçadan oluşuyordu: Krilik fontlarını bulup getirmek ve Krilik klavye yapısını oluşturmak. UNIX'in Krilik'leştirilmesinin nasıl yapıldığının tüm ayrıntılarını açıklayan bilgi sayfaları iletişimağında (Internet) bulunmaktadır. Slackware ile birlikte KOI-8 fontları sağlanıyor. "Krilik NASILYAPILIR" Serge Vakulenko (vak@kiae.su) tarafından yaratılan VakuFonts topluluğuna yol gösterir. O, X Pencere Sistemi için krilik nesneler topluluğunda erişilebilir. KOI-8 ve CP-1251 (ya da "Windows") kodlamasında özdeş fontlar sağlayan iki font paketini yöreyeçektim, font dosyalarını (*.pcf.gz) ana X window fontlar dizini /usr/X11R6/ lib/X11R6/fonts/'nin (Slackware sistemimde /etc/X11/fonts bağlantısı üzerinden kolayca erişilebilir) koi8-r ve x-cp1251 alt dizinlerine açtım. Bundan sonra, bu iki alt dizini /etc/X11/XF86Config. dosyasında "FontPath"e ekleyerek fontları kurulumunu yaptım. Daha sonra, X Pencere Sistemi'ni yeniden başlattım. Tüm fontlar erişilebilir durumdaydı, böylece Netscape'i (Sürüm 4.05'i kullandım) bu fontları ilgili koi8-r ve x-cp1251 kodlamaları için otomatik olarak kullanabileceği yapıda biçimlendirebildim.

Sonra bir Rus klavye sürücüsüne gereksinim duydum. Moshkow Kitaplığı, Krilikleştirme üzerine sayfadan elde ettiğim xrus basit programını kullandım. Onun /etc/X11/app-defaults /Xrus kaynak dosyasını yamalayıp klavye yapılanmasını benim Rus daktilosu anlayışıma göre düzenledikten sonra :) Rusça'da yazabilme rahatlığına erişmiştim.

En son olarak yapılacak iş dosyaları Rusça kodlamaları arasında değiştirmeye yarayacak olan programı yüklemeye geldi. 323 olarak adlandırdığım evyapımı çok basit bir yazımı kullandım. O, CP866 ("DOS" ) KOI-8, CP1251 ("Windows"), ve Macintosh kodlamaları arasında dönüştürüm yapma yetisine sahip bulunmaktaydı. 323'e koi2win, alt2mac olarak adlandırılan katı bağlantılar yarattım ve bu yolda devam ettim (ln 323 koi2win vb.). Böylece yazım adına bakarak ne yapacağına karar verebiliyordu. Bu yazımı ve yüklenmiş fontları kullanarak, Rusça'daki herhangi bir yazı okunabilmektedir.

O zaman bir Rusça klavyeye gereksinimim oldu.

X ayarlarını fvwm2 pencere işletmeni dışında uygun biçimde halletmiştim. Onun tüm ayarları ~/.fvwm2rc dosyasında ya da (eğer bu dosya yoksa) sistemeyaygın /etc/X11/fvwm/system.fvwm2rc dosyasında bulunur. Slackware ile sağlanan kaynak dosyasında gerçekte çok yararı olamayan ya da işlemeyen birçok şeyin devre dışı bırakıldığını gördüm. Pencere işletmeninden istediğim temel şeyler şunlardı: düğmeleri en faydalı az sayıda programı çağırarak hızlı gösterme, klavyeye ve fareye, pencere hareket ettirme veya yükseltme gibi pencere işlemleri için yanıt verme, bazı ana işlemleri tüm pencerelerde adçubuğuna yerleştirebilme, ve tüm yüklenmiş X uygulamalarını menü halinde görüntüleyebilme diye sıralayabiliriz. Bütün bunlar, ideal olarak, fareye dokunmaksızın klavyeden erişilebilmeli.

Sağlanan kaynak dosyası ile işe başladım. Onu defalarca edit edip uzun ve yoğun (man fvwm2) dosyasını, bu işletmenin fonksiyonlarının nasıl devreye sokulacağını bulabilmek amacıyla okudum ve adım adım ilerleyerek değişiklikleri ekledim. Çeşitli pencere işlemleri için yararlı olan "Windows 95" açkılarının (keys) yapımıyla ilgilenmekteydim. Son bahsettiğim fare olmaksızın. Nelerin olup bittiğini belirten yeterince açıklama ile donatılmış larak sonuç burada bulunmaktadır.

Çevireriş Ağiletişimlendirme GNU Yolu

Benim yerel PPP iletişimağı sağlayıcısına çevireriş erişimi kurulu olup o kadar kısa zamanda çalışıyordu ki gerëekten şaşakalmıştım. Biraz karmaşık ve çağdışı kalmış PPP kurulumuyla ilgili "Kurulum Yolgöstereni"ni de içeren elyordamlarını okuduktan sonra PPP kurulum ve ayarının oldukça acı verici olduğu izlenimi altındaydım. Bununla birlikte, ppp ile başlayan buyruk adlarını seçkisiz olarak vererek Slackware'de modemim ve PPP sağlayıcım hakkında doğru soruları soran pppsetup adlı bir yazımın bulunduğunun farkına vardım. Bunun hakkında, "authentication protokol"unun "PAP", "CHAP", veya "CHAP-Microsoft" olup olmadıpı da dahil hiçbir şey bilmiyordum. Kısa sürede herşey yapıldı, daha çok kendinden açıklamaı olan iki buyruğu yani ppp-go ve ppp-off'u PPP bağlantısını denetlemem söylendi. Ayrıca /etc/ppp/ppp.setup.txt adlı pppsetup süresince ne yapılmasını betimleyen ayrıntılı bir yazı da vardı. O dosyada, PPP bağlantısının başarılı bir biçimde kurulduğunu sınamak için ifconfig'yi koşturmam söylenmekteydi. Ayrıca, herhangi bir sorun çıkması durumunda sistem kayıt dosyalarına yani /var/log/messages ve /var/log/debug'a yönlendirilmekteydim (PPP seçenekler dosyası /etc/ppp/options'da debug seçeneği benimsenmiş olarak etkinleştiriliyordu; daha sonraları debug dosyasının şimdi çoğunlukla gereksiz pppd duyurumlarıyla doldurulmuş olmasından dolayı bunu devre dışı bıraktım).

Herşey gül gibi görünüyordu fakat modemi telefon hattına bağladığım zaman ppp-go buyruğu bir bağlantı yaratmış gibi görünmüyordu. /var/log/debug dosyası birçok duyurum içeriyordu; dosyanın sonuna doğru baktım pppd ve karşı konak (host) arasında başarısız bir değiş tokuş buldum. Karşı konaktan alınan duyurumlardan biri söylüyordu. Aha! dedim gerçekten "CHAP" yerine "PAP" yetkilendirimini seçmeliydim. pppsetup'ı yeniden yaptım ve PPP bağlantısı bir an evvel devreye girmiş ve zaman yitirmedem çalışmıştı. İkinci olarak düşündüğüm de pppscript'in sistem kayıt dosyasını ve " PAP istemiş gibi görünüyorlar ... " türünden görüntülenen duyurumları grep'leyen bazı fonksiyonlaı içerdiğini ama bazı nedenlerle bunların devre dışı bırakıldıklarıydı. pppsetup'ın daha iyi bir sürümü var mı acaba, belki de onun geliştirimi henüz bitirilememiştir?

Birgün daha dostça bir kullandırımı (utility) kuracak ya da Perl ve Tk öğrenecek ve kendimin özgün iletişimağlandırım nesnelerimi yazacağım. Veya, GNOME nesneye yönelik masaüstü işletmen olgunluğa erişince, belki de "tümüyle" RedHat ile ilerleyeceğim.

PPP'nin güzel çalışmasına, fetchmail, ncftp, Pine, netscape ve diğer iyi yazılım programlarını sorunsuz kullanabilmeme rağmen, kurulum ve ayar'dan tam olarak memnun değildim. Çevirerişim işleminin daha fazla kontrol edilebilir ve (varsa) hata duyurumlarının da kullanıcıya görünür olmasını isterdim. Herhangi bir nedenle PPP bağlantısı koptuğu takdirde, root olarak girmeden ve sistem kütüklerini (logs) incelemeden bir yolunun bulunmasını isterdim. Belki o ticari linux'lar kullanıcı dostu PPP bağlantılarını görünür kılan (belki gppp?) kullandırımlarla (utility) geliyorlar. Ama, korkarım o kullandırımlar birçok başka şeyin kurulumuna gereksinim duyuyor ya da kendi "özgün" çevreleri dışında çalışmayacaklardır. Birgün daha dostça bir kullandırımı (utility) kuracak ya da Perl ve Tk öğrenecek ve kendimin özgün iletişimağlandırım nesnelerimi yazacağım. Veya, GNOME nesneye yönelik masaüstü işletmen olgunluğa erişince, belki de "tümüyle" RedHat ile ilerleyeceğim.

PPP ile ilgili başka bir sorun ppp-go yazımının root kullanıcılar tarafından çalıştırılmasının gerekliliğiydi. Önce istenildiğinde çevireriş kurulumunu düşündüm, ama çekirdek bazı nedenlerden dolayı bu özelliği destekleyen PPP sürücü sürümünü (2.3) içermiyordu. Sonra iletişimağı belgeliklerini (network archives) karıştırdım ve çok kısa bir C programı, "ölümlüler için ppp"'yi buldum. Bu program root kullanıcı olmak için tabanda setuid(0) adında bir fonksiyon çağırıyor daha sonra da ppp-go yazımını çalıştırıyordu. Onu derledim ve setuid bit'i 1'e ayarlanmış olarak (chmod 4755 ppp_for_mortals) erişimyoluna (path) kurulumunu yaptım. Bundan sonra, bu programı kullanıcı olarak PPP bağlantısını başlatmak veya durdurmak için calıştırabildim.

Ek: the Donanım Gerçekleri

Computer sistem özelikleri:
Pentium CPU, 133MHz
16MB RAM, 48MB'a yükseltilebilir
1.3GB kalıcı teker, EIDE arayüz
12" TFT LCD ekran, 800x600 çözünürlük, elle parlaklık denetimi
2MB RAM'li Chips&Technologies 65550 görüntü kartı, 800x600 kipinde gerçekrenk'e kadar çıkabilir

Çevresel aygıtlar:
içerde yapılandırılmış (built-in) dokunma taban (touch-pad) türü 2 düğmeli fare
2 PCMCIA-II genişleme yuvaları (slots)
COM2'yi IRDA ile paylaşan içerde yapılandırılmış modem (28.8 kbps)
içerde yapılandırılmış ESS AudioDrive, 16 bit'lik bir "SB uyumlu" seskartı
CDROM and disket sürücülü birleştirme birimi (taban birimde disket sürücü yok)
CDROM: IDE/ATAPI, 8X maksimum hız, ikincil IDE kontrolcusuna bağlı

Linux biçimlendirim bilgileri:
Linux İşletim Sistemi çekirdek sürümü 2.0.34
Dağıtım: Slackware Linux 3.5 (Patrick Volkerding tarafından hazırlanıyor)
Satıcı: Cheapbytes (www.cheapbytes.com)

çevresel aygıt destek durumu:
Bir dış PS/2 ya da serisel fare ile içerde yapılandırılmış PS/2 fare, tümüyle destekleniyor.
İçerde yapılandırılmış ses kartı: hacım düşük tutulmadıkça çok sayıda geri besleme verir aksi halde çalışıyor
İçerde yapılandırılmış modem: çalışıyor, Minicom'da sınandı
Görüntü uyarlayıcısı: 640x480, 800x600 ve 1024x768 kiplerinde tümüyle destekleniyor 8, 16 and 24 bit renkte kısmi görüntü, 60HZ, 56Hz ve 52Hz düşey tazeleme hızı (TFT LCD ekran üzerinde kabul edilebilir), video hızlandırım.
Birleştirim birimindeki CDROM ve disket sürücü: tümüyle destekleniyor.
Geliştirilmiş Güç İşletimi: tümüyle destekleniyor.


Kaynaklar


Yazının dergiye gelen aslı İngilizce'dir


Bu görsel sanalyörenin bakımını Miguel Angel Sepulveda yapmaktadır.
© Serge Winitzki 1998
LinuxFocus 1998