X Terminalinin Oluşturulması
Önceki X Terminal Sisteminin Yapılması Sonraki
X Terminalinin Oluşturulması
Knoppix'i istemci makinada çalıştırdığımızda X yapılandırmasını içeren iki dosya kopyalamıştık. Biri X çalıştırıldığında X'in okuyup kendini yapılandırdığı XF86Config dosyası, diğeri ise X çalıştığında yaptığı işlemleri günlüklediği XFree86.0.log dosyası. XF86Config dosyasını biraz değiştirip kullanacağız. XFree86.0.log dosyasından ise X çalıştığında hangi dosyaları yüklediğini öğrenip bu dosyaları sistemimize yerleştireceğiz ki, bizim sistemimizde çalıştırıldığında bu dosyaları bulabilsin. Ancak bu dosyalarda gereken bütün dosyalara ilişkin bilgi yok. Bazılarını da X çalıştığında verdiği hatalardan öğrendim. Siz de X çalıştırıldığında benzer hatalar alabilirsiniz. En azından benim aldığım hataları almayacaksınız. Çünkü ben en azından bu sistemi daha önce çalıştırdığım için gerekli bazı dosyaları biliyorum. Hemen ürkmeyin öyle; siz bir hata yapmamışsanız, büyük ihtimalle hiç hata almayacaksınız.
X ile ilgili herşey başlıca iki dizin altında bulunur: /usr/X11R6 ve /etc/X11. Bu iki dizinin yeri bütün dağıtımlarda aynıdır. Bu benzerliği bizde kullanıyoruz; bir farkla: /usr/X11R6 dizininin içeriğine baktığımızda kök dizine benzediğini görüyoruz. Bu benzerlikten yararlanarak /usr/X11R6 dizinini kök dizini gösteren bir bağ dosyası yapabiliyoruz. Böylece büyükçe ayrı bir dizin ağacı oluşturmak yerine kök dizinindeki dizin yapısından yararlanabiliyoruz. initrd dizininin içeriğini incelediğinizde bunun burada anlattığım şekilde oluşturulmuş olduğunu göreceksiniz. Yani, normal bir sistemde /usr/X11R6 altında olan herşeyi initrd dizini içindeki dizinlere yerleştireceğiz.
Önce /usr/X11R6/bin/X sembolik bağı ile bu bağın hedefindeki dosyayı kendi sistemimize yerleştirelim:
# cp -d /usr/X11R6/bin/X /a3/ramdisk/initrd/bin/
# cp /usr/X11R6/bin/XFree86 /a3/ramdisk/initrd/bin/
Bunun ardından XFree86'nın hangi kütüphanelere bağımlı olduğunu tespit edip bunları da sistemimize yerleştirelim:
# ldd /a3/ramdisk/initrd/bin/XFree86
        libz.so.1 => /usr/lib/libz.so.1 (0x40030000)
        libm.so.6 => /lib/i686/libm.so.6 (0x4003e000)
        libpam.so.0 => /lib/libpam.so.0 (0x40060000)
        libdl.so.2 => /lib/libdl.so.2 (0x40068000)
        libpam_misc.so.0 => /lib/libpam_misc.so.0 (0x4006b000)
        libc.so.6 => /lib/i686/libc.so.6 (0x4006e000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Bu kütüphanelerden son ikisini zaten sistemimize daha önce kopyalamıştık. Diğerlerini de kopyalayalım:
# cd /a3/ramdisk/initrd/lib
# cp -d /usr/lib/libz.so.1 ./
# cp -d /lib/libm.so.6 ./
# cp -d /lib/libpam.so.0 ./
# cp -d /lib/libdl.so.2 ./
# cp -d /lib/libpam_misc.so.0 ./
Sembolik bağları kopyaladık. Bu sembolik bağların hedefindeki dosyalar hatta bu sembolik bağlar bile sizin sisteminizde farklı olabilir. Ben benimkileri aşağıdaki gibi kopyaladım, siz de sizinkilerin hedeflerindeki dosyaları kopyalayın:
# cp /usr/lib/libz.so.1.1.4 ./
# cp /lib/libm-2.3.2.so ./
# cp /lib/libpam.so.0.77 ./
# cp /lib/libdl-2.3.2.so ./
# cp /lib/libpam_misc.so.0.77 ./
X'in çalışması için gerekli en temel koşulları sağladık. X çalıştıktan sonra sistem yapılandırmasını öğrenmek için /etc/X11/XF86Config dosyasına bakar ve oradaki verilere göre bazı kütüphaneleri ve dosyaları yükler. Hangi kütüphaneleri yüklediğini ise günlük kayıt dosyası olan /var/log/XFree86.0.log dosyasına yazar. Bu dosyaların birer kopyasını Knoppix sayesinde edinmiştik. Önce Knoppix için anlamlı olan XF86Config dosyasını kendi sistemimiz için anlamlı olan biçime getirmeliyiz. Bunun için önce "Files" bölümünde Fontpath satırını düzenleyeceğiz:
Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        FontPath     "tcp/10.10.10.1:7100"
EndSection
Dosyanın görünümü sizinkinde farklı olabilir ama işe yarayan satırlar, bunlar. FontPath satırını yukarıdaki gibi düzenleyin. Bu satırdaki 10.10.10.1, xfs sunucusunun çalıştığı makinanın IP adresi olmalı. Bu satır sayesinde X çalıştırıldığında gerekli yazıtiplerini bu adresteki xfs sunucusundan yükleyecek.
İkinci düzenleme klavye ile ilgili. Şüphesiz Türkçe karakterleri kullanmak isteyeceksiniz. Klavye ile ilgili bölüm fazlalıkları temizlenmiş olarak aşağıdaki gibi olmalı:
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbRules" "xfree86"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "tr_q,tr_f"
        Option      "XkbOptions" "caps:shift,grp:shift_toggle"
EndSection
Bu yapılandırma, her iki Shift tuşuna birlikte basıldığında Q ve F klavyeleri arasında geçiş yapar.
Uyarı
Bu yapılandırma standart X ile uyumlu değildir. Sistem bu özel duruma göre yapılandırılacaktır (Türkçe X klavyesinin yazarından bir hediye).
Bu düzenlemeleri yaptıktan sonra dosyayı /a3/ramdisk/initrd/etc/X11 dizini altına kopyalayın.
İstemci makinalardaki fare, bir PS/2 fare ise dev dizinindeki mouse sembolik bağını psaux dosyasını gösterecek duruma getirmelisiniz (Normalde birinci seri portu gösterir).
Şimdi sıra XFree86.0.log dosyasına bakarak gerekli kütüphaneleri sistemimize yerleştirmeye geldi. XFree86.0.log dosyasına baktığınızda (II) Loading ile başlayan aşağıdakine benzer satırlar göreceksiniz:
(II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a
Bu satırlar sistemimize kopyalamamız gereken kütüphane dosyalarını belirtir. Bu satırlara bakarak, X'in aynı dosya yolunda aynı dosyayı bulabilmesini sağlamamız gerekir. Yukarıdaki dosya için bu işlem şöyle yapılmalıdır:
# cp /usr/X11R6/lib/modules/fonts/libbitmap.a /a3/ramdisk/initrd/lib/modules/fonts/
Bu işlemi benzer şekilde XFree86.0.log dosyasındaki diğer kütüphane yükleme satırları için yapın. XFree86.0.log dosyasından önce bu satırları seçiyorum:
# cat XFree86.0.log | grep "Loading /"
(II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a
(II) Loading /usr/X11R6/lib/modules/libpcidata.a
(II) Loading /usr/X11R6/lib/modules/extensions/libdbe.a
(II) Loading /usr/X11R6/lib/modules/extensions/libextmod.a
(II) Loading /usr/X11R6/lib/modules/linux/libfbdevhw.a
(II) Loading /usr/X11R6/lib/modules/extensions/libglx.a
(II) Loading /usr/X11R6/lib/modules/extensions/libGLcore.a
(II) Loading /usr/X11R6/lib/modules/extensions/librecord.a
(II) Loading /usr/X11R6/lib/modules/fonts/libfreetype.a
(II) Loading /usr/X11R6/lib/modules/fonts/libtype1.a
(II) Loading /usr/X11R6/lib/modules/extensions/libdri.a
(II) Loading /usr/X11R6/lib/modules/linux/libdrm.a
(II) Loading /usr/X11R6/lib/modules/drivers/s3virge_drv.o
(II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o
(II) Loading /usr/X11R6/lib/modules/libvgahw.a
(II) Loading /usr/X11R6/lib/modules/libvbe.a
(II) Loading /usr/X11R6/lib/modules/linux/libint10.a
(II) Loading /usr/X11R6/lib/modules/libddc.a
(II) Loading /usr/X11R6/lib/modules/libi2c.a
(II) Loading /usr/X11R6/lib/modules/libfb.a
(II) Loading /usr/X11R6/lib/modules/libxaa.a
(II) Loading /usr/X11R6/lib/modules/libramdac.a
Bu liste büyük ihtimalle sizin için farklı olacaktır. Şimdi bu listeye göre bu dosyaları ramdisk sistemine kopyalayacağım:
# cd /a3/ramdisk/initrd/lib/modules
# cp /usr/X11R6/lib/modules/fonts/libbitmap.a ./fonts/
# cp /usr/X11R6/lib/modules/libpcidata.a ./
# cp /usr/X11R6/lib/modules/extensions/libdbe.a ./extensions/
# cp /usr/X11R6/lib/modules/extensions/libextmod.a ./extensions/
# cp /usr/X11R6/lib/modules/linux/libfbdevhw.a ./linux/
# cp /usr/X11R6/lib/modules/extensions/libglx.a ./extensions/
# cp /usr/X11R6/lib/modules/extensions/libGLcore.a ./extensions/
# cp /usr/X11R6/lib/modules/extensions/librecord.a ./extensions/
# cp /usr/X11R6/lib/modules/fonts/libfreetype.a ./fonts/
# cp /usr/X11R6/lib/modules/fonts/librecord.a ./fonts/
# cp /usr/X11R6/lib/modules/extensions/libdri.a ./extensions/
# cp /usr/X11R6/lib/modules/linux/libdrm.a ./linux/
# cp /usr/X11R6/lib/modules/input/mouse_drv.o ./input/
# cp /usr/X11R6/lib/modules/libvgahw.a ./
# cp /usr/X11R6/lib/modules/libvbe.a ./
# cp /usr/X11R6/lib/modules/linux/libint10.a ./linux/
# cp /usr/X11R6/lib/modules/libddc.a ./
# cp /usr/X11R6/lib/modules/libi2c.a ./
# cp /usr/X11R6/lib/modules/libfb.a ./
# cp /usr/X11R6/lib/modules/libxaa.a ./
# cp /usr/X11R6/lib/modules/libramdac.a ./
X bunlardan başka klavye için gereken bazı dosyaları da arar ve bunlar günlük dosyasında görünmezler. Şimdi bu dosyaları yükleyeceğiz. Yalnız bu dosyaları sadece türkçe klavye yüklenecek biçimde küçülteceğiz. Bu işlemleri burada anlattığım gibi aynen yapmalısınız. Önce gerekli dizinleri oluşturun:
# cd /a3/ramdisk/initrd/lib/X11/xkb
# mkdir compat geometry keycodes keymap rules semantics symbols symbols/pc types
# ln -s ../../../var/lib/xkb compiled
xkbcomp dosyasını kopyalayalım ve hangi kütüphanelere ihtiyaç duyduğuna bakalım:
# cp /usr/X11R6/lib/X11/xkb/xkbcomp ./
# ldd ./xkbcomp
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40030000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4003e000)
        libc.so.6 => /lib/i686/libc.so.6 (0x4011d000)
        libdl.so.2 => /lib/libdl.so.2 (0x40258000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Son 3 kütüphane zaten var. Diğerlerini kopyalamamız lazım:
# cd /a3/ramdisk/initrd/lib
# cp -d /usr/X11R6/lib/libXext.so.6 ./
# cp -d /usr/X11R6/lib/libX11.so.6 ./
# cp /usr/X11R6/lib/libXext.so.6.4 ./
# cp /usr/X11R6/lib/libX11.so.6.2 ./
# cd /a3/ramdisk/initrd/lib/X11/xkb
Bu dizinde 6 tane de dosya bulunacak. Bu dosyalar ve içerikleri aşağıdaki gibi olmalı. Ben basitçe dosyaları cat komutu ile aldığım konsol çıktılarını aşağıya kopyaladım, siz bunları dosya haline getirin. (Bu dosyalar sisteminizde de vardır ama genel amaçlı olduklarından çok yer kaplarlar, bu dosyalar fazlalıklarından temizlenmiştir. Ama, sisteminizdeki dosyaları değiştirmeyin, sakın. Sabit diske kurulmuş bir sistemin böyle bir yer kazancına ihtiyacı yoktur.):
# cat compat.dir
-dp----- -------- accessx(basic)
--p----- -------- accessx(full)
-d------ -------- basic(basic)
-d------ -------- complete(complete)
-d------ -------- default(default)
-d------ -------- group_led(group_led)
-dp----- -------- iso9995(default)
h-p----- -------- keypad(overlay)
h-p----- -------- keypad(overlay1)
h-p----- -------- keypad(overlay2)
--p----- -------- leds(scroll)
--p----- -------- leds(num)
--p----- -------- leds(caps)
-dp----- -------- misc(misc)
-dp----- -------- mousekeys(mousekeys)
-dp----- -------- norepeat(norepeat)
-dp----- -------- pc(pc)
-dp----- -------- xfree86(basic)
-d------ -------- xtest(xtest)
# cat geometry.dir
-d------ -------- pc(pc101)
-------- -------- pc(pc102)
-------- -------- pc(pc104)
-------- -------- pc(pc105)
# cat keycodes.dir
-d------ -------- xfree86(xfree86)
-------- -------- xfree86(basic)
-------- -------- xfree86(102)
-d------ -------- xfree86.xkb-broken-capslock-fix-CVS11006(xfree86)
-------- -------- xfree86.xkb-broken-capslock-fix-CVS11006(basic)
-------- -------- xfree86.xkb-broken-capslock-fix-CVS11006(102)
# cat keymap.dir
-------- -------- xfree86(tr_q)
-------- -------- xfree86(tr_f)
# cat symbols.dir
--p----- -m------ altwin(meta_alt)
--p----- -m------ altwin(meta_win)
--p----- -m------ altwin(left_meta_win)
--p----- -m------ altwin(super_win)
--p----- -m------ altwin(hyper_win)
--p----- -m------ altwin(menu)
--p----- -m------ compose(ralt)
--p----- -m------ compose(rwin)
--p----- -m------ compose(menu)
--p----- -m------ ctrl(nocaps)
--p----- -m------ ctrl(swapcaps)
--p----- -m------ ctrl(ctrl_ac)
--p----- -m------ ctrl(ctrl_aa)
--p----- -m------ group(switch)
--p----- -m------ group(lswitch)
--p----- -m------ group(win_switch)
--p----- -m------ group(lwin_switch)
--p----- -m------ group(rwin_switch)
--p----- -m------ group(toggle)
--p----- -m------ group(shift_toggle)
--p----- -m------ group(ctrl_shift_toggle)
--p----- -m------ group(caps_toggle)
--p----- -m------ group(ctrl_alt_toggle)
--p----- -m------ group(alt_shift_toggle)
--p----- -m------ group(menu_toggle)
--p----- -m------ group(lwin_toggle)
--p----- -m------ group(rwin_toggle)
--p----- -m------ group(ctrls_toggle)
--p----- -m------ group(alts_toggle)
--p----- -m------ group(lshift_toggle)
--p----- -m------ group(rshift_toggle)
--p----- -m------ group(lalt_toggle)
--p----- -m------ group(lctrl_toggle)
--p----- -m------ group(rctrl_toggle)
h-p----- am--g--- iso9995-3(full_common)
--p----- am--g--- iso9995-3(full)
--p----- am--g--- iso9995-3(full101)
h-p----- --k----- keypad(overlay)
h-p----- --k----- keypad(overlay1)
h-p----- --k----- keypad(overlay2)
--p----- -m------ level3(switch)
--p----- -m------ level3(ralt_switch)
--p----- -m------ level3(ralt_switch_multikey)
--p----- -m------ level3(menu_switch)
--p----- -m------ level3(win_switch)
--p----- -m------ level3(lwin_switch)
--p----- -m------ level3(rwin_switch)
h-p----- -m------ lock(shift)
h-p----- -m------ lock(caps)
h-p----- -m------ lock(group)
-dp----- -m------ pc104(altmeta)
-------- -------- pc104(compose)
--p----- -m------ pc104(menu)
--p----- --kf---- srvr_ctrl(xfree86)
--p----- --k----- srvr_ctrl(stdkeypad)
--p----- ---f---- srvr_ctrl(fkey2vt)
-dp----- -------- pc/latin(basic)
--p----- -------- pc/latin(type2)
--p----- -------- pc/latin(type3)
--p----- -------- pc/latin(type4)
--p----- -------- pc/latin(nodeadkeys)
--p----- -------- pc/latin(type2_nodeadkeys)
--p----- -------- pc/latin(type3_nodeadkeys)
--p----- -------- pc/latin(type4_nodeadkeys)
h-p----- am------ pc/pc(basic)
-------- -------- pc/pc(pc101)
-------- -------- pc/pc(pc102)
-d------ -------- pc/pc(pc104)
-------- -------- pc/pc(pc105)
-------- -------- pc/pc(common)
-dp----- -------- pc/tr_q(basic)
--p----- -------- pc/tr_f(basic)
-dp----- -------- pc/tr.xkb-broken-capslock-fix-CVS11006(basic)
h-p----- am------ pc/pc.xkb-sysreq(basic)
-------- -------- pc/pc.xkb-sysreq(pc101)
-------- -------- pc/pc.xkb-sysreq(pc102)
-d------ -------- pc/pc.xkb-sysreq(pc104)
-------- -------- pc/pc.xkb-sysreq(pc105)
-------- -------- pc/pc.xkb-sysreq(common)
--p----- -m------ level3.xkb-broken-capslock-fix-CVS11006(switch)
--p----- -m------ level3.xkb-broken-capslock-fix-CVS11006(menu_switch)
--p----- -m------ level3.xkb-broken-capslock-fix-CVS11006(win_switch)
--p----- -m------ level3.xkb-broken-capslock-fix-CVS11006(lwin_switch)
--p----- -m------ level3.xkb-broken-capslock-fix-CVS11006(rwin_switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(ralt_switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(ralt_switch_multikey)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(menu_switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(win_switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(lwin_switch)
--p----- -m------ level3.xkb-ru-group-number-fix-CVS11092(rwin_switch)
# cat types.dir
-d------ -------- basic(basic)
-dp----- -------- cancel(Shift_Cancels_Caps)
--p----- -------- caps(internal)
--p----- -------- caps(internal_nocancel)
--p----- -------- caps(shift)
--p----- -------- caps(shift_nocancel)
-d------ -------- complete(complete)
-d------ -------- default(default)
-dp----- -------- extra(default)
-dp----- -------- iso9995(default)
-dp----- -------- mousekeys(default)
-dp----- -------- nocancel(nocancel)
-dp----- -------- pc(default)
compat dizini için aşağıdaki işlemleri yapın:
# cp /usr/X11R6/lib/X11/xkb/compat/* ./compat/
# rm -f ./compat/README
geometry dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/xkb/geometry/pc ./geometry/
keycodes dizini için aşağıdaki işlemleri yapın:
# cp /usr/X11R6/lib/X11/xkb/keycode/aliases ./geometry/
# cp /usr/X11R6/lib/X11/xkb/keycode/xfree86 ./geometry/
keymap dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/xkb/keymap/xfree86 ./keymap/
rules dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/xkb/rules/xfree86 ./rules/
semantics dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/xkb/semantics/* ./semantics/
symbols dizinine, /usr/X11R6/lib/X11/xkb/symbols/ dizininden altwin, ctrl, iso9995-3, level3, lt_std, pc104, srvr_ctrl, us_group3, compose, group, keypad, lock, ralt, us_group2 ve us_intl dosyalarını kopyalayın.
symbols/pc dizinine, /usr/X11R6/lib/X11/xkb/symbols/pc dizininden latin ve pc dosyalarını kopyalayın. Aşağıdaki 2 dosyayı oluşturun:
# cat tr_q
// based on
// Turkish keyboard symbols for PC and xkb
// This file distributed without any expressed or implied warranty
// Nilgün Belma Bugüner <nilgun@superonline.com>, 2004
//
//Default Layout (Turkish Q)
default partial
xkb_symbols "basic" {

    include "pc/latin"

    name[Group1]="Turkish_Q";

    key <AE01>  { [         1,    exclam,    onesuperior,    exclamdown ] };
    key <AE02>  { [         2, apostrophe,      sterling,   twosuperior ] };
    key <AE03>  { [        3, asciicircum,    numbersign, threesuperior ] };
    key <AE04>  { [         4,       plus,        dollar,    onequarter ] };
    key <AE06>  { [         6,  ampersand, threequarters,    VoidSymbol ] };
    key <AE07>  { [         7,      slash,     braceleft,    VoidSymbol ] };
    key <AE08>  { [         8,  parenleft,   bracketleft,    VoidSymbol ] };
    key <AE09>  { [         9, parenright,  bracketright,     plusminus ] };
    key <AE10>  { [         0,      equal,    braceright,        degree ] };
    key <AE11>  { [  asterisk,   question,     backslash,  questiondown ] };
    key <AE12>  { [     minus, underscore,      division,    VoidSymbol ] };

    key <AD02>  { [         w,          W,   VoidSymbol,   VoidSymbol ] };
    key <AD03>  { [         e,          E,     EuroSign,   VoidSymbol ] };
    key <AD05>  { [         t,          T,    trademark,   VoidSymbol ] };
    key <AD07>  { [         u,          U,  ucircumflex,  Ucircumflex ] };
    key <AD08>  { [  idotless,          I,  icircumflex,  Icircumflex ] };
    key <AD09>  { [         o,          O,  ocircumflex,  Ocircumflex ] };
    key <AD10>  { [         p,          P,   VoidSymbol,   VoidSymbol ] };
    key <AD11>  { [    gbreve,     Gbreve ] };
    key <AD12>  { [udiaeresis, Udiaeresis,   asciitilde,  dead_macron ] };

    key <AC01>  { [         a,          A,  acircumflex,  Acircumflex ] };
    key <AC02>  { [         s,          S,      section,   VoidSymbol ] };
    key <AC03>  { [         d,          D,   VoidSymbol,   VoidSymbol ] };
    key <AC04>  { [         f,          F,  ordfeminine,   VoidSymbol ] };
    key <AC05>  { [         g,          G,   VoidSymbol,   VoidSymbol ] };
    key <AC06>  { [         h,          H,   VoidSymbol,   VoidSymbol ] };
    key <AC08>  { [         k,          K,   VoidSymbol,   VoidSymbol ] };
    key <AC09>  { [         l,          L,   VoidSymbol,   VoidSymbol ] };
    key <AC10>  { [  scedilla,   Scedilla,        acute,   dead_acute ] };
    key <AC11>  { [         i,  Iabovedot,   apostrophe,   dead_caron ] };
    key <TLDE>  { [  quotedbl,  backslash,    plusminus,       degree ] };

    key <BKSL>  { [     comma,  semicolon,        grave,   dead_grave ] };
    key <LSGT>  { [      less,    greater,          bar,    brokenbar ] };
    key <AB08>  { [odiaeresis, Odiaeresis,     multiply,   VoidSymbol ] };
    key <AB09>  { [  ccedilla,   Ccedilla, periodcentered,     division ] };
    key <AB10>  { [    period,      colon, dead_abovedot, dead_abovedot ] };
    key <SPCE>  { [     space,      space, nobreakspace,   nobreakspace ] };

    include "level3(ralt_switch_multikey)"
    modifier_map Mod5   { <RALT> };
};
# cat tr_f
// based on
// Turkish keyboard symbols for PC and xkb
// This file distributed without any expressed or implied warranty
// Nilgün Belma Bugüner <nilgun@superonline.com>, 2004
//
//Default Layout (Turkish F)
default partial
xkb_symbols "basic" {

    include "pc/latin"

    name[Group1]="Turkish_F";

    key <AE01>  { [         1,     exclam,  onesuperior,   exclamdown ] };
    key <AE02>  { [         2,   quotedbl,  twosuperior,   VoidSymbol ] };
    key <AE03>  { [         3, asciicircum, numbersign, threesuperior ] };
    key <AE04>  { [         4,     dollar,   onequarter,   VoidSymbol ] };
    key <AE06>  { [         6,  ampersand, threequarters,  VoidSymbol ] };
    key <AE07>  { [         7, apostrophe,    braceleft,   VoidSymbol ] };
    key <AE08>  { [         8,  parenleft,  bracketleft,   VoidSymbol ] };
    key <AE09>  { [         9, parenright, bracketright,    plusminus ] };
    key <AE10>  { [         0,      equal,   braceright,       degree ] };
    key <AE11>  { [     slash,   question,    backslash, questiondown ] };
    key <AE12>  { [     minus, underscore,     division,   VoidSymbol ] };

    key <AD01>  { [         f,          F,           at,   VoidSymbol ] };
    key <AD02>  { [         g,          G,   VoidSymbol,   VoidSymbol ] };
    key <AD03>  { [    gbreve,     Gbreve,   VoidSymbol,   VoidSymbol ] };
    key <AD04>  { [  idotless,          I,    paragraph,   VoidSymbol ] };
    key <AD05>  { [         o,          O,  ocircumflex,  Ocircumflex ] };
    key <AD06>  { [         d,          D,          yen,   VoidSymbol ] };
    key <AD07>  { [         r,          R,   registered,   VoidSymbol ] };
    key <AD08>  { [         n,          N,   VoidSymbol,   VoidSymbol ] };
    key <AD09>  { [         h,          H,       degree,   VoidSymbol ] };
    key <AD10>  { [         p,          P,     sterling,   VoidSymbol ] };
    key <AD11>  { [         q,          Q, dead_diaeresis, dead_abovering ] };
    key <AD12>  { [         w,          W,   asciitilde,   dead_breve ] };

    key <AC01>  { [         u,          U,  ucircumflex,  Ucircumflex ] };
    key <AC02>  { [         i,  Iabovedot,  icircumflex,  Icircumflex ] };
    key <AC03>  { [         e,          E,     EuroSign,   VoidSymbol ] };
    key <AC04>  { [         a,          A,  acircumflex,  Acircumflex ] };
    key <AC05>  { [udiaeresis, Udiaeresis,  ucircumflex,  Ucircumflex ] };
    key <AC06>  { [         t,          T,    trademark,   VoidSymbol ] };
    key <AC07>  { [         k,          K,   VoidSymbol,   VoidSymbol ] };
    key <AC08>  { [         m,          M,           mu,   VoidSymbol ] };
    key <AC09>  { [         l,          L,   VoidSymbol,   VoidSymbol ] };
    key <AC10>  { [         y,          Y,        acute,   dead_acute ] };
    key <AC11>  { [  scedilla,   Scedilla,   numbersign,   dead_caron ] };
    key <TLDE>  { [      plus,   asterisk,      notsign,    plusminus ] };

    key <BKSL>  { [         x,          X,        grave,   dead_grave ] };
    key <AB01>  { [         j,          J, guillemotleft,  VoidSymbol ] };
    key <AB02>  { [odiaeresis, Odiaeresis, guillemotright, VoidSymbol ] };
    key <AB03>  { [         v,          V, leftdoublequotemark, VoidSymbol ] };
    key <AB04>  { [         c,          C,         cent,    copyright ] };
    key <AB05>  { [  ccedilla,   Ccedilla, rightdoublequotemark, VoidSymbol] };
    key <AB06>  { [         z,          Z,   VoidSymbol,   VoidSymbol ] };
    key <AB07>  { [         s,          S,      section,   VoidSymbol ] };
    key <AB08>  { [         b,          B,     multiply, nobreakspace ] };
    key <AB09>  { [    period,      colon,     division, dead_abovedot] };
    key <AB10>  { [     comma,  semicolon, periodcentered, VoidSymbol ] };
    key <SPCE>  { [    space,       space, nobreakspace, nobreakspace ] };
    key <LSGT>  { [     less,     greater,          bar,    brokenbar ] };

    include "level3(ralt_switch_multikey)"
    modifier_map Mod5   { <RALT> };
};
types dizini için aşağıdaki işlemleri yapın:
# cp /usr/X11R6/lib/X11/xkb/types/* ./types/
# rm -f ./types/README
Klavye yapılandırması ile ilgili olarak /a3/ramdisk/initrd/lib/X11/locale dizininde de bazı işlemler yapacağız. Önce bize gereken dizinleri açalım:
# cd /a3/ramdisk/initrd/lib/X11/locale
# mkdir C en_US.UTF-8 iso8859-9 lib lib/common
Bu dizinde 3 dosya oluşturacağız. Bunlar:
# cat compose.dir
iso8859-1/Compose               C
iso8859-1/Compose               en_US.ISO8859-1
iso8859-9/Compose               tr_TR.ISO8859-9
#
en_US.UTF-8/Compose             en_US.UTF-8
en_US.UTF-8/Compose             tr_TR.UTF-8
# cat locale.alias
POSIX                                           C
POSIX-UTF2                                      C
C_C.C                                           C
C.en                                            C
C.iso88591                                      en_US.ISO8859-1
Cextend                                         en_US.ISO8859-1
Cextend.en                                      en_US.ISO8859-1
English_United-States.437                       C
en_US                                           en_US.ISO8859-1
en_US.88591                                     en_US.ISO8859-1
en_US.88591.en                                  en_US.ISO8859-1
en_US.iso88591                                  en_US.ISO8859-1
en_US.iso885915                                 en_US.ISO8859-15
en_US.ISO-8859-1                                en_US.ISO8859-1
en_US.ISO_8859-1                                en_US.ISO8859-1

tr                                              tr_TR.ISO8859-9
tr_TR                                           tr_TR.ISO8859-9
tr_TR.iso88599                                  tr_TR.ISO8859-9
tr_TR.ISO-8859-9                                tr_TR.ISO8859-9
tr_TR.utf8                                      tr_TR.UTF-8

tr:                                             tr_TR.ISO8859-9
tr_TR:                                          tr_TR.ISO8859-9
tr_TR.iso88599:                                 tr_TR.ISO8859-9
tr_TR.ISO-8859-9:                               tr_TR.ISO8859-9
tr_TR.utf8:                                     tr_TR.UTF-8
# cat locale.dir
C/XLC_LOCALE                            C
iso8859-1/XLC_LOCALE                    en_US.ISO8859-1
iso8859-9/XLC_LOCALE                    tr_TR.ISO8859-9
en_US.UTF-8/XLC_LOCALE                  en_US.UTF-8
en_US.UTF-8/XLC_LOCALE                  tr_TR.UTF-8

C/XLC_LOCALE:                           C
iso8859-15/XLC_LOCALE:                  en_US.ISO8859-15
iso8859-9/XLC_LOCALE:                   tr_TR.ISO8859-9
en_US.UTF-8/XLC_LOCALE:                 en_US.UTF-8
en_US.UTF-8/XLC_LOCALE:                 tr_TR.UTF-8
C dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/locale/C/* ./C/
en_US.UTF-8 dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/locale/en_US.UTF-8/* ./en_US.UTF-8/
iso8859-9 dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/locale/iso8859-9/* ./iso8859-9/
lib/common dizini için aşağıdaki işlemi yapın:
# cp /usr/X11R6/lib/X11/locale/lib/common/* ./lib/common/
Bu dosyalardan başka X'in yüklediği bazı dosyalar var. Bunları bulamazsa hata verip çalışmasını durduruyor. Siz böyle bir durumda X terminaliniz çalışmazsa komut satırından cat /var/log/XFree86.0.log komutunu verip, hatanın sebebini öğrenip X'in aradığı dosyayı sisteminize eklemelisiniz.
Son işlemlerden olarak, aşağıdaki işlemleri yapın:
# cd /a3/ramdisk/initrd/lib/X11
# cp /usr/X11R6/lib/X11/app-defaults/Xmessage ./app-defaults/
# cp /usr/X11R6/lib/X11/Cards ./
# cp /usr/X11R6/lib/X11/Options ./
# cp /usr/X11R6/lib/X11/rgb.txt ./
# cp /usr/X11R6/lib/X11/XErrorDB ./
# cp /usr/X11R6/lib/X11/XKeysymDB ./
# ln -s /etc/X11/XF86Config
# cd /a3/ramdisk/etc/X11
# ln -s ../../bin/XFree86 X
# cp /etc/X11/xserver/SecurityPolicy ./xserver/
X ile ilgili olarak sistemin yapılandırılması bitti. Şimdi açılış sırasında X'in yüklenmesini sağlayacak işlemleri yapalım. etc/inittab dosyasını aşağıdaki biçime getirin:
::sysinit:/etc/init.d/baslat

tty1::askfirst:/bin/busybox sh
tty2::askfirst:/bin/X -query 10.10.10.1

::ctrlaltdel:/bin/reboot -d 0
::restart:/sbin/init
Bu dosyanın bir önceki inittab dosyasından farkı tty2::askfirst:/bin/X -query 10.10.10.1 satırı. Bu satırla 2. konsola geçip enter tuşuna bastığımızda X çalıştırılacak. -query 10.10.10.1 seçeneği ile de bağlanacağı X sunucusunun IP adresini belirtiyoruz.
etc/init.d/baslat betiğine de bazı açıklamalar koysak iyi olur. Dosyanın sonununa aşağıdaki satırları ya da siz ne uygun görürseniz yazın. Bu, sadece, X terminalinin kullanıcısına bilgi vermek için:
clear

echo ""
echo ""
echo ""
echo "          +-----------------------------------------------+"
echo "          | X oturumunu baslatmak icin: ALT-F2 ve ENTER   |"
echo "          |                                               |"
echo "          | X Oturumunundan cikmak icin : CTRL-ALT-F1     |"
echo "          |                                               |"
echo "          | Sistemi kapatmak icin:                        |"
echo "          | X oturumundan ciktiktan sonra poweroff yazip  |"
echo "          | ENTER'a basin.                                |"
echo "          +-----------------------------------------------+"

exit 0
Son olarak, initrdyap betiğini çalıştırıp initrd.img dosyasını oluşturduktan sonra istemci makinaya geçip, netlogon dizinindeki betiği çalıştırıp dosyaları windows'a aktarın ve LINUX OL simgesine tıklayıp yaptıklarınızı deneyin.
Sunucu makinaya bağlantı kurulduğunda karşınıza gdm'nin oturum açma ekranı gelecek. 10 saniye içinde bir kullanıcı ismi ve parolası vermezseniz talebe kullanıcısı ile size bir oturum açılacaktır. Bu noktadan sonra artık sunucu makinanın bir kullanıcısı olacaksınız ve ev dizininiz /home/talebe dizini olacaktır. Eğer tüm X terminali kullanıcılarının ayrı ev dizinleri olmasını isterseniz (hepsi talebe'nin ev dizinini kullanırsa kavga çıkabilir) onlar için sunucu makina üzerinde kullanıcı oluşturup, daha sonra değiştirmelerini söyleyerek bir parola vermelisiniz. Kullanıcılar sisteme kendi kullanıcı isimleriyle bağlandıktan sonra parolalarını passwd komutu ile değiştirebilirler. talebe kullanıcısı için bunu yapamazlar, çünkü yapmaları sistem tarafından engellenir.
/a3/ramdisk/initrd dizini altındaki sistemin ne kadar yer kapladığını du /a3/ramdisk/initrd komutunu vererek öğrenebilirsiniz. Çıktının son satırı dizinin sabit diskte kapladığı alanı kB cinsinden verir. Bu değer benim oluşturduğum sistem için 11279 kB idi. Eğer oluşturduğunuz sistem (12000 - 500) kB'ı aşıyorsa, initrdyap betiğindeki 12000 lik değeri arttırmalısınız. linux.bat dosyasında da bu değeri değiştirmelisiniz. X terminalinin konsolunda df -k komutu ile ramdiskin boyutunu ve ne kadarının kullanıldığı ile ne kadar yerin boş olduğunu öğrenebilirsiniz. Bu değerlere bakarak initrd.rd dosyasının boyutunun ne olması gerektiği hakkında bir fikir edinebilirsiniz. Ben 200 kB kadar bir boş alan kalmasına dikkat ettim ve bu dosyayı initrdyap betiği ile 12000 kB olarak oluşturdum. Çok sınır değerler için initrdyap betiği hata verecektir. Biraz bol tutmakta (ben ~700 kB kadar artı yer ayırdım) yarar var.
Önceki Üst Ana Başlık Sonraki
Ağa Bağlanan Linux Terminali Başlangıç Sonuç
Bir Linux Kitaplığı Sayfası