Pardus Lirc Kurulumu
From Lapis Wiki
Konu başlıkları |
GİRİŞ
Lirc(Linux Infrared Remote Control) bilgisayarınızı uzaktan kumanda ile kontrol etmek için yazılmış bi programdır. Tv kartınızın kumandasını kullanabileceğiniz gibi bilgisayarınızın seri portuna bağlıyabileceğiniz ufak bir alıcı devresi(kendiniz yapabilirsiniz) kullanarak da bunu gerçekleştirebilirsiniz.
Lirc Kullanan bazı yazılımlar;
Mplayer Totem Tvtime Xmms ...
Kısacası Linux dağıtımınızı bir media center a dönüştürebilirsiniz.
Bu kurulum hazırlanırken Pardus 2007 kullanıldı. Yazıyı hazırlarkenki kernel sürümü 2.6.18.6-71 idi.Dikkat edilmelidir ki her yeni kernel güncellenmesinde bu kurulum işlemleri tekrarlanmalıdır. Lirc düzgün kullanabilmek için ev klasörünün altında .lircrc dosyası hazırlanmalıdır ve irexec programı sistem başladığında otomatik başlatılmalıdır.
HAZIRLIK
Lirc paketi mplayer ile bağımlı olduğundan paketleri Pardus 2007 de hazır kurulu olarak gelmektedir. Ama bu paketlerin kurulu olması kumanda için yeterli değil. Aslında biz sadece kaynak kod kullanıp kuracak ve paketlerle gelen binary dosyaların üzerine yazıp en son lirc versyonunun kurulumunu gerçekleştireceğiz.
Lirc paketinin derlenmesi için kernel kaynak koda ihtiyacı var o yüzden kernel-source paketini aşağıdaki gibi kuruyoruz. Aşağıdaki komutu terminalde veriyoruz.Yaklaşık 40mb bir dosya indirilecek ve kurulacak
sudo pisi install kernel-source
Kurulum gerçekleştiğine göre, kaynak kodundan derleme yapmak için kullanmakta olduğumuz kernel in .config dosyasına ihtiyacımız var. bu dosya /proc/config.gz olarak saklanmaktadır. bu dosyayı arşiden çıkarıp kernel-source tree ye kopyalamamız gerek. Aşağıdaki şekilde yapıyoruz. Super user olmamız gerekiyor.
su cp /proc/config.gz /usr/src cd /usr/src gzip -d config.gz mv config linux/.config cd linux make oldconfig
Kernel artık lirc paketinin derlenmesi için hazırlanmış durumda artık lirc kurulumuna geçebiliriz.
KURULUM
Şimdi lirc kaynak kodlarını sitesinden indiriyoruz.Bu yazı yazılırken en son lirc sürümü 0.8.1 idi. Aşağıdaki linkden masaüstünüze indiriyoruz. Eğer farklı bir ayar yapmadıysanız firefox masaüstüne indirecekdir.
http://prdownloads.sourceforge.net/lirc/lirc-0.8.1.tar.bz2
Şimdi bu dosyayı /usr/src altına kopyalıyacağız. Masaüstünde duran dosyayı aşağıdaki şekilde /usr/src altına kopyalıyabiliriz.Sonra sıkıştırılmış dosyayı açıyoruz.aşağıdaki koda kullanıcı isminizi girmeyi unutmayınız.
su HOME=/home/kullanıcıisminiz cp $HOME/Desktop/lirc-0.8.1.tar.bz2 /usr/src cd /usr/src tar xjvf lirc-0.8.1.tar.bz2
Şimdide indirilen dosyayı derleyip kuracağız ama burada ilk önce kumandamızı karta göre belirlemek gerekiyor. Aslında grafik arayüzünde var ama kernel-source tree göstermek gerektiğinden arayüz kullanmadan anlatacağım. O yüzden aşağıdaki listeden kartınızı seçiniz. Yakın olan kart da olabilir.
all, none, userspace, act200l, act220l, adaptec, alsa_usb, animax, atilibusb, atiusb, audio, avermedia, avermedia_vdomate, avermedia98, bestbuy, bestbuy2, breakoutbox, bte, bw6130, caraca, chronos, cmdir, comX, cph06x, creative, creative_infracd, devinput, digimatrix, dsp, dvico, ea65, exaudio, flyvideo, gvbctv5pci, hauppauge, hauppauge_dvb, hercules_smarttv_stereo, igorplugusb, iguanaIR, imon, imon_knob, imon_pad, imon_rsc, irdeo, irdeo_remote, irman, irreal, it87, knc_one, kworld, leadtek_0007, leadtek_0010, leadtek_pvr2000, livedrive_midi, livedrive_seq, logitech, lptX, mceusb, mceusb2, mediafocusI, mouseremote, mouseremote_ps2, mp3anywhere, nslu2,packard_bell, parallel, pcmak, pcmak_usb, pctv, pixelview_bt878, pixelview_pak, pixelview_pro, provideo, realmagic, remotemaster, sa1100, sasem, serial, silitek, sir, slinke, streamzap, tekram, tekram_bt829, tira, tvbox, udp, uirt2, uirt2_raw, usb_uirt_raw
Benim tv kartım Avertv studio 203. O yüzden avermedia98 seçeneğini listeden uygun gördüm. Daha iyi tahmin etmek için http://lirc.sourceforge.net/remotes/ sitesinden kendi kartınızın dosyasına girin. Kumanda resimlerini kendi kumandanızla karşılaştırın. En azından tuş sayısını karşılaştırın. Aynı olması gerek. Böylece yukarıdaki listeden daha doğru bir seçim yapabilirsiniz. Eğer resim bulamadaysanız oradaki config dosyalarında butonlar yazar. onlarla karşılaştırın. Ben buradaki anlatımımda avermedia98 kullanacağım siz avermedia98 yazan yerlere listeden seçtiğiniz sürücüyü yazarsınız. İlk önce configure yapacağız ve kernel tree görmesi için aşağıdaki şekilde bir configure uyguluyoruz.
su cd /usr/src/lirc-0.8.1 ./configure --with-kerneldir=/usr/src/linux --with-driver=avermedia98
Komutun çıktısında lirc_ ile başlayan bir modulun ismini veriyor. Bunu unutmayalım benim durumumda bu modulun ismi lirc_gpio. Sizde başka olabilir. O yüzden anlatımda lirc_gpio yazan yerleri kendi çıktınıza göre değiştirmeyi unutmayın.Şimdi kurulumu gerçekleştirip modülü yüklüyoruz.
Burda modülü lirc_serial olanlara özel bir durum var setserial /dev/ttyS0 uart none komutunu aşağıda modprobe komutundan önce uygulamak gerekiyor. Bu durum sadece modulü lirc_serial olanlar için geçerli.
su make make install modprobe lirc_gpio
Yukarıda lirc_gpio yazan yere kendi çıktınızı yazmayı unutmayın.
Lirc yüklenmiş durumda daha yapacağımız çok şey var ama şimdi ufak bir test yapabiliriz. Bunun için aşağıdaki komutları verip kumandamızın çalışmasını test ediyoruz.
su mode2 --device=/dev/lirc
Bu komutu verdiğimizde ve kumanda tuşlarına bastığımızda kumandadan gelen işlenmemiş verileri görmemiz gerek. code: 0x40bfa05f buna benzer çıktılar alıyorsanız kumandanız çalışıyor demek.
Kumandanız için bu verilere karşılık gelen button değerlerinin bulunduğu lircd.conf dosyasını bulmanız gerek. Bunu daha öncede verdiğim aşağıdaki siteden bakıyoruz. http://lirc.sourceforge.net/remotes/ Bu siteden kendi kumandanızın resmini buluyorsunuz ve ona karşılık gelen lircd.conf dosyasını bilgisayarınızın masaüstüne kaydediyorsunuz.
Örnek olarak benim durumumda aşağıdaki dosyayı kaydediyorum. http://lirc.sourceforge.net/remotes/avermedia/lircd.conf.avermedia.98
Artık anlatırken en lircd.conf.avermedia.98 kullandığım için siz burda benim yazdığım bu değeri kendi indirdiğiniz dosya ismi ile değiştirmeyi unutmayınız. Masaüstüne kaydettiğimiz dosyayı etc klasörüne aşağıdaki gibi kopyalıyoruz. Ama ilk önce yedeğini alıcağız.
su HOME=/home/kullanıcıisminiz cp /etc/lircd.conf /etc/lircd.conf_yedek cp $HOME/Desktop/lircd.conf.avermedia.98 /etc/lircd.conf
Böylece kumanda değerlerimizde kopyalanmış oldu. Şimdi lirc in çalışmasını deneyebiliriz. Aşağıdaki komutları vericeğiz. Ama daha önceden yukarıdaki örnekde çalıştırdığımız mode2 programını terminali kapatarak sonlandırmayı unutmayın. Çünkü aynı aygıtı 2 program aynı anda kullanamaz.
su killall mode2 lircd --device=/dev/lirc irw
Kumanda tuşlarına bastığımızda kumandaha karşılık gelen buton değerlerini görüyor olmamız gerek. 0000000040bff807 07 VOL_UP AVerMedia buna benzer çıktılar alıyoranız lir düzgün çalışıyor demekdir. Artık kurulumun büyük bir kısmını hallettik. Şimdi ufak ayarlamalar yapacağız ilk önce çalışan lirc programını aşağıdaki gibi sonlandıralım.
su killall lircd
SON AYARLAR
Artık lirc kurduğumuza ve düzgün şekilde çalışdığını test ettiğimize göre sistem tekrar başladığında kullanıma hazır hale gelmesi için bir takım düzenlemeler yapacağız. Sistem açılılırlken modüllerin otomatik yüklenmesini sağlayan dosyayı editorle açıyoruz. Terminalde su olmadan aşağıdaki işlemleri gerçekleştirin. su yerine sudo kullanın.
sudo kwrite /etc/modules.autoload.d/kernel-2.6
cıkan dosyada son satıra başında # işareti olmadan daha önce configure dosyasındaki çıktıyı yazıyoruz. Bu bende
lirc_gpio
idi lirc_ ile başlayan modülünüzü benim yadığım gibi yazın ve kaydedip kwrite programını kapatın. Şimdi açılışda lircd programının çalışması için sistem açılış dosyasını aşağıdaki gibi açıyoruz.
sudo kwrite /etc/conf.d/local.start
Aşağıdakini son satıra başında # olmadan yazıp kaydediyoruz
lircd --device=/dev/lirc
böylece açılışda lirc programı düzgün şekilde açılacak ama kumandadan alınan bilgileri işleyen ev klasöründeki .lircrc dosyasına göre işleyen irexec programınında çalıştırılması gerekli. Bunuda aşağıdaki şekilde kde açılırken otomatik başlamasını sağlıyoruz.
kwrite ~/.kde/Autostart/startup
Açılan boş dosyaya aşağıdakini yazıyoruz.
#!/bin/sh irexec
Böylece kaydedip kapatıyoruz. böylece kaydedip kapatıyoruz.
chmod 755 ~/.kde/Autostart/startup
komutunu verip çalıştırılabilir hale getiriyoruz. Böylece lirc kurulumu tamamlanmış oldu. Sistemi tekrar başlattığında ekstra bir ayar yapmak durumunda kalmayacaksınız. Yanlızca .lircrc dosyasına ihtiyacınız var. bu dosyayı ev klasorune kaydetmeniz gerek. Gerekli ayarlar ve .lircrc dosyasının nasıl düzenlendiğini aşağıdaki wikide bulabilirsiniz. Wikide gerekli uyarılar yapıldı ama tekrarlamak da yarar var. button= değerine karşılık gelen yerleri kendi kumandanıza göre değiştirmeyi unutmayın. http://wiki.linux-sevenler.org/index.php/Lirc_Kurulumu
Lirc kurulumunu tamamladık ama Pardus yeni bir kernel kullandığından bu kernel bazı kumandaları otomatik olarak tanıyor ve lirc ile çakışıyor. Bunu gidermek için kernel-source tree kullanıp yeniden bir modül oluşturacağız.
Kerneldeki kumanda desteğinin iptal edilmesi
1. YOL
kernelde bttv sürücüsü bazı kartlar için kumanda desteği ile geliyor. Bunu sağlayan modül ün ismi ir-common.ko. bttv sürücüsünün parçası olduğu için iptal edilemiyor. onun yerine kernelden kumanda değerlerini boş bırakarak tekrar derlemek gerekiyor. Aşağıdaki dosyayı açıyoruz ve değişiklikler yapacağız.
sudo kwrite /usr/src/linux-2.6.18.6-71/drivers/media/common/ir-keymaps.c
burda bazı kartların kumanda tuşları için ayarları var. Kumandamızın bu program tarafından kontrol edilmesini engellemek için bu ayarları silip aşağıdaki gibi görünmesini sağlıyoruz. Kısaca ir_codes_empty yazan yere gidip ordaki braketlerin { } içini alıp tüm hepsine yapıştırıyoruz ve ir_codes_empty deki gibi görünmesini sağlıyoruz örnek olarak aşağıdaki gibi
/* Matt Jesson <dvb@jesson.eclipse.co.uk */
IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
[ 0x2a ] = KEY_COFFEE,
};
Bütün tanımlar yukardaki braketlerin { } içindeki gibi olacak. Bu şekilde bu dosyayı kaydediyoruz.
su cd /usr/src/linux-2.6.18.6-71 make modules
yapıyoruz. Modulleri oluşturması p4 3 ghz bilgisayarda 20-30 dakka alabiliyor. bence çay molası için iyi bir fırsat. Moduller oluştukdan sonra eski modülün üstüne kopyalıycaz.
cp /usr/src/linux-2.6.18.6-71/drivers/media/common/ir-common.ko /lib/modules/2.6.18.6-71/kernel/drivers/media/common
şeklinde eski modülün üzerine yazıyoruz. böylece bu ir-common.ko modulunun kumanda kontrollerini işlemesini engellemiş olduk.
Sistemi tekrar başlatın. Mutlu Son :)
2.YOL
Eğer yok ben modul derlemekle uğraşmak istemiyorum derseniz benim hazır derlediğim modulü kullanabilirsiniz. http://okanbatur.googlepages.com/ir-common.ko Masaüstüne indirdiğiniz dosyayı aşağıdaki şekilde yerine kopyalıyoruz. Aşağıdaki koda kullanıcı isminizi yazmayı unutmayınız.
su HOME=/home/kullanıcıisminiz cp $HOME/Desktop/ir-common.ko /lib/modules/2.6.18.6-71/kernel/drivers/media/common
Sistemi tekrar başlatın. Mutlu Son :)
KAYNAKÇA
http://www.ubuntuforums.org/showthread.php?t=288229&highlight=lirc Ubuntu edgy howto lirc wikisi
http://lirc.sourceforge.net/remotes uzaktan kumanda tanımları
http://www.lirc.org/html/install.html#dependencies Pardus için .config dosyasını bulmamı sagladı.
http://www.lirc.org/ Lirc anasayfası
http://forum.linux-sevenler.org/index.php/topic,6489 soru ve görüşleriniz için forum sayfası
