Pardus Lirc Kurulumu

From Lapis Wiki

Jump to: navigation, search

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ı


CTRLBREAK