Következő Előző Tartalom

2. A LIRC konfigurálása és fordítása


Nem Debian esetén

Fordítás

A LIRC-nek saját konfigurációs scriptje van, egyáltalán nem nehéz konfigurálni. Először is, töltsd le a legfrissebb stable LIRC csomagot, (a doksi írásakor ez a 0.6.6). Tömörítsd ki mondjuk az /usr/src/ könyvtárba (tar xvjf lirc-0.6.6.tar.bz2) és lépj bele. Ha elindítod a ./configure scriptet, akkor az elindítja a setup.sh segédbeállító programot. Itt értelemszerűen válaszd a következőket:

  Driver configuration (driver:serial io:0x3f8 irq:4)
    1 Home-brew (16x50 UART compatible serial port)
       (X) 1 COM1 (0x3f8, 4)
         [X] 2 Software generated carrier

Természetesen az értékek a gépedtől függenek, az IRQ és I/O címet megnézheted a géped Setupjában. Az első pontban a drivert állítod be, a másodikban azt adod meg, hogy házilag készített infravevőt használsz, a harmadik értelemszerűen a port kiválasztása, a negyedik pedig rákérdez, hogy van-e közvetítő dióda (nincs), és hogy a program generálja-e a kódot az infra jelekből (igen). Ezutóbbi azért szükséges, mert ellentétben más áramkörökkel, ebben nincsen mikrokontroller, amely a beégetett kód alapján elvégezné ezt az átalakítást. Ez annyit jelent, hogy ez az áramkör "nyers" adatokat ad át a programnak, és a program alakítja át értelmezhető jelsorokká.

Ha ezzel megvagyunk, lépjünk tovább a "2 Software configuration" menübe. Itt alapesetben semmit nem kell beikszelni, ha valakit érdekel a távirányítható egérkurzor (erre nem térek ki a doksiban!) akkor az első menüpontot ikszelje be. A DEBUG viszont bárkinek jól jöhet, ilyenkor konzolra illetve syslogba szórja az üzeneteit a LIRC daemonja. A "Disable daemonize" beikszelésével megtilthatod, hogy daemonként fusson a LIRC, azaz rajtad múlik hogy mikor indítod/használod. Az utolsó opcióval eldöntheted, hogy a LIRC saját logfileba, vagy a syslogba szemeteljen.

Mentsünk hát a konfigot, és lépjünk tovább a configure scriptre ("3 Save configuration & run configure"). Ha minden jól megy, ez hiba nélkül le is fut. Ha mindent jól csináltál, akkor valami ilyesmi kimenetet kell látnod:

config.status: creating Makefile
config.status: creating drivers/Makefile
[...]

You will have to use the lirc_serial kernel module.
Now enter 'make' and 'make install' to compile and install the package.

Nagyon örülünk, hisz' a script kitalálta, hogy nekünk bizony a lirc_serial modul kell majd, ez fogja a sorosportot kezelni. Nosza, make és make install segítségével fordítsuk le a programot. Ha útközben valami ilyesmi tűnne fel a sorok között, akkor sürgősen olvassuk át a soros portra vonatkozó fejezetet :)

******************************************
Your serial port driver is compiled into
the kernel. You will have to release the
port you want to use for LIRC with:
setserial /dev/ttySx uart none
******************************************

Megjegyzés: ha a setup.sh konfigurátort akarod használni, legalább a következő programokra lesz szükséged: libtool-1.3.3, automake-1.4 és autoconf-2.13. A drivert egyébként a --with-driver=X segítségével is megadhatjuk, a mi esetünkben --with-driver=serial szükséges. A configure további lehetőségeiért futtasd a ./configure --help -et.

A make és make install elvileg minden eszközt és programot legyárt, amire szükség van; ilyenek például a /dev/lirc, a /dev/lircd és a /dev/lircm.

Telepítés

A LIRC alapját a lircd képezi, amely visszakódolja az infravörös jeleket. A második szint a lircmd, ami a gombnyomásokat alakítja át egérmozgásokká (ennek használata opcionális). A lircmd futhat daemonként, és programként is a háttérben (lásd feljebb). Ha azt akarod, hogy bootnál automatikusan induljon el a lircd, a megfelelő init scripteket kell belőnöd. (a make ezt automatikusan elvégzi, ha tudja.) Ha a későbbiekben nem akarod, hogy betöltődjön a lircd init scriptje, használd az rcconf nevű hasznos kis programot.

Amit sose csinálj: ha bekapcsolod a "Disable daemonize" opciót, sose rakd be saját magad által készített init scriptbe a program indítását, hacsak nincs egy mentőlemez a közelben :)

