X Window Kurulumu

Eyl 06, 2013

X Window'un 386 ve yukarı tabanlı makinalar için geliştirdiği sisteme Xfree86 adı verilir. Linux da Xfree86'yı Slackware dağıtımına ekleyerek kullanıcıların hizmetine sunmuştur. Xfree86 sürüm 3.1'in desteklediği kartlara ait çipsetler kitabın başında verilmiştir. Bu çipsetler, PCI ve VLB dahil, her tür veri yoluna sahip anakartlar üzerinde sorunsuz çalışır.

Linux ile uyumlu çalışabilen yeralan çipsetlerin hepsi 256 renk (8 bit) desteklerler. Kart üzerinde yeteri kadar RAM var ise (en az 2MB), ekranını 65536 (16 bit) ya da daha fazla renk gösterecek şekilde açma imkanı olur. Özellikle S3 kartları Linux Xfree86 altında sorun çıkartmadan 65536 rengi kolayca gösterebilirler.

X Window üzerinde rahatça çalışabilmek için en az 486 tabanlı bir bilgisayara gerek duyulur. Renk sorunu yaşamamak için ise 2MB görüntü hafızası olan bir grafik kartı kullanılmalıdır. X Window, sistemi fazlaca yüklediğinden takas alanı için fazlaca yer ayrılmalıdır. Xfree86, Slackware tarafından dağıtılan paketlerin X bölümünde yeralır. Herhangi bir nedenden dolayı sistemde X yoksa pkgtool  yardımıyla sisteme kurulup gerekli kütüphaneler eklenmelidir.

X Konfigürasyonu

X Window kurulumu basit olmasına rağmen konfigürasyonu biraz zor olabilir. Slackware 2.2 dağıtımı ile gelen  konfigürasyon programları, kullanıcının hata yapmasını affetmemekteydi. Yanlışlıkla basılan bir tuş yüzünden kullanıcı baştan  başlamak zorunda kalabilirdi. Slackware 3.3 altında, grafik arabirimini kullanan XF86Setup programı ile bir fare yardımıyla  rahatlıkla ve kısa sürede X konfigürasyonu tamamlanabilmektedir. Ücretli sürümlerden bir tanesi kullanıldığında işler daha da kolaylaşır. Neredeyse donanım hakkında hiçbir şey bilmeden X kurulabilir.

XF86Config dosyası X açılırken okunur ve  fare, ekran çözünürlüğü, renk sayısı gibi özellikler belirlenir. Ekranının kalitesine göre açılmak istenen çözünürlük hakkında bir miktar fikir sahibi olunmalıdır. Bazı eski ekranlar 1024x768 çözünürlüğü desteklemezler, bu yüzden 800x600 gibi düşük bir çözünürlük ile işe başlanmalıdır.

Linux'un Slackware 3.3 sürümü, kullanıcıya X konfigürasyonu için iki program sunar. Birincisi, yukarıda da belirtilen ve zayıf bir arabirimi olan xf86config, diğeri de XF86Setup. İkincisini kullanmak, her bakımdan avantaj olarak göze çarpar. Program, bazı  ayarlamaları kullanıcıya bırakmadan (örneğin çipsetin seçimi) kendisi halleder.

Aşağıda XF86Config dosya formatı hakkında biraz bilgi verilmiştir. X Window'u kurduktan sonra dosya üzerinde istenilen şekilde değişiklik yapılabilir.

Dosya, pek çok bölümden (section) oluşur ve her bölüm, Section "bölüm-ismi" ve Endsection kelimeleri arasında yeralır. Ekran yazı tiplerinin ve kullanılacak renklerin patikasını belirleyen bölüm dosya altında şu şekilde görünecektir:

Section "Files"
        RgbPath         "/usr/X11R6/lib/X11/rgb"
        FontPath        "/usr/X11R6/lib/X11/fonts/misc"
        FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
EndSection

