Konsolda Türkçe yazıtiplerinin görüntülenmesi ve Türkçe klavye kullanımı için bir miktar uğraşmamız
gerekiyor. Bu işlemi yapabilmek için standart bir yöntem mevcut değil. Mümkün olduğu kadar hızlı
bir şekilde Türkçe desteğini verebilmek için işlemlerimize başlayalım.
Öncelikle Türkçe klavye ayarlamalarından bahsedelim. Bunun için Linux yüklü sisteminizden
trq.kmap.gz dosyasını kopyalamanız gerekiyor. Bu dosya genellikle
/usr/share/keymaps/i386/qwerty dizini altında bulunur. Dosyayı buradan alıp SBC üzerinde
/usr/share/keymaps adında bir dizin yaratıp buraya atalım (i386 ..
gibi alt dizinleri de yaratmamıza gerek yok). Test için başka bir dizin içerisine, bu
sıkıştırılmış trq.kmap.gz dosyasını açarak dosyanın içeriğine bir metin düzenleyici
ile bakın. Eğer include euro gibi satırlar varsa bu durumda include
edilen bu dosyaları da taşımamız
gerekiyor. Bendeki sistemde euro, linux-keys-bare ve
linux-with-alt-and-altgr için include tanımları mevcut. Bu nedenle
aşağıdaki dosyaları
Linux yüklü sistemimdeki /usr/share/keymaps/include dizini altından kopyalayıp
SBC üzerindeki /usr/share/keymaps dizini altına atıyorum.
/usr/share/keymaps/include/euro.inc.gz
/usr/share/keymaps/include/linux-keys-bare.inc.gz
/usr/share/keymaps/include/linux-with-alt-and-altgr.inc.gz
Eğer bu belgedeki örnek üzerinden gidiyor ve dosya sistemi olarak minix seçmiş
iseniz linux-with-alt-and-altgr.inc.gz dosyasını kopyalarken File name
too long şeklinde bir hata almış olmalısınız :)
Bu hata mesajını almanız normaldir çünkü minix dosya sisteminde bir dosya ismi maksimum 30 karakter
uzunluğunda olabilir. Bu tamamen dosya sisteminde kaynaklanan bir sıkıntıdır. Eğer minix yerine
ext2 kullanıyor olsaydık böyle bir sorunumuz kalmayacaktı.
 | Not |
