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ında 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.
|