İstenilen kadar yazı tipi girişi yapılabilir. Üç tanım satırının arasına, örneğin X altında kullananılacak Türkçe yazı tipleri yerleştirilsin. Bu yazı tiplerini daha önce kurmuş ve gerekli konfigürasyon işlemlerinin yapılmış olması gereklidir.

Section "Files"
        RgbPath         "/usr/X11R6/lib/X11/rgb"
        FontPath        "/usr/X11R6/lib/X11/fonts/misc"
        FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
        FontPath        "/usr/X11R6/lib/X11/fonts/turkce/75dpi"
EndSection

Klavye ve farenin tanımlandığı bölümler, Keyboard ve Pointer adı altındadır. Açıklama satırlarının başında # karakteri yeralır. Örnek dosyanın yeraldığı makinada farenin kullandığı protokol, MouseSystems olup hemen her standart fare için bu protokol önerilir. Diğer protokoller arasında Busmouse, Logitech, Microsoft, MMSeries, Mouseman, PS2, MMHitTab vardır. X açıldığı zaman her şey yolunda gitmesine rağmen farenin işareti hareket etmiyor veya ekranda deli gibi oradan buraya koşuşturuyorsa  farenin kullandığı protokol değiştirilmelidir. Bazı farelerin altındaki küçük anahtarın bulunduğu konumu değiştirmek de işe yarayabilir.

Section "Keyboard"
        Protocol "Standard"
        Autorepeat 500 5
        ServerNumLock
EndSection

Section "Pointer"
        Protocol "MouseSystems"
        Device "/dev/mouse"
Emulate3buttons         # iki tuslu microsoft farede 3. tusun,
                        # iki tusla basilmasini saglamak icin...
ChordMiddle             # 3 tuslu Logitech fareler icin
EndSection
Farenin kullandığı seri port /dev/mouse dur. Bu dosya, genellikle uygun olan bir seri arabirime (örneğin /dev/ttyS0, /dev/ttyS1,  /dev/psaux ya da /dev/cua0 gibi) bağlıdır.

XF86Config dosyasının en önemli bölümü monitörle ilgili bilgilerin yeraldığı kısımdır. Bu bölümde monitörün yatay (Horizontal  Sync), düşey frekansları (VertRefresh) ve frekans aralıklarıyla sürücü saat frekansı (dot-clock frequency) belirtilir. Kullanılan  monitörle ilgi konfigürasyon sırasında girilen bilgiler bu bölümde yeralır.

Section "Monitor"
        Identifier "CTX 5468 NI"

HorizSync 30-38, 47-50
        VertRefresh 50-90

        # Modes : Name     Dotclock     horiz        vert

        Modeline "640x480"   25   640 664 760 800   480 491 ...
        ...
EndSection

Identifier, kullanılan monitörün tipini verir. X bunu kullanmaz, istenilen herhangi bir kelime yazılabilir. HorizSync,  monitörün yatay frekansını kHz cinsinden belirtir. VertRefresh ise monitörün tazeleme frekansı olup Hz cinsindendir. Her iki değer,  frekans aralığı veya tek sayı olarak verilebilir.

Modeline kelimesi ile başlayan satırda belirli bir çözünürlük için gerekli Dotclock (sürücü saat frekansı) ile yatay ve düşey  tarama frekansları MHZ cinsinden yazılıdır. Bu tanımlar ile ilgili daha geniş bilgiyi /usr/X11/lib/X11/doc dizini içinde bulunabilir. Yukarıda yer alan bilgileri kişisel bilgisayarda kullanmamak, monitörün sağlığı açısından tavsiye edilir.

Monitör bilgilerinin yeraldığı bölümden sonra ekran ve alt bölümü olan görüntü bölümü gelir.

Section "Screen"
        ...
                Depth 8
                Modes "1024x768" "800x600"
                ViewPort 0 0
                Virtual 1024 768
EndSubsection
EndSection