|---|
Aslında ilk geliştirilen minix dosya sisteminde dosya ismi uzunluğu maksimum 14 karakterdir. Burada
bahsedilen minix versiyon 2'dir ve standart haline gelmiştir. Versiyon 2 bir takım iyileştirmeler
içermektedir ve dosya adlarının 30 karaktere çıkması bunların başında gelmektedir.
|
Şimdi ne yapacağız? Elbette bu sorunun üstesinden gelmek için pek çok farklı yöntem mevcut. Ancak biz
trq.kmap.gz dosyası içerisinden include satırını ve dosya ismini değiştirmek
yerine sadece uzun olan dosyayı açarak .gz uzantısından kurtaracağız. Bu sayede
dosya ismi 28 karaktere inecek ve linux-with-alt-and-altgr.inc şeklini alacaktır.
Klavye kodlarını yükleyen programımız dosyanın hem sıkıştırılmış hem de açık haline baktığı için sorun
olmayacaktır. Dosyayı önce Linux yüklü sisteminizde gunzip ile açtıktan sonra disket,
ağ veya seri port üzerinden SBC'ye transfer edebilirsiniz.
Gerekli klavye dosyalarını attıktan sonra şimdi bunları sisteme yükleyebilmek için gerekli olan
loadkeys uygulamasını SBC sistemimiz üzerine taşıyalım. Bunun için öncelikle Linux
yüklü sistemimizde aşağıdaki komutla uygulamanın ihtiyaç duyduğu kütüphaneleri öğrenelim:
laptop:~/docbook/embedded$ ldd /bin/loadkeys
libcfont.so.0 => /lib/libcfont.so.0 (0x4001b000)
libctutils.so.0 => /lib/libctutils.so.0 (0x40020000)
libconsole.so.0 => /lib/libconsole.so.0 (0x40025000)
libc.so.6 => /lib/libc.so.6 (0x40035000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Buradaki libcfont.so.0, libctutils.so.0 ve
libconsole.so.0 kütüphaneleri SBC sistemimiz üzerinde henüz mevcut değil ve bu nedenle onların
da taşınması gerekiyor. Gerekli dosyaları taşıdıktan ve loadkeys uygulamasının
çalıştırma yetkisine sahip olduğundan emin olduktan sonra klavyemiz için gerekli kodların aşağıdaki
komutla yüklenmesini sağlayabiliriz:
/ # loadkeys /usr/share/keymaps/trq.kmap.gz
Loading /usr/share/keymaps/trq.kmap.gz
Artık klavyemiz hazır.
Klavye ile işimiz bittikten sonra sırada Türkçe konsol yazıtipini ayarlamak var. Ayrıntıya girmeden
doğrudan
nasıl yapacağınızı anlatmaya çalışacağım, ancak her zaman olduğu gibi kullandığımız uygulamaların
kılavuz sayfalarına (manual) vakit buldukça bakmanızda fayda var.
Öncelikle gerekli font dosyalarını SBC üzerine aktaralım. Bunun için öncelikle SBC üzerinde
/usr/share/consolefonts ve /usr/share/consoletrans dizinlerini
oluşturmalıyız. Ardından Linux sisteminizdeki /usr/share/consoletrans/iso09.acm.gz
ve /usr/share/consolefonts/iso9-16.psf.gz dosyalarını SBC üzerindeki aynı dizinlere
kopyalayınız.
Yazıtiplerini sisteme taşıdıktan sonra consolechars uygulamasını da Linux yüklü
sistemimizden taşımalıyız. İhtiyaç duyulan kütüphaneleri kontrol edip uygulamayı SBC üzerindeki
/bin dizini altına kopyalamalı ve çalıştırma hakları yoksa vermeliyiz.
Şimdi Alt - F1 ile girilen birinci sanal konsolda çalışıyorsanız Türkçe
fontları görebilmek için aşağıdaki komutları girmelisiniz:
/ # consolechars -f iso9-16
/ # consolechars --tty=/dev/tty1 -f iso9-16 -m iso09
/ # echo -en "\033(K" > /dev/tty1
/ # echo -en "\017" > /dev/tty1
Şimdi içerisinde bolca Türkçe karakterler olan bir dosyayı ağ, disket veya seri port üzerinden SBC
üzerine aktarıp cat dosya_adı komutuyla karakterlerin ekranda düzgün olarak görünüp
görünmediğini test edin. Eğer bir problem varsa işlem adımlarını tekrarlayın (özellikle yukarıdaki
komutları dikkatlice yazmayı deneyin).
Buraya kadar ki adımları sorunsuz bir şekilde atlattı iseniz şimdi de her sistem açılışında otomatik
olarak Türkçe ayarlamalarının yapılmasını sağlayalım. Dikkat ederseniz yazıtipi ayarlamalarını sanal
konsolların sadece biri için yaptık. Sistemimizdeki ilk dört konsol için Türkçe yazıtipi ayarlamalarının
yapılmasını istiyorsak /etc/config dosyamızın sonuna aşağıdaki gibi bir
satır ekleyelim:
TR_KONSOL="tty1 tty2 tty3 tty4"
Ardından /etc/init.d/rcS kabuk programımızın sonuna aşağıdaki satırları ekleyelim:
echo "Klavye ve fontlar ayarlanıyor"
loadkeys /usr/share/keymaps/trq.kmap.gz
consolechars -f iso9-16
for tty in ${TR_KONSOL}
do
consolechars --tty=/dev/$tty -f iso9-16 -m iso09
echo -en "\033(K" > /dev/$tty
echo -en "\017" > /dev/$tty
done
Bu sayede her açılışta ilk dört konsol için gerekli font ayarlamaları da yapılmış olacaktır. Bu sayıyı
artırmak veya azaltmak isterseniz tek yapmanız gereken /etc/config dosyanızdaki
TR_KONSOL değişkeninin değerine ilgili tty adlarını eklemek
veya çıkarmak olacaktır.
 | Not |
|---|
Konsolda Türkçe problemi burada anlattıklarımızla çözülüyor olmasına rağmen aynı şeyi BusyBox içerisinden
çıkan programlar için söylemek o kadar kolay değil. Busybox ile birlikte gelen kabuk olan
ash ve gene Busybox içinden çıkan vi editörü ile Türkçe
konusunda başarılı
olamadım. Ancak Linux yüklü bir sistemden kopyaladığım bash kabuğu ve
vi metin düzenleyici ile Türkçe karakterleri görüp yazabildim. Eğer aynı işi
BusyBox içerisindeki araçlarla yapabilir ve eposta ile beni de bilgilendirirseniz çok sevinirim.
|