Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOW-TO] Telecomando (Lirc) & AC3/DTS
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
Aratheba
n00b
n00b


Joined: 24 Mar 2004
Posts: 56

PostPosted: Mon Jun 21, 2004 9:18 pm    Post subject: [HOW-TO] Telecomando (Lirc) & AC3/DTS Reply with quote

Come promesso eccomi qui a scrivere questa sorta di HOWTO su come trasformare una Gentoo box in un sistema multimediale completo, con tanto di telecomando e audio in AC3 e DTS via SPDIF.
Nel scrivere questa "guida" farò particolare riferimento alla mia configurazione (scheda madre Asus A7N8X Deluxe 2.0 e telecomando Streamzap), ma credo che, con poche modifiche, possa essere adattata ad altre configurazioni.



Parte (1): TELECOMANDO


Una premessa importante: dovete necessariamente usare un kernel 2.4.x per usare il telecomando Streamzap, avendo l'accortezza di aver correttamente configurato l'USB (meglio ancora se come modulo in modo da farlo interagire con hotplug!)

Fatta la doverosa premessa, la prima cosa da fare sara quella di scaricarvi lirc, utilizzando l'opzione -f con emerge in modo da scaricarlo senza effettuare la successiva compilazione.
Lirc (Linux Infrared Remote Control) contiene sia i driver per il telecomando che il demone (lircd) e diverse utility per poterlo utilizzare comodamente.
Ora il problema maggiore è che il telecomando Streamzap non è nativamente supportato da lirc, percui c'è bisogno di una apposita patch che funziona solo con un kernel 2.4 appunto! ;-) ).
Scompattate ora lirc in una cartella (per esempio ~/lirc) e patchatelo con il file che avete prima scaricato:

Code:
cd lirc
patch -p1 <../streamzap -0.06.diff

A questo punto, se aveste avuto un normale telecomando, vi sarebbe bastato lanciare

Code:
./setup.sh


e configurare il vostro telecomando, selezionandolo nell'apposita sezione e scegliendo poi "save configuration and run configure". Ma non è questo il caso (e te pareva! :-( ), lanciando setup.sh con lo Streamzap non lo troverete nell'elenco dei telecomandi supportati, nonostante la patch! Quello che dovrete quindi fare è (supponendo che vi troviate ancora dentro ~/lirc):

Code:
./data2setup.sh &gt; setup-data.sh
autoconf
automake
./configure --with-driver=streamzap
make
make install


Fatto questo (qui devo ringraziare un anonimo santo che ha postato la procedura nella support page del progetto Streamzap!!! ) avrete finalmente configurato lirc e compilato lo stesso insieme al driver per il vostro telecomando Streamzap.

