NetBSD Konsolunda Turkce Klavyenin Kullanilmasi.
------------------------------------------------

Bu yazinin sonunda eger hersey yolunda giderse NetBSD konsolunda Turkce 
klavyemizi sorunsuzca kullanabilecegiz.
 
Direk NetBSD cekirdegine mudahalede bulunacagimiz icin bazi seyler ters 
giderse zor durumda kalmamak icin yedeklerinizi aliniz. NetBSD 
cekirdegini nasil derleyecegimizi ogrenmek icin ve cekirdek hakkinda 
bilgi sahibi olmak icin "NetBSD Kernel FAQ" okumanizda fayda var.

http://netbsd.org/Documentation/kernel/

NetBSD'yi bir masaustu yoneticisi ile kullanacaksak zaten XFree86'nin 
konfigurasyon dosyasina 

Option	"XkbLayout"	"tr"

satirini ekledigimizde X'de Turkce klavyemizi kullanabiliriz.

Bilindigi gibi OpenBSD cekirdeginde Turkce klavye destegi mevcut.
Bizde OpenBSD ve NetBSD kodlarini karsilastirarak NetBSD'mizde Turkce 
klavyemizi kullanabiliriz.

http://www.netbsd.org/Documentation/wscons/

adresindeki NetBSD'nin desteklemedigi klavyeleri calistirabilmemiz 
icin kurcalayacagimiz kodlar

sys/dev/wscons/wsksymdef.h
sys/dev/pckbport/wskbdmap_mfii.c

dosyalaridir.

OpenBSD 3.8'in kodlarindaki

sys/dev/wscons/wsksymdef.h
sys/dev/wscons/wskbdutil.c
sys/dev/pckbc/wskbdmap_mfii.c
sys/dev/usb/ukbdmap.c

ile

NetBSD 3.0'in kodlarindaki

sys/dev/wscons/wsksymdef.h
sys/dev/wscons/wskbdutil.c
sys/dev/pckbport/wskbdmap_mfii.c
sys/dev/usb/ukbdmap.c

karsilastirip olusturdugum patch dosyalarini NetBSD cekirdek kaynak koduna 
uygulayip, cekirdek  konfigurasyon dosyamiza

options         PCKBD_LAYOUT="(KB_TR)"

ozelligini ekleyip derledigimizde, turkce klavyemizi kullanabilecegiz.

ftp://ftp.enderunix.org/pub/OpenBSD/3.8/sys.tar.gz

adresinden OpenBSD3.8'in cekirdek kaynak kodlarini indirelim.

# mkdir /usr/openbsd
# cd /usr/openbsd
# tar xfvz ${DOWNLOAD_DIR}/sys.tar.gz

NetBSD kodlarimizin /usr/src dizini altinda oldugunu varsayiyorum.

# cd /usr/src/sys/dev/wscons/
# cp /usr/openbsd/sys/dev/wscons/wsksymdef.h wsksymdef.h.openbsd
# diff -u wsksymdef.h wsksymdef.h.openbsd > test1.diff
# patch < test01.diff

# cp /usr/openbsd/sys/dev/wscons/wskbdutil.c wskbdutil.c.openbsd
# diff -u wskbdutil.c wskbdutil.c.openbsd > test2.diff
# patch < test2.diff

# cd ../pckbport/
# cp /usr/openbsd/sys/dev/pckbc/wskbdmap_mfii.c wskbdmap_mfii.c.openbsd
# diff -u wskbdmap_mfii.c wskbdmap_mfii.c.openbsd > test3.diff
# vi wskbdmap_mfii.c

kodundaki 

#include 

satirini

#include 

degistirelim.

yada asagidaki patch'i test4.diff olarak kaydedip uygulayalim.


--- wskbdmap_mfii.c     2005-11-29 01:57:54.000000000 +0200
+++ wskbdmap_mfii.c.1   2005-11-29 02:01:32.000000000 +0200
@@ -47,7 +47,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 

 #define KC(n) KS_KEYCODE(n)


# patch < test4.diff

# cd ../usb/
# cp /usr/openbsd/sys/dev/usb/ukbdmap.c ukbdmap.c.openbsd
# diff -u ukbdmap.c ukbdmap.c.openbsd > test5.diff
# patch < test5.diff

# cd /usr/src/sys/arch/i386/conf/
# vi GENERIC

cekirdek konfigurasyon dosyamiza

options         PCKBD_LAYOUT="(KB_TR)"

satirini ekleyelim.

# config GENERIC
# cd ../compile/GENERIC
# make depend
# make
# cp /netbsd /netbsd.old
# mv netbsd /
# shutdown -r now

bilgisayarimizi yeniden baslattigimizda Turkce klavyeniz calisacaktir.
Ekte olusturdugum patch dosyalari vardir, patchleri gerekli yerlere koyup 
uygulayabilirsiniz yada kendiniz de yukaridaki gibi olusturabilirsiniz.

"Patchlerin Adresi"


Yapilmasi Dusunulenler:
1 - patchleri daha derli toplu hale getirmek.
2 - bastigimizda konsolda goruntulenmeyen karakterleri goruntulemek (s 
ve yumusak g)
3 - NetBSD'nin tamamen Turkce'yi desteklemesini saglamak icin girisimde 
bulunmak.

Kaynaklar:
1 - http://mail-index.netbsd.org/tech-kern/2005/07/01/0001.html
2 - http://www.netbsd.org/Documentation/wscons/


Eger bu yazi icin bir lisans gerekiyosa en cok hosuma giden beerware license'dir.

Baybars Uzunoglu
baybarsuNOSPAM_@_gmail.com