"Driver" kısmında kullanılacak olan X sunucusunun tipi (SVGA, hızlandırılmış, vb.) girilir. S3, Weitek, ATI gibi hızlandırılmış bir  görüntü kartı kullanılıyorsa Accel , normal (generic) bir kart ve kaliteli bir monitör varsa SVGA ve siyah beyaz VGA bir monitörle birlikte tek renk (monochrome) destekleyen kart kullanılıyorsa VGA2 yazılıdır.

Indentifier ve Monitor bölümlerinde yazılanlar göz ardı edilebilir.

"Display" alt bölümünde, görüntü özellikleri yeralır. "Depth" kelimesinin karşısında yeralan rakam, piksel başına kaç bitin, başka  bir deyişle kaç rengin kullanılacağını belirtir. Monitörün belirli bir çözünürlükte kaç renk birden gösterebileceğini bulmak için bu sayı 2'nin kuvveti olarak yazılır ve hesaplanır. Günümüz XFree86 sunucuları genellikle 256 (8 bit), 65536 (16 bit) ve 16.7 milyon (24 bit) renge kadar çıkabilirler.

"Modes" karşısında yeralan ekran çözünürlük listesi, Linux un X altında çalışırken görüntüleyebileceği çözünürlükleri belirtir. X altında burada yazılı çözünürlükler arasında geçiş yapabilmek için Control-Alt-Nümerik + veya Control-Alt-Nümerik - tuşları kullanılabilir. Modes ile başlayan satırdaki ilk çözünürlük, X Window açıldığı zaman kullanılacak olan çözünürlüktür. (Yukarıdaki örnekte 1024x768).

"Virtual" tanımının karşısında yeralan x ve y sayıları sırayla ekranın genişliğini ve yüksekliğini belirtir. X açıldıktan sonra ekran  genişliği yetmediği durumlarda kullanılabilir. Bu iki sayı, görüntü kartı hafızası yetene kadar artırılır. Örnek olarak 1024x768 ekran çözünürlüğünde 1152 ve 900 sayıları yerleştirilsin. X Window açıldığı zaman fare ile ekranın sağ alt köşesine gidilsin. Ekranın kaydığı görülür. Gerçek ekran boyutunu Virtual parametreleri belirler.

Virtual girdilerinin ardından verilen ViewPort parametresi de ekranın sol üst köşesinin hangi koordinatlara tekabül edeceğini  tanımlar.

X Window Komutları

Aşağıdaki komutlar yazılmadan önce PATH değişkeninin içinde /usr/X11/bin olduğundan emin olunmalıdır.

$ startx
Ekranda X sunucunun dosyadan okuduğu satırlar ile ilgili bilgileri sırayla görülecektir. Ardından ekran kararacak ve X açılacaktır.  Sonra Control-Alt-Backspace tuşlarına basılır ve X sunucusunu öldürerek başlanan vt100 terminaline geri dönülür.

Örneğin: Ekran karardı; ama X açılmadı. Yapılandırmada hatalar olabilir. Ekranda çıkan hata mesajlarını kaydedip incelemek gerekir. Çok yapılan yapılandırma hatalarının başında çipsetin ve ekran kartı bilgilerinin yanlış girilmesi, Virtual parametrelerinin hatalı olması ve görüntü kartı hafızasının ekranı açmaya yetmemesi vardır. Bu sefer hata mesajlarını ayıklanıp bir dosyanın içine atarak sunucu tekrar çalıştırılır. Sonra da dosya incelenip sorunun nerede olduğu bulunabilir. 

$ startx > /tmp/hatalar 2>&1
Ekrana çıkması gereken tüm satırlar /tmp/hatalar dosyasına yönlendirilecektir. Çipseti doğru olarak seçmek için SuperProbe  programını kullanılabilir. Bu komutu kullandıktan sonra ekrandaki çıktıdan alınan bilgiler yapılandırma sırasında programa girilir.