A chmod 666 /dev/lircd segítségével állítsd be a jogokat, hogy ne csak root férjen hozzá az eszközhöz. Ha akarod, létrehozhatsz egy külön csoportot erre a célra. Most keresd meg a disztribúciód modulkonfigurációs fájlokat tartalmazó könyvtárát (Debian alatt pl. /etc/modutils/) ezen belül hozz létre egy lirc nevű fájlt, és szúrd be a következő sort:

 alias char-major-61 lirc_serial

Kell lennie egy actions nevű fájlnak is, ebbe meg kell adni a megfelelő paramétereket (ugyanazok mint amiket a setup.sh -ban megadtunk). Pl.:

 options lirc_serial irq=4 io=0x3e8

Az /etc/modules fájlhoz (ez szintén disztribúciófüggő lehet) adjuk hozzá a lirc_serial sort. Így a gép a boot során betölti ezt a modult, a paramétereket pedig a fentebb belőtt fájlokból veszi. Ha megvan, adj ki egy update-modules parancsot, ezzel a lirc_serial aliasa bekerül az /etc/modules.conf -ba. És végül, ha esetleg az /etc/ld.so.conf nem tartalmazná az /usr/local/lib sort, adjuk hozzá, és adjuk ki az ldconfig parancsot. Ezzel biztosítjuk, hogy a lirc függvénytára is a rendszer részét képezik, és hivatkozni is lehet rájuk.


Debian esetén

Ha Debian disztribet használsz, van egy külön lehetőséged. Nem feltétlen kell használnod, de kényelmesebb, és precízebb munkát végezhetsz ily módon (nem szemeteled tele a rendszert). A dolog lényege, hogy a lirc modul forrásából debian csomagot készítünk.

Első lépés: rakjuk fel a a LIRC modul forrását (apt-get install lirc-modules-source), a liblircclient0 és liblircclient-dev librarykat, valamint magát a lirc csomagot. (ha XMMS-hez is használni akarjuk, rendelkezésre áll az xmms-lirc nevű csomag is)

A lirc-modules-source csomag konfigurálásánál a Debian kérdez tőlünk pár dolgot, amit "normál" esetben a configure script tesz meg:

1) Should I try to automagically select support for your hardware? => No
2) Select drivers to build. => serial
3)What type of serial device should be supported? => Other
4) Is your serial IR device a transmitter? => No
5) Should the carrier signal be generated by software? => Yes
6) Which IO port is your IR serial device using? => például 0x3f8 (beállításaidtól függ)
7) Which IRQ is your IR serial device using? => például 4 (beállításaidtól függ)
8) Should I try to automatically build the modules? => Yes


Ha felpakolódtak a csomagok, az /usr/src/ könyvtárban találnunk kell egy lirc-modules.tar.gz nevű fájlt. Csomagoljuk ki (tar xvzf lirc-modules.tar.gz), majd lépjünk be az /usr/src/modules/lirc/ konyvtárba. Ott lesz a modules/ konyvtáron belul az a lirc_serial.o, ami nekünk kell; ezt másoljuk át a /lib/modules/jelenlegi_kernel/ konyvtárba, majd update-modules.

Van egy még elegánsabb módja a dolognak, amikor valóban csomagot készítünk a modulból. Az utolsó kérdésre válaszoljunk nemmel. Így csak akkor fordul le a modul, ha a make-kpkg -nak átadjuk a modules_image paramétert is. (ha nem tudod mi az a make-kpkg, olvass utánna, mert ennak csak úgy van értelme!) Így, ha például a make-kpkg --revision=2418lirc --bzImage kernel_image modules_image parancsot adjuk ki, a kernelcsomag mellett kapunk egy lirc-modules-2.4.18-grsec-1.9.4_0.6.5-1+2418lirc_i386.deb fájlt is, amelyet ha felrakunk, megkapjuk a várva várt modult. (természetesen a fájlnév függ a kernel verziójától, a patchektől, névtől, stb.)

Megjegyzés:
1) Nem biztos, hogy a --revision opciót kell használnunk; olykor-olykor jól jöhet az --append-to-version kapcsoló is.
2) Ügyeljünk arra (főleg konzerv [gyári, csomagolt] kernelek esetén), hogy a modult olyan gcc verzióval fordítsuk le, amilyennel a kernelt is fordítottuk. Ellenkező esetben csúnya hibaüzenetekre kell számítanunk. (Pl. FATAL: Invalid module format)

Következő Előző Tartalom