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:

  1. si preme ok nella prima schermata
  2. si seleziona (spunta) serial
  3. si seleziona ANIMAX
  4. 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)
  5. si seleziona NO alla domanda "Should the carrier signal be generated by software?"
  6. 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)
  7. 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)
  8. si preme OK alla schermata successiva
  9. alla domanda "Try to automatically build the modules?" si risponde SI
  10. 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

Strumenti personali