X sunucuyu başlatmaya yarayan startx komutu, ev dizini içindeki .xinitrc dosyasını arar. Bulamazsa sistemde  /usr/X11/lib/X11/xinit/ dizini içinde yeralan xinitrc dosyasını okur. Bu dosyanın içine X açıldığı zaman başlayacak olan programları koyabilir, ekranın renk düzenlemesini yapılabilir. Örnek bir .xinitrc dosyası aşağıdaki gibidir:

#!/bin/bash
#
#start xterms
#
xterm -geometry 80x25+10+10 -bg black -fg white &
xterm -geometry 80x25 -bg darkgray -fg white &

xclock &
xload &
xbiff &
xsetroot -solid darkblue &

# startx wm
exec fvwm
#
.xinitrc dosyası gayet kolay ve anlaşılır bir dile sahiptir. Sadece hangi X programlarının çalıştırılmak istendiği buraya yazılır ve arkaplanda bırakılır. (Unutulduğunda X'ten çıkıncaya kadar sadece ilk program çalışır) İlk iki satırda xterm çalıştırılır. Hemen hemen tüm X programlarının ortak özelliği, kullanıcının bu programları ekranda hangi koordinatlara yerleştirileceklerini belirleyebilmesidir. İlk xterm programı 80x25 karakter boyutlarında olup sol üst köşeden itibaren 10 piksel sola, 10 piksel sağa  yerleştirilecektir. Xterm'ün arkaplan ve yazı tipi rengi sırayla -bg ve -fg parametreleriyle belirtilir. Renkler İngilizce isimleriyle verilir. Bunlar hakkında daha fazla bilgi için /usr/X11/lib/X11 dizini altındaki rgb.txt dosyasına göz gezdirebilir.

Ardından sırasıyla xclock (X altında çalışan saat programı), xload (sisteme ne kadar yük bindiğini gösterir) ve xbiff (e-posta gelince  haber verir) çalıştırılır.

Sondan bir önceki komut olan xsetroot, bazı hoş özellikleri olan bir programdır. Bu satırdaki görevi, X Window arkaplan rengini koyu mavi yapmaktır. .xinitrc dosyasının içine X açılırken başlatmak istenen her program konulabilir.

Son satırda ise X sunucusu, pencere yöneticisini çalıştırır. Daha önce de belirtildiği gibi wm,  kullanıcı ile X arasındaki idareyi sağlar. Yeterli RAM varsa ve bilgisayar hızlı ise AfterStep ve Enlightenment pencere denetleyicileri denenebilir.

X Altında Türkçe Yazıtipi ve Klavye Kullanımı

Kullanılan her işletim sisteminde Türkçe karakterlerin gösterimi ve Türkçe klavye uyarlaması sıkıntısı çekilmektedir. Linux'ta Türkçe yazı tipleri xterm altında -font parametresi ile rahatlıkla görülebilir, böylelikle Türkçe okunabilir.  ftp://ftp.linux.org.tr/pub/turkceLinux Kullanıcıları Grubu adresinden temin edilecek Turkcebdf.tgz paketinin içinden çıkan küçük  program, Türkçe klavye dağılımını ayarlar. Bu program çalıştırıldıktan sonra Alt tuşu yardımıyla Türkçe karakterlerin basılması sağlanabilir. Örnek olarak Alt-u ile ü, Alt-i ile ı karakterleri görüntülenebilir.

Türkçe karakterleri görüntüleyebilmek için önceden Türkçe yazı tipleri sisteme kurulmuş olmalıdır.

Bu çözümlerin çalışması için X konfigürasyonu sırasında XKB istenip istenmediği sorusuna "Hayır", Alt keys -> Meta keys dönüşümü isteyip istenmediği sorusuna "Evet" yanıtı verilmelidir.

Ayrıca bazı yazılımlarda Türkçe harfleri kullanabilmek için iso8859-9 karakter seti seçilmelidir. Örneğin: pine'ın Setup -> Config menüsünde ya da .pinerc dosyasında bulunan character-set değişkenine iso8859-9 değeri verilmelidir. elm için de benzer şekilde .elmrc dosyasında ayarlama yapılmalıdır.