Installare lirc ed un ricevitore seriale su Ubuntu
Da VDR-Italia.
Ubuntu - Installare LIRC ed un ricevitore serialemodifica
In questo tutorial si vede come installare LIRC su Ubuntu per l'utilizzo con un ricevitore seriale home brew (fatto in casa, conosciuto anche come Animax), inoltre si riassumono i passaggi per compilare il modulo lirc_serial. Viene anche spiegato come mantenere aggiornata la compilazione nel momento in cui si aggiorna il kernel. C'é anche un piccolo esempio di utilizzo con VDR.
La guida è stata testata su Ubuntu Edgy (v6.10) partendo dal kernel 2.6.17 poi si e' aggiornata la distribuzione alla Feisty (v7.04). La procedura e' risultata sempre valida aggiornando man mano i kernel che venivano proposti fino ad arrivare al kernel 2.6.20-16, il sistema potrebbe funzionare anche con le distribuzioni Debian.
Indice |
Installazione di LIRC e dei sorgenti dei moduli
Per poter installare LIRC, occorre abilitare i repository universe, multiverse e edgy-backports.
Si installa LIRC, i sorgenti per i moduli di LIRC e module-assistant:
$> sudo apt-get install lirc lirc-modules-source module-assistant
Configurazione e compilazione di lirc-modules-source
Si configurano i sorgenti dei moduli di LIRC
$> sudo dpkg-reconfigure lirc-modules-source
Nel dialogo che appare:
- si preme ok nella prima schermata
- si seleziona (spunta) serial
- si seleziona ANIMAX
- si seleziona NO alla domanda "Is your serial IR device a transmitter?" (a meno che il vostro ricevitore non abbia anche la feature di trasmettitore, normalmente non ce l'ha)
- si seleziona NO alla domanda "Should the carrier signal be generated by software?"
- si immette l'indirizzo I/O della porta seriale che volete usare, io uso la COM1 (/dev/ttyS0) quindi immetto 0x3f8, altrimenti avrei potuto mettere 0x2f8 per COM2 (/dev/ttyS1)
- si immette l'IRQ della porta seriale che volete usare, io uso la COM1 (/dev/ttyS0) quindi immetto 4, altrimenti avrei potuto mettere 3 per COM2 (/dev/ttyS1)
- si preme OK alla schermata successiva
- alla domanda "Try to automatically build the modules?" si risponde SI
- si immette /usr/src/linux/ oppure il percorso corretto del sorgente del vostro kernel quando viene fatta la domanda "Where is your kernel source?"
Dovrebbe venire visualizzato qualcosa come:
Building kernel modules ... (output -> /tmp/lirc-kernel-source.to8801) Modules succesfully built. Removing /tmp/lirc-kernel-source.to8801
Se al punto 10 viene visualizzato il messaggio "/usr/src/linux/ is not a valid kernel source tree" probabilmente non è installato il pacchetto contenente gli headers del kernel, è possibile aprire un altro terminale ed installarlo così:
$> uname -r
Il comando uname -r restituisce la versione del kernel in uso, la versione serve per il comando successivo:
$> sudo apt-get install linux-headers-VERSIONE_DEL_KERNEL
ad esempio
$> sudo apt-get install linux-headers-2.6.20-15-generic
Dopo aver installato gli headers, probabilmente occorre creare un link simbolico:
$> cd /usr/src $> sudo ln -s linux-headers-2.6.20-15-generic linux
Ora riprendendo dal punto 10, la compilazione dovrebbe andare a buon fine.
Creare ed installare i moduli
Per creare il pacchetto .deb dei moduli ed installarlo automaticamente possiamo utilizzare module-assistant:
$> sudo m-a update,prepare $> sudo m-a clean lirc $> sudo m-a a-i lirc
Una volta installato il modulo lanciamo:
$> sudo depmod -a
Impostare la seriale
Probabilmente la seriale che volete usare con il ricevitore LIRC è configurata come porta COM, occorre disabilitarla con setserial
Se setserial non è installato nel vostro sistema:
$> sudo apt-get install setserial
Se si usa il ricevitore seriale una tantum si può dare di volta in volta il comando:
$> sudo setserial /dev/ttyS0 uart none
prima di fare partire LIRC, mentre se volete rendere permanentemente disabilitata la porta seriale come uart, potete usare questo metodo:
- Usare la configurazione debian di setserial:
$> sudo dpkg-reconfigure setserial
- Scegliere manual
- modificare (o creare se non esiste) il file /var/lib/setserial/autoserial.conf
/dev/ttyS0 uart none
- copiare autoserial.conf su /etc/serial.conf
sudo cp /var/lib/setserial/autoserial.conf /etc/serial.conf
Caricare il modulo lirc_serial
A questo punto, dopo aver collegato il ricevitore alla porta seriale configurata durante la compilazione, è possibile caricare il modulo del kernel:
$> sudo modprobe lirc_serial
Per vedere se il modulo del kernel e' stato caricato:
$> lsmod | grep lirc
dovrebbe apparire qualcosa tipo:
lirc_serial 14080 1 lirc_dev 15988 1 lirc_serial
Caricare il modulo con modprobe manualmente va bene se si vuole fare una prova al volo, altrimenti occorre configurare LIRC come spiegato successivamente in modo che carichi automaticamente i moduli all'avvio del demone.
Configurare e fare partire LIRC
Con il comando che abbiamo dato sopra:
$> sudo apt-get install lirc .......
LIRC si e' installato ed è già settato per partire all'avvio del PC, ora occore configurarlo.
- Si modifica /etc/lirc/hardware.conf:
LOAD_MODULES=true MODULES="lirc_serial" LIRCD_CONF="/etc/lirc/lircd.conf"
Queste righe fanno si che vengano caricati automaticamente i moduli lirc_serial all'avvio del demone lircd, inoltre viene specificato il posto dove trovare il file di configurazione del telecomando.
- Si scarica un file di configurazione adatto al proprio telecomando:
Presupponendo di essere dotati del telecomando in dotazione con la SkyStar 2.6D, si preleva dal sito http://lirc.sourceforge.net precisamente da http://lirc.sourceforge.net/remotes/technisat/TTS35AI il file di configurazione e lo si copia al posto di /etc/lirc/lircd.conf
- Si fa ripartire il demone lircd
$> sudo /etc/init.d/lirc restart
- Si testa il sistema
Per testare il tutto è possibile utilizzare il programmino irw, premendo i tasti del telecomando dovreste ottenere un output simile a questo:
$> irw 00000000000012a0 00 UP Skystar2_Remote 0000000000001291 00 LEFT Skystar2_Remote 00000000000012a1 00 DOWN Skystar2_Remote 00000000000012a1 01 DOWN Skystar2_Remote 000000000001290 01 RIGHT Skystar2_Remote 0000000000001290 02 RIGHT Skystar2_Remote 0000000000000297 00 OK Skystar2_Remote 0000000000000297 01 OK Skystar2_Remote 0000000000000297 02 OK Skystar2_Remote 0000000000000297 03 OK Skystar2_Remote
Ossia le stringhe che identificano i tasti all'interno di lircd.conf
Test con VDR
Se non sappiamo cosa contiene, occorre rimuovere il file remote.conf dalla directory che contiene i file di configurazione di VDR (di solito /video), facendo partire VDR poi ne verrà creato uno nuovo per l'auto apprendimento. Per testare VDR (nell'esempio in accoppiata al plugin xine) è possibile utilizzare il seguente comando:
$> vdr -Pxine --lirc
Seguendo le istruzioni riportate dall'OSD è possibile mappare i tasti del telecomando, mentre se possedete anche voi il telecomando Technisat TTS35AI e non volete fargli apprendere i tasti, potete usare questo remote.conf di esempio:
LIRC.Up UP LIRC.Down DOWN LIRC.Menu MENU LIRC.Ok OK LIRC.Back BACK LIRC.Left LEFT LIRC.Right RIGHT LIRC.Red RED LIRC.Green GREEN LIRC.Yellow YELLOW LIRC.Blue BLUE LIRC.0 0 LIRC.1 1 LIRC.2 2 LIRC.3 3 LIRC.4 4 LIRC.5 5 LIRC.6 6 LIRC.7 7 LIRC.8 8 LIRC.9 9 LIRC.Info INFO LIRC.Power POWER
Ricreare i moduli al cambio del kernel
Se si ha la necessità di ricreare i moduli di LIRC, ecco cosa fare:
$> sudo m-a clean lirc $> sudo m-a update,prepare $> sudo m-a a-i lirc $> sudo depmod -a
Probabilmente dopo occorre anche riavviare il demone LIRC:
$> sudo /etc/init.d/lirc restart
Questo tutorial è basato sul doc: https://help.ubuntu.com/community/Install_Lirc_Edgy