Vi resta solo da caricare i moduli lirc_dev e lirc_streamzap (do per scontato che l'USB vi funzioni correttamente!!!), aggiungere il demone lircd all'avvio tramite

Code:
rc-update add lircd default


e avviarlo

Code:
/etc/init.d/lircd start


Ci siamo quasi. Il grosso è fatto....quasi! :P
Prima di procedere oltre assicuriamoci che il telecomando sia stato correttamente installato e che il sistema lo "veda". Lanciate l'utilità irw e cominciate a premere qualche tasto del vostro telecomando, otterrete in output, se tutto è andato bene, l'elenco dei tasti che state premendo, qualcosa del genere:

Code:

00000000000028c9 00 9 streamzap
00000000000028c6 00 6 streamzap
00000000000028c5 00 5 streamzap
00000000000028d7 00 Play streamzap
00000000000028d8 00 Pause streamzap
00000000000028d7 00 Play streamzap


Se non avete output da irw il problema potrebbe risiedere nel device creato per il telecomando. Mi spiego meglio: normalmente il device di default per il telecomando viene creato in /dev/lirc/0, ma (come nel mio caso!) a volte viene invece creato semplicemente /dev/lircd. In questo caso, dovrete andare a modirificare in maniera opportuna il file /etc/conf.d/lircd modificando la riga come segue:

Code:
LIRCD_OPTS="-d /dev/lircd"


indicando appunto il nuovo device /dev/lircd al posto di /dev/lirc/0. Per sicurezza modificate anche i permessi del device /dev/lircd con

Code:

chmod 666 /dev/lircd


e riprovate a lanciare irw.


Bene, ora siamo sicuri che il telecomando funziona bene. Procediamo con il settaggio.
Lirc utilizza un file ".lircrc" che deve essere posizionato nella vostra home. In questo file ci sono i settaggi del telecomando per i vari programmi.
La sintassi del file è la seguente:




Code:
begin
        prog    = ...
        remote  = ...
        button  = ...
        repeat  = ...
        config  = ...
        mode    = ...
        flags   = ...
end


Rimando la spiegazione dettagliata dei diversi campi alla ottima documentazione di Lirc, vi basti sapere che prog deve fare riferimento al programma che si vuole comandare (es: xine), remote deve indicare il telecomando in uso (in questo caso: streamzap), button si riferisce al pulsante premuto (es: play) e config all'azione che il programma in questione dovrà eseguire. Logicamente, tale programma dovrà essere stato compilato con il supporto per lirc, dovrete quindi molto probabilmente inserire "lirc" nel vostro make.conf e "riemergerlo".
Inoltre è possibile anche settare i tasti del telecomando in modo da avviare dei programmi. Per fare questo dovrete settare il campo prog=irexec (il programma irexec lo dovrete avviare ad ogni avvio del sistema!) e in config andrà messo stavolta il nome del programma che si vuole avviare.
Un comodo suggerimento: se volete sapere quali comandi potete impartire per esempio a Xine con il vostro telecomando vi basterà digitare:

Code:
xine --keymap=lirc > xine_lirc_com


per ritrovarvi in tale file (xine_lirc_com) l'elenco delle varie possibilità! ;)
Ah...dimenticavo, per XMMS dovete anche emergere e settare (estremamente semplice!) il plugin per lirc!!!
Ecco di seguito il mio .lircrc (mooolto accorciato, se lo volete completo mandatemi un PM!) a puro titolo esemplificativo:


Code:
# lircrc for Streamzap

# Command bindings

begin
     remote = streamzap
     button = BLUE
     prog = irexec
     repeat = 0
    config = xmms
end

begin
     remote = streamzap
     button = RED
     prog = irexec
     repeat = 0
     config = xine
end

begin
     remote = streamzap
     button = GREEN
     prog = irexec
     repeat = 0
     config = gmplayer
end

begin
    remote = streamzap
    button = YELLOW
    prog = irexec
    repeat = 0
    config = kdetv
end

begin
    remote = streamzap
    button = POWER
    prog = irexec
    repeat = 0
    config = sudo /etc/init.d/shutdown.sh
end

# Program Specific

##############################################################
# XMMS
# Full list of commands can be found in the xmms-lirc readme
##############################################################
begin
     button = TRACKNEXT
     prog = xmms
     config = next
end
begin
     button = PLAY
     prog = xmms
     config = play
end

[CUT]

#######################
# Xine
#######################

# start playback
begin
   remote = streamzap
   button = PLAY
   prog   = xine
   repeat = 0
   config = Play
end

# playback pause toggle
begin
   remote = streamzap
   button = PAUSE
   prog   = xine
   repeat = 0
   config = Pause
end

# stop playback
begin
   remote = streamzap
   button = STOP
   prog   = xine
   repeat = 0
   config = Stop
end

[CUT]

#######################
# Gmplayer
#######################

# start playback
begin
   remote = streamzap
   button = PLAY
   prog   = mplayer
   repeat = 0
   config = gui_play
end

# playback pause toggle
begin
   remote = streamzap
   button = PAUSE
   prog   = mplayer
   repeat = 0
   config = Pause
end

# stop playback
begin
   remote = streamzap
   button = STOP
   prog   = mplayer
   repeat = 0
   config = gui_stop
end

[CUT]



Parte (2): l'audio AC3 e DTS

Configurato il vostro telecomando per usarlo con Xine e Mplayer non vi resta che settare il computer affinchè vi permetta sentire i vostri amati DVD in tutto lo splendore dell'audio in Dolby Digital (AC3) o DTS tramite l'uscita SPDIF.
Se avete la sfortuna/fortuna di possedere una scheda madre Asus A7N8X Deluxe (con scheda audio SoundStorm) le cose saranno leggermente più complicate.
Partendo infatti dal presupposto che dovrete necessariamente installare i driver ALSA, non vi basterà emergere quelli presenti nel portage (1.03), ma sarete costretti a compilare la versione CVS degli ALSA, meglio se l'ultima.
Assodato che avete ben configurato e compilato il vostro kernel (dovete attivare solo il supporto all'audio come modulo senza aggiungere nessun driver specifico!), scaricatevi l'ultima versione CVS degli ALSA (io ho preso la versione del 2 giugno) e scompattateli (es: ~/alsa_cvs).
Bisognerà ora compilare e installare in ordine:

* alsa-driver
* alsa-lib
* alsa-utils

Controllate la pagina di documentazione della vostra scheda selezionandola qui per verificare il parametro da passare in fase di configurazione dei driver. Nel caso della scheda Nvidia dovrete eseguire i seguenti passi:

Code:
cd ~/alsa_cvs
cd alsa-driver
./cvscompile --with-cards=intel8x0
make
make install


Analogamente dovrete fare per alsa-lib

Code:
cd ../alsa-lib
./cvscompile
make
make install


e per alsa-utils

Code:
cd ../alsa-utils
./cvscompile
make
make install


Ora ci siamo. In questo modo sono stati compilati e installati i driver alsa per la vostra scheda (nda: Nvidia Soundstorm), non vi resta che configurare /etc/modules.conf aggiungendo in fondo al file:

Code:
        # ALSA portion
        alias char-major-116 snd
        alias snd-card-0 snd-intel8x0
        # module options should go here

        # OSS/Free portion
        alias char-major-14 soundcore
        alias sound-slot-0 snd-card-0
       
        # card #1
        alias sound-service-0-0 snd-mixer-oss
        alias sound-service-0-1 snd-seq-oss
        alias sound-service-0-3 snd-pcm-oss
        alias sound-service-0-8 snd-seq-oss
        alias sound-service-0-12 snd-pcm-oss


Avrete così attivato anche l'emulazione OSS con i driver alsa.
Abbiamo quasi finito. I driver ALSA utilizzano un file di configurazione ".asoundrc" che va posizionato nella vostra home.
In questo file potrete specificare quale scheda utilizzare di default. Mi spiego: se avete la Soundstorm vi ritroverete con due schede, la (per esempio) hw:0,0 per l'uscita analogica e la hw:0,2 per l'uscita digitale. Settando appositamente il file suddetto potrete, per esempio, decidere di far uscire tutto l'audio del sistema via SPDIF!!!
Di seguito riporto il mio ".asoundrc" a titolo esemplificativo:

Code:
pcm.nforce-hw {
type hw
card 0
}
pcm.!default {
type plug
slave.pcm "nforce"
}
pcm.nforce {
type dmix
ipc_key 1234
slave {
pcm "hw:0,2"
period_time 0
period_size 1024
buffer_size 32768
rate 44100
}
}
ctl.nforce-hw {
type hw
card 0
}


Come prededentemente detto, nel mio caso la scheda hw:0,2 rappresenta l'uscita digitale su SPDIF. Dimenticavo: il modulo dmix vi permetterà anche di far usare a più programmi contemporaneamente la scheda sonora, purchè facciano uso dei driver ALSA per il suono. ;)

Abbiamo praticamente finito, rimane solo da settare i programmi per far uscire l'audio.
Personalmente ho deciso di utilizzare Xine per i DVD vista la maggiore comodità data dalla possibilità di navigare nei menù che questo programma mette a disposizione. In questo caso, vi basti andare nel menù di configurazione, sezione audio e attivare l'opzione "a52_pass_through" e il gioco è fatto!
Nel caso invece preferiate usare Mplayer (perchè!?!) dovete lanciarlo con le seguenti opzioni:

Code:
mplayer -ao alsa:SPDIF -ac hwac3


A seconda della versione di mplayer che userete (io sto usando una CVS), il primo parametro può essere:

-ao alsa9:SPDIF (ad indicare una versione dei driver alsa intorno alla 0.9)
-ao alsa1:SPDIF (ad indicare una versione dei driver alsa >= alla 0.9)

Beh...che altro dirvi...godetevi il vostro nuovo sistema multimediale Gentoo!!! ;) :D

Ciao ciao

Aratheba
Back to top
View user's profile Send private message
neon
l33t
l33t


Joined: 04 Aug 2003
Posts: 759
Location: Catania, Italy, Europe

PostPosted: Mon Sep 13, 2004 12:26 pm    Post subject: Reply with quote

Ottimo howto =)

Vorrei aggiungere una cosetta. Volendo si possono usare anche i kernel 2.6 a patto di utilizzare un telecomando che usi una porta irda seriale (che costano anche meno degli usb)

Io ad esempio ho un telecomando della pinnacle (di quelli che danno con le schede di aquisizione), lirc mi dava problemi di compilazione con il 2.6, allora ho aggiunto la riga:
Code:
LIRC_OPTS="--with-driver=pctv"

in make.conf ed ha compilato tutto tranquillamente (sostituite pctv con il nome del vostro driver seriale)

N.B. questo LIRC_OPTS è un parametro da passare all'ebuild di lirc, va quindi messo in make.conf ed è diverso da quello usato in /etc/conf.d/lircd
_________________
Io credo che le tecnologie siano moralmente neutrali fino a quando non le utilizziamo - William Gibson

LINEE GUIDA DEL FORUM
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30822
Location: here

PostPosted: Mon Sep 13, 2004 5:09 pm    Post subject: Reply with quote

Non l'ho aggiunto nei post utilissimo 8O . Fatto ora :D
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum