Un'idea geniale: costruire un Media Center su Linux con pezzi di recupero (per lo più)
Idea per le vacanze di Natale 2009: riutilizzare un vecchio ASUS Pundit-R come Media Center, naturalmente utilizzando Linux.
Una cosa: questo articolo è "work in progress" quindi alcune parti possono essere ancora incomplete...
Perchè scriverlo qui?
E perchè scriverlo qui?
Creare un LMC (Linux Media Center) mi ha dato non pochi grattacapi, e quindi mi segno questi appunti per averli a disposizione nel momento in cui dovrò magari ripetere la cosa.
Ho dovuto consultare decine di siti e forum per "scavalcare" tutte le difficoltà che ho incontrato, e non ho neppure più traccia di tutte le cose che ho letto.
Molto di quanto segue non è merito mio, ma dei numerosissimi utenti ed esperti che hanno lasciato "tracce" delle loro risoluzioni.
Ma il problema è che ho dovuto mettere insieme centinaia (e non esagero) di siti e post per capirci qualcosa.
Quindi ecco i miei appunti che se poi nel frattempo fossero anche utili a qualcun altro (e se ci fossero consigli sarei felicissimo di averli) allora tanto meglio.
In ogni caso, per mia semplicità, i comandi saranno indicati senza "fronzoli" in modo da potere essere semplicemente copiati ed incollati nelle rispettive consolles di terminale.
Cominciamo!
Dopo una breve ricerca su Internet, "approdo" a MythTV che mi sembra il più completo tra i software disponibili.
Per il software siamo quindi a posto, mentre per la distribuzione Linux da usare non posso che cadere sulla Fedora 12, visto che ci lavoro da dieci anni 12 ore al giorno e quindi la conosco, sebbene in ambiti diversi, piuttosto bene.
So benissimo che esistono distribuzioni "specializzate" come Mythora o MythUbuntu, ma voglio disporre anche di altre cose, come K3b per masterizzare quello che voglio o la semplice (spero) realizzazione di un server DAAP per la condivisione della musica, quindi parto dal "difficile".
L'obbiettivo è avere a disposizione:
- Player di CD/DVD/VCD
- Player multimediale (MP3, AVI, DIVIX e quant'altro)
- Emulazione consolles di gioco (Nintendo, Megadrive/Genesis, MAME)
- TV digitale DVB
- Video registrazione digitale
- News attraverso Internet
- (opzionalmente) creare un server DAAP per condividere i miei MP3 su tutta la rete di casa in modo da non costringere i client ad essere Linux ed avere MythTV installato.
- Video sorveglianza e registrazione della mia abitazione
Ecco quindi la mia "lista della spesa":
Hardware
- un vecchio Pundit-R con CPU Pentium 4 2.8 Ghz, 512 Mb RAM ed un disco di recupero da 500 Gb.
Il Pundit è piccolo e dispone sia di uscita video composita (per collegarlo al mio vecchio impianto di videoproiezione) che di uscita SP-DIF digitale ottica per l'audio (anche se purtroppo in questo modello la presa ottica è sul frontale), in modo da potere "saltare" la scheda audio interna ed estrarre l'audio direttamente in digitale connettendolo al mio sinto amplificatore YAMAHA RXV-2095RDS che dispone di ingressi digitali - Una scheda PCI wireless
- Una penna USB DTV MSI Digivox mini V3.0
- Un telecomando IR (comprato su Ebay) SZRN801
- un monitor 15" LCD da utilizzare solo per la configurazione ed in caso di "problemi"
- una tastiera ed un mouse wireless
Cominciamo: Installazione Sistema Operativo
Installare Fedora 12 è un gioco da ragazzi, basta inserire il DVD della versione i586 (il processore non supporta i 64 bit) e fare qualche click su continua.
Come gruppi di installazione metto gli strumenti di sviluppo, il server mysql e l'internet grafico che mi potrebbe venire utile per qualche ricerca in caso di problemi (e ne avrò un sacco)
Terminata l'installazione e tutti gli aggiornamenti, installo i repo di rpmfusion e posso finalmente installare MythTV.
Apro un terminale e quindi:
su
{password di root}
yum install mythtv
Il fido yum fa tutto quello che serve mi trovo con mythtv installato.
Come funziona MythTV
All'inizio MythTV sembra veramente ostico.
Si basa essenzialmente su tre componenti principali:
- il database MySQL
- il Backend che può essere condiviso tra più macchine
- il Frontend che deve essere presente su ogni macchina che vuole accedere ai media stoccati sul server MythTV
Quindi la prima cosa da fare è creare il database che ci serve, non prima di avere avviato il server mysql ed esserci accertati che parta all'avvio (se lo date graficamente basta attivare il servizio nelle preferenze Servizi di amministrazione).
Se invece vogliamo farlo da terminale basta (come root)
chkconfig mysqld on
service mysqld start
Siamo pronti per iniziare
Creare il database
Avendo installato l'rpm di MythTV attraverso yum, i documenti relativi a mythtv si trovano nel percorso
/usr/share/doc/mythtv-docs-0.22 (la versione finale può variare a seconda di quella installata)
quindi
cd /usr/share/doc/mythtv-docs-0.22/database
mysql -u root < mc.sql
Questo crea il database che sarà popolato dall'utilità di configurazione di MythTV.
Questa trattazione prende spunto dal fatto di creare una singola macchina dedicata, pertanto non prendo in nessun conto il problema "sicurezza di macchina esposta".
In ogni caso i documenti presenti nella su indicata cartella spiegano perfettamente come "stringere" i privilegi e gli accessi a MythTV.
Configurazione del Backend di MythTV
Come suggerisce il nome stesso di Backend, si tratta di quella parte di MythTV in grado di distribuire a più client (compreso quindi quello locale) i device di acquisizione (come la scheda DVB ad esempio) o le risorse messe a disposizione dal server.
La cosa determinante perché possa funzionare è la connessione al database MySQL in cui saranno stoccati non solo tutti i dati relativi ai media (video, foto, musica eccetera) ma anche la configurazione.
Se usate Gnome nel menu Applicazioni->Audio e video è ora presente "MythTV Setup", il cui omologo comando da tastiera è
mythtv-setup
Il backend può essere istruito su quali risorse mettere a disposizione dei client.
La cosa importante è, ovviamente, che il servizio mythbackend parta all'avvio della macchina quindi abilitiamolo (stessa procedura grafica di abilitazione dei servizi di cui abbiamo parlato prima), oppure da terminale
chkconfig mythbackend on
Quindi avviamo il servizio
service mythbackend start
Configurare il Frontend
Possiamo ra lanciare il Fronted e dirgli come collegarsi al database.
Scegliamo Applicazioni -> Audio e Video -> Mythtv Frontend
Quindi dal menu di MythTV scegliamo
Impostazioni->Generale
La configurazione dell'audio di MythTV
Devo ammettere che la configurazione dell'audio di MythTV mi ha portato sul confine della decisione di rinunciare.
Il problema principale è che non riuscivo a capire la logica di funzionamento.
Fedora 12, come tutte le distribuzioni moderne, utilizza PulseAudio per la gestione del suono, ma inspiegabilmente PulseAudio sembrava smettere di funzionare appena mettevo in esecuzione MythTV.
Ci ho messo un pò per capire che MythTV sospende deliberatamente PulseAudio al suo avvio in quanto si basa sull'interfacciamento ALSA e, solo a necessità, fa partire PulseAudio.
Capito questo, nascono due distinti tipi di problemi e di tipologie di audio.
In ogni caso lanciamo MythTv (il frontend) ed andiamo nella sezione delle configurazioni scegliendo Advanced -> Impostazioni -> Generale
La terza videata
Audio Analogico
Qui ci ho perso un sacco di tempo.
I contenuti proposti nelle caselle disponibili nel Frontend NON COMBINANO MAI con la configurazione della macchina che si sta usando; e non ho trovato nessuna spiegazione "sicuramente funzionante" per la configurazione dell'audio, visto che l'audio funzionava perfettamente fino a quando non si lanciava MythTV, ma alla fine ecco la spiegazione:
MythTV "ragiona" con ALSA, quindi occorre adeguare la configurazione del tutto a ciò che ALSA "vede"
Scoprire i device ALSA presenti sulla macchina
Il comando aplay -L ci da la lista esatta dei device presenti sulla macchina.
Sul Pundit in questione ecco l'output:
aplay -L
front:CARD=IXP,DEV=0
ATI IXP, ATI IXP AC97
Front speakers
surround40:CARD=IXP,DEV=0
ATI IXP, ATI IXP AC97
4.0 Surround output to Front and Rear speakers
surround41:CARD=IXP,DEV=0
ATI IXP, ATI IXP AC97
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=IXP,DEV=0
ATI IXP, ATI IXP AC97
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=IXP,DEV=0
ATI IXP, ATI IXP AC97
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
iec958:CARD=IXP,DEV=0
ATI IXP, ATI IXP IEC958 (AC97)
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default
Default
Ora può sembrare da matti, ma la dicitura da utilizzare per la configurazione dell'output è ALSA: seguito dal nome completo, che ho evidenziato in grassetto, del device che desideriamo utilizzare.
Quindi se vogliamo utilizzare il surround 51, dovremo scrivere nel box di configurazione dell'audio:
ALSA:surround51:CARD=IXP,DEV=0
e non, come ho trovato in un sacco di esempi ALSA:surround51
E default e pulse, ovviamente, non funzionano!
Questa configurazione funziona benissimo e "manda" l'audio sui connettori analogici della scheda audio.
Attenzione che se si usa una scheda ALSA con più di 2 canali, occorre impostare l'upmix in quanto diversamente in presenza di meno canali di quelli specificati (ad esempio MP3 stereo) non si avrà audio
La stessa configurazione va riportata nelle impostazioni musica nella opportuna sezione di MythTV
E non dimenticare di controllare i livelli impostati nel mixer ALSA con il comando da terminale
alsamixer
Ecco di seguito l'immagine dell'intuitivo alsamixer:
Per spostarsi tra gli ingressi si usa il tasto TAB, i pulsanti + e - alzano ed abbassano il livello del canale selezionato, il pusante m mette o toglie il mute e con il pulsante F5 si seleziona la visualizzazione di tutti gli ingressi.
Il pulsante F6 permette di selezionare la scheda sulla quale desideriamo operare.
Audio Digitale
Come dicevo all'inizio il mio obbiettivo è ottenere un output interamente digitale, sempre e comunque indipendentemente dalla presenza della codifica digitale AC3 o del DTS, in questo modo posso interfacciare il Pundit con l'ampli ed acoltare indifferentemente audio, video o DVD senza dovere cambiare ingresso.
In pratica voglio collegarmi mediante un cavo TOSLINK in fibra ottica ad una presa SPDIF che è presente sul Pundit
E qui la cosa si è rivelata parzialmente più difficile.
Se il "gioco" dell'ALSA ormai era scoperto, e bastava utilizzare l'uscita ALSA:iec958:CARD=IXP,DEV0 per ottenere l'audio digitale sull'uscita ottica del Pundit, il problema era che la musica, campionata a 44 Khz e non a 48 Khz, non "passava" per errore di campionamento.
In pratica i video andavano benissimo, ma gli MP3 non funzionavano.
Dopo ore di ricerche ho trovato la soluzione: bastava creare un file .asounrc nella home dell'utente che avvia MythTV in modo da creare un alias dell'uscita digitale che accettasse, e all'occorrenza ricampionasse, il tutto
Ecco il file di configurazione .asoundrc che ho messo nella mia home:
##### Configuration File #####
# Override the default output used by ALSA. If you do not override the
# default, your default device is identical to the (unmixed) "analog" device
# shown below. If you prefer mixed and/or digital output, uncomment the
# appropriate four lines below (only one slave.pcm line).
#
# Note, also, that as of ALSA 1.0.9, "software" sound cards have been modified
# such that their default "default" device is identical to the "mixed-analog"
# device. Whether using an ALSA version before or after 1.0.9, it does no harm
# and has no affect on performance to redefine the device (even if the
# redefinition does not change anything). Also, by using this ALSA
# configuration file, you once again have access to unmixed analog output using
# the "analog" device.
pcm.!default {
type plug
## Uncomment the following to use (unmixed) "analog" by default
# slave.pcm "analog-hw"
## Uncomment the following to use "mixed-analog" by default
# slave.pcm "dmix-analog"
## Uncomment the following to use (unmixed) "digital" by default
slave.pcm "digital-hw"
## Uncomment the following to use "mixed-digital" by default
# slave.pcm "dmix-digital"
}
# Control device (mixer, etc.) for the card
ctl.!default {
type hw
card 0
}
# Alias for (converted) analog output on the card
# - This is identical to the device named "default"--which always exists and
# refers to hw:0,0 (unless overridden)
# - Therefore, we can specify "hw:0,0", "default", or "analog" to access analog
# output on the card
# - Note that as of ALSA 1.0.9, "software" sound card definitions redefine
# "default" to do mixing, meaning this device is different from "default" and
# allows playback while blocking other sound sources (until playback
# completes).
pcm.analog {
type plug
slave.pcm "analog-hw"
}
# Control device (mixer, etc.) for the card
ctl.analog {
type hw
card 0
}
# Alias for (converted) mixed analog output on the card
# - This will accept audio input--regardless of rate--and convert to the rate
# required for the dmix plugin (in this case 48000Hz)
# - Note that as of ALSA 1.0.9, "software" sound card definitions redefine
# "default" to do mixing, meaning this device is identical to "default" for
# "software" sound cards.
pcm.mixed-analog {
type plug
slave.pcm "dmix-analog"
}
# Control device (mixer, etc.) for the card
ctl.mixed-analog {
type hw
card 0
}
# Questa scheda converte digitalmente il sample rate in modo automatico
# Alias for (converted) digital (S/PDIF) output on the card
# - This will accept audio input--regardless of rate--and convert to the rate
# required for the S/PDIF hardware (in this case 48000Hz)
pcm.digital {
type plug
slave.pcm "digital-hw"
}
# Control device (mixer, etc.) for the card
ctl.digital {
type hw
card 0
}
# Alias for mixed (converted) digital (S/PDIF) output on the card
# - This will accept audio input--regardless of rate--and convert to the rate
# required for the S/PDIF hardware (in this case 48000Hz)
pcm.mixed-digital {
type plug
slave.pcm "dmix-digital"
}
# Control device (mixer, etc.) for the card
ctl.mixed-digital {
type hw
card 0
}
# The following devices are not useful by themselves. They require specific
# rates, channels, and formats. Therefore, you probably do not want to use
# them directly. Instead use of of the devices defined above.
# Il numero del device lo prendiamo da aplay -l ANALOGICO
# Alias for analog output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.analog-hw {
type hw
card 0
# The default value for device is 0, so no need to specify
# - Uncomment one of the below or create a new "device N" line as appropriate
# for your sound card or
# device 1
# device 4
}
# Control device (mixer, etc.) for the card
ctl.analog-hw {
type hw
card 0
}
# Il numero del device lo prendiamo da aplay -l DIGITALE
# Alias for digital (S/PDIF) output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.digital-hw {
type hw
card 0
device 1
# - Comment out "device 1" above and uncomment one of the below or create a
# new "device N" line as appropriate for your sound card or
# device 2
# device 4
}
# Control device (mixer, etc.) for the card
ctl.digital-hw {
type hw
card 0
}
# Direct software mixing plugin for analog output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.dmix-analog {
type dmix
ipc_key 1234
slave {
pcm "analog-hw"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
}
# Control device (mixer, etc.) for the card
ctl.dmix-analog {
type hw
card 0
}
# Direct software mixing plugin for digital (S/PDIF) output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.dmix-digital {
type dmix
ipc_key 1235
slave {
pcm "digital-hw"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
}
# Control device (mixer, etc.) for the card
ctl.dmix-digital {
type hw
card 0
}
Di conseguenza la videata di configurazione generale di MythTv diventa come segue:
ALSA:plughw:0,1 indica il device 1 della scheda 0.
Questi dati si ottengono come detto sopra dal comando aplay -l che sul mio Pundit da quanto segue:
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: IXP [ATI IXP], device 0: ATI IXP AC97 [ATI IXP AC97]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: IXP [ATI IXP], device 1: ATI IXP IEC958 [ATI IXP IEC958 (AC97)]
Subdevices: 0/1
Qui vediamo che il device 1 della scheda 0 è l'uscita digitale
Ecco quindi la configurazione della scheda Musica:
Qui uso ALSA:pcm:digital che accetta qualsiasi sample rate.
Occorre infine verificare con il comando
alsamixer
che i livelli dei canali siano a posto e che l'uscita ottica non sia impostata a mute, in tale caso selezionarla e abilitarla con il tasto M.
Ok, con la musica siamo a posto, vediamo come siamo messi con la TV digitale.
Fedora 12 e DVB MSI Digivox Mini II 3.0
La mia macchina utilizza un kernel 2.6.31, ma purtroppo la pen USB della MSI non è supportata.
Dopo avere spulciato di tutto e di più, ecco che mettendo insieme un paio di post separati ottengo quello che voglio.
Il problema consiste nel fatto che i driver della scheda non sono presenti in v4l-dvb, ma li possiamo compilare noi (in definitiva ce lo aspettavamo quando abbiamo installato gli strumenti di sviluppo no?)
Ottenere e patchare il sorgente di v4l-dvb
Ecco la procedura (si tratta di un adattamento di due separati post, il merito va agli autori non a me):
mkdir digivox
cd digivox
hg clone http://linuxtv.org/hg/v4l-dvb
wget http://media.ubuntuusers.de/forum/attachments/2103272/090730_RTL2832U_LINUX_Ver1.1.rar
unrar x -ep 090730_RTL2832U_LINUX_Ver1.1.rar ./v4l-dvb/linux/drivers/media/dvb/dvb-usb
cd v4l-dvb
for i in `find . -name *.pl`; do chmod +x $i ; done
gedit ./linux/drivers/media/dvb/dvb-usb/Makefile
Quasi alla fine del file inseriamo:
dvb-usb-rtl2832u-objs = demod_rtl2832.o dvbt_demod_base.o dvbt_nim_base.o foundation.o math_mpi.o nim_rtl2832_mxl5007t.o nim_rtl2832_fc2580.o nim_rtl2832_mt2266.o rtl2832u.o rtl2832u_fe.o rtl2832u_io.o tuner_mxl5007t.o tuner_fc2580.o tuner_mt2266.o tuner_tua9001.o nim_rtl2832_tua9001.o
obj-$(CONFIG_DVB_USB_RTL2832U) += dvb-usb-rtl2832u.o
Quindi:
gedit ./linux/drivers/media/dvb/dvb-usb/Kconfig
Inserimento alla fine del file
config DVB_USB_RTL2832U
tristate "Realtek RTL2832U DVB-T USB2.0 support"
depends on DVB_USB
help
Realtek RTL2832U DVB-T driver
gedit ./linux/drivers/media/dvb/dvb-usb/rtl2832u.c
(1. Rimuovere il commento// dalla linea 12:)
//DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
(2. rimpiazzare le linee 61-63 con:)
if ( ( 0== dvb_usb_device_init(intf,&rtl2832u_1st_properties,THIS_MODULE,NULL,adapter_nr) )||
( 0== dvb_usb_device_init(intf,&rtl2832u_2nd_properties,THIS_MODULE,NULL,adapter_nr) ) ||
( 0== dvb_usb_device_init(intf,&rtl2832u_3th_properties,THIS_MODULE,NULL,adapter_nr) ))
occhio al return 0; che deve rimanere
gedit ./linux/drivers/media/dvb/dvb-usb/tuner_tua9001.c
(cercare 19.2 e 20.48 e sostituirli rispettivamente con 19_2 e 20_48:)
#elif defined(CRYSTAL_19.2_MHZ) /* Frequency 19.2 MHz */
#elif defined(CRYSTAL_19_2_MHZ) /* Frequency 19.2 MHz */
#elif defined(CRYSTAL_20.48_MHZ) /* Frequency 20,48 MHz */
#elif defined(CRYSTAL_20_48_MHZ) /* Frequency 20,48 MHz */
make
premere CTRL-C dopo alcuni secondi
gedit ./v4l/.config
(rimpiazzare CONFIG_DVB_FIREDTV=m con CONFIG_DVB_FIREDTV=n:)
CONFIG_DVB_FIREDTV=m
CONFIG_DVB_FIREDTV=n
Disabilitazione di radio per evitare errori di compilazione
gedit v4l-dvb/linux/drivers/media/Makefile
Modificare le righe presenti in questo modo:
#
# Makefile for the kernel multimedia device drivers.
#
obj-y := common/
#obj-y += video/
#obj-$(CONFIG_VIDEO_DEV) += radio/
obj-$(CONFIG_DVB_CORE) += dvb/
make clean
make
make install
Non dovreste avere più errori di cimpilazione (per compilare vi serverà almeno il pacchetto kernel-headers se non volete installare kernel devel) ma alla fine delle procedura la scheda è correttamente riconosciuta:
Test di funzionamento
Inseriamo ora la penna in una qualsiasi porta USB e lanciamo dmesg per averne la prova
dmesg
dvb-usb: found a 'DK DVBT DONGLE' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (DK DVBT DONGLE)
DVB: registering adapter 0 frontend 0 (Realtek RTL2832 DVB-T)...
dvb-usb: DK DVBT DONGLE successfully initialized and connected.
dvb-usb: found a 'DK DVBT DONGLE' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (DK DVBT DONGLE)
DVB: registering adapter 1 frontend 0 (Realtek RTL2832 DVB-T)...
dvb-usb: DK DVBT DONGLE successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_rtl2832u
WOW anche questa è andata!
Nel mio caso la sintonia non identifica alcun canale, ma questo è normale visto che la mia zona ancora non dispone di copertura digitale.
Speriamo presto di potere testare anche le funzioni di visualizzazione e registrazione digitale!
Abilitare il login automatico e scavalcare il keyring di Gnome
Un box "dedicato" deve essere fatto in modo che quando viene acceso va direttamente a media center, senza richiedere alcun intervento.
Ma Linux invece chiede il login.
Quindi scavalchiamo il problema
vi /etc/gdm/custom.conf
Aggiungiamo in coda il seguente contenuto (questo funziona anche su Fedora 13):
[daemon]
AutomaticLogin=nomeutente
AutomaticLoginEnable=true
TimedLoginEnable=true
TimedLogin=nomeutente
TimedLoginDelay=1
Naturalmente sostituite nomeutente con il nome dell'utente che deve eseguire il media center e dopo un secondo di attesa alla prossima accensione del media center vi troverete ad avere eseguito l'accesso.
Già che ci siamo disabilitiamo anche lo screen saver in modo defnitivo aggiungendo queste righe al file /etc/X11/xorg.conf:
Section "ServerFlags"
Option "blank time" "0"
Option "standby time" "0"
Option "suspend time" "0"
Option "off time" "0"
EndSection
Avviare MythTV in modo automatico
Questo è vermente facile.
Da Gnome sotto Sistema basta scegliere Applicazioni di Avvio e aggiungere MythTv
Gioco fatto!
Disabilitare lo screensaver
Facile anche questo:
Sistema -> Preferenze -> Gestione Alimentazione
Impostare i valori a mai
Sistema -> Preferenze -> Salvaschermo
Togliere la spunta a "Avviare il salvaschermo quando il computer è inattivo"
Scavalcare la richiesta di password del keyring
Come ho detto il mio LMC (Linux Media Center) è collegato alla rete di casa attraverso una scheda wireless.
Per questo motivo ad ogni avvio del LMC mi ciene chiesta la password di sblocco del portachiavi di Gnome per accedere alla chiave di accesso alla rete wireless.
Tutte le soluzioni trovate su internet per lo sblocco automatico del portachiavi NON FUNZIONANO CON IL LOGIN AUTOMATICO, in quanto l'utente non fornisce mai la password di accesso e, quindi, non è possibile sbloccare il Portachiavi.
L'unica soluzione che ho trovato, consiste nel mettere una password vuota al Portachiavi utilizzando Seahorse (Applicazioni -> Accessori -> Password e crittografia)
ATI Radeon 9100 IGP integrata su Fedora 12
Questa scheda ha un connettore VGA, uno DVI, uno SuperVideo e uno composito.
Insomma tutto quanto uno possa desiderare si direbbe: e invece no.
I driver Open inclusi con X radeon no supportano il TV out.
Poco male, mi dico, mi toccherà installare i drivers Closed Source di ATI, e con una rapida ricerca sul sito ATI trovo i drivers 8.28 che dichiarano, nelle note, il supporto per il TV out della mia 9100.
Dopo quasi 60 mega di download scopro che l'installer non parte neppure lamentando la mancanza del server X.
Altra ricerca sul sito ATI e scopro gli ultimissimi divers 9.28 rilasciati a Dicembre 2009.
Dopo 80 mega di download, stavolta l'installer parte, ma la mia 9100 non è più supportata.
Nuova ricerca su Google e scopro che esistevano dei drivers su rpm fusion che con un hack binario potevano attivare il video out.
Naturalmente non esistono più e mi tocca optare per un convertitore esterno da VGA a composito (o a quello che voglio visto che ha un sacco di uscite).
Se qualcuno avesse notizie su come attivare il TV out della Radeon 9100 su Fedora 12 sarei molto più contento.
Ma in ogni caso ora ho audio out e video out.
Sembra quasi un Media center...
Ora è il momento del telecomando
Ogni Media Center che si rispetti dispone di un telecomando con il quale eseguire le cose più semplici come fare partire un film, metterlo in pausa o navigare tra i menu.
Mi procuro un telecomando qualsiasi con ricevitore USB.
Appena lo inserisco nella porta USB il sistema lo riconosce, ma come al solito le cose non sono semplici.
Il ricevitore viene visto mezzo come una tastiera e mezzo come un mouse, ma apparentemente non da segni di vita.
Dopo diversi tentativi scopro che devo sostituire la pila e il telecomando torna alla vita...
Ho però bisogno di rimappare il tasto F5 presente sul telecomando sul tasto M che in MythTV serve per accedere alle opzioni dei menu (in realtà potrei fare il rovescio e rimappare il comando dei menu di MythTV sul tasto F5, ma sto sperimentando e quindi va benissimo così).
Faccio quindi la conoscenza con xmodmap e nulla è più semplice che rimappare il tasto F5 inserendo la seguente riga in fondo al file .baschrc presente nella home dell'utente che esegue MythTV
xmodmap -e "keycode 73 =m"
A questo punto la pressione del tasto F5 (sul telecomando o sulla tastiera che ho collegato al Pundit) mi permette di accedere ai menu di MythTV
Grande!
Modificare i player di default di MythTV
MythTV può essere configurato in modo da utilizzare players esterni.
Nel mio caso mi sono accorto che il player interno non riusciva a leggere l'audio di alcuni files avi.
Ho così sostituito il player interno con mplayer come segue:
Sostituire il player per video con mplayer
Advanced -> Impostazioni -> Media -> Video ho inserito la seguente stringa come player:
mplayer -ao alsa:device=spdif -fs -zoom -quiet -vo xv -alang it en -framedrop %s
L'istruzione -ao alsa:device=spdif dice ad mplayer di mandare tutto l'audio all'uscita digitale, se volesse utilizzare qualcos'altro basterebbe specificarlo allo stesso modo (p.e. -ao oss)
Se avete un video 16:9 potete anche aggiungere l'istruzione
-monitoraspect 16:9
Sostituire il player video con VLC
Allo stesso modo potremmo usare VLC (non ho provato questa cosa ma la appunto qui per dei test)
vlc file://%s vlc:quit
Prima di fare questo dovremmo impostare le preferenze di VLC in modo che utilizzi la modalità fullscreen
Ecco il link al post originario http://mythtvbox.blogspot.com/2006/10/switching-from-mplayer-to-vlc.html
Videogiocare su Linux con emulatori di consolles
Il bello di MythTV, ora che qualcosa ho capito, è che la sua struttura modulare ti permette di farci dell cose da matti.
Sostanzialmente ci sono tre tipi di emulatori che io conosco per Linux (e per altro ovviamente):
- MAME un software che permette di emulare i giochi da bar meglio noto ora come SDL-MAME
- emulatori della consolle SEGA Megadrive (chiamata Genesis negli Stati Uniti)
- emulatori della consolle SuperNES della Nintendo
Tutti questi emulatori funziionano mediante la lettura di files ROM che sono estratti dalla cartucce originali e messi a disposizione per il download.
Il problema è che non tutte le ROM sono disponibili gratuitamente e/o legalmente, quindi è possibile scaricare solamente le ROM dei giochi che si possiedono.
Visto che ho ancora una montagna di cartucce di queste consolles, tra cui gli indimenticabili Streetfigher e Robocop Vs Terminator, decido di cimentarmi nell'utilizzo del media center come consolle.
Installare SDL-MAME
Avendo già installlato i repo di rpmfusion, installare MAME è cosa semplicissima:
yum install sdl-mame
Questo installa tutto il necessario con una ROM di esempio
Da terminare ...
Distribuire la musica sulla rete
Questo era un obbiettivo secondario ma, data la semplicità di implementazione, non ho potuto resistere alla tentazione.
Firefly (sito http://www.fireflymediaserver.org ) è senza dubbio uno dei più interessanti server DAAP opensource disponibili sulla rete.
Questo software permette infatti di collegare client remoti con i software più disparati (Amarok, iTunes e Songbird solo per citarne alcuni) e mettere a disposizione i files stoccati sul server.
Il vecchio nome di Firefly è mtt-daap e proprio con questo nome possiamo installarlo in fedora con un semplicissimo
yum install mt-daapd
Una volta fatto è necessario editare il file di configurazione posto sotto /etc/mtt-daap.conf per impostare pochi importanti parametri.
Trattandosi di un box dedicato, occorre che il server "giri" con il nome dell'utente ha fa girare MythTV in quanto, diversamente, non sarà in grado di leggere la directory contenente gli mp3.
Quindi i parametri che ho dovuto cambiare sono i seguenti:
mp3_dir /la/directory/della/musica
runas tuoutente
Ora collegandosi alla porta 3689 ed utilizzando la password specificata nel file di configurazione (il default è utente admin e password mt-daapd) possiamo accedere alle opzioni del server.
E da qualsiasi client della rete ci possiamo collegare al server
WOW!
Trucchi da Myth ... omane
Ora che disponiamo di un server multimediale coi fiocchi, ci sono alcuni trucchi che possono venirci utili quindi man mano che li trovo li elencherò qui.
Concatenare due files AVI
Può accadere di dovere concatenare due o più files AVI per unire ad esempio due "tempi" DIVIX originariamente messi su due CD.
Niente di più facile, basta aprire un terminale e scrivere
mencoder -oac copy -ovc copy -o output.avi input1.avi input2.avi
il file output avi conterrà la concatenazione di input 1.avi e input2.avi
Estrarre l'audio da un video
Trovato una clip con un remix fantastico?
Ecco come estrarre l'audio da qualsiasi avi, mpeg o flv e convertirlo in mp3
mplayer -dumpaudio mialic.flv -dumpfile miaclip.mp3
Ora se verifichiamo il file di uscita con il comando file scopriamo una brutta cosa:
file miaclip.mp3
MPEG ADTS, layer III, v2, 8 kBits, 22.05 kHz, Monaural
Allora modifichiamo la qualità così:
ffmpeg -i miaclip.flv -ab 128 -ar 44100 miaclip.mp3
In questo modo con ab indichiamo il sample rate di uscita e con ar il campionamento
Playlist in Mythvideo
Mythvideo non permette direttamente di gestire playlist.
In attesa che questa funzione venga implementata ecco una soluzione che permette di creare una playlist di viedo.
Io, ad esempio, ho una cartella in cui ho una serie di video musicali e li vorrei eseguire in squenza.
Utilizzando mplayer come player, è possibile creare una playlist come segue:
Creare un nuovo tipo di file .pls
In Advanced->Impostazioni->Media->Impostazioni video->Tipi di file
Aggiungere un nuovo tipo di file (io ho scelto pls da inserire senza il punto
Nella casella del comando da eseguire io ho messo il comando che uso per lanciare mplayer ma specificando -playlist come segue:
mplayer -ao alsa:device=spdif -fs -zoom -quiet -vo xv -alang it en -framedrop -playlist %s
Ora siamo pronti per creare la nostra prima playlist che richiederà il terminale
Creare la playlist
Le playlist per mplayer non sono altro che un elenco di files da eseguire in sequenza, quindi io mi sono creato una cartella Playlist sotto la cartella dvd in cui metterò tutte le mie playlist.
Ora volendo eseguire tutti i files che sono nella cartella Musicali dentro alla cartella dvd basta scrivere sul terminale
ls -d $PWD/Musicali >Playlist/musicali.pls
A questo punto basta andare in Guarda video rifare la scansione dei nuovi files e scegliere la nostra playlist per goderci i nostri videoclip in tutta tranquillità
Convertire i files video tra formati diversi
Ad esempio ho avuto necessità di convertire da mp4 a AVI per fare in modo che mplayer potesse leggere dei files scaricati da youtube.
Posto il concetto che il contenitore (AVI o MKV per capirci) può ospitare un flusso video codificato nei modi più disparati ed uno o più flussi audio, il tool da riga di comando "principe" per fare queste conversioni è ffmpeg.
Ma esiste un "alter ego" grafico che si chiama avidemux che permette di fare le conversioni in modo semplicissimo.
Installare avidemux è facilissimo: avendo installato i repo di rpmfusion vi basta scrivere
yum install avidemux
Dopo pochi istanti avidemux è installato nelle Applicazioni -> Audio Video.
Una volta apertolo selezioniamo il file da convertire e poi nei due poopup per il video e per l'audio scegliamo la codifica di destinazione.
Nel mio caso ho scelto XVID e MP3.
Selezioniamo il formato di uscita, io ho scelto AVI, e scegliamo salva filmato dal menu.
Pochi istanti e la conversione è avvenuta senza problemi!
Abilitare gli MP4 in Mplayer
Contrariamente a quanto credevo io, mplayer è benissimo in grado di leggere i files mp4.
Basta:
- aprire mplayer e fare click con la destra e sciegliere "preferenze"
- Nella linguetta "Video" assicurarsi che sia selezionato il driver X11/xv (che dovrebbe essere il default)
- Nella linguetta "Codec & Demuxers" selezionare nella casella Audio Codecs "FFmpeg/libavcodec"
Cliccare ok, chiudere e riaprire mplayer e gli mp4 si possono leggere
Convertire da wmv a avi
Altra riga di comando che risolve questo problema
mencoder infile.wmv -ofps 23.976 -ovc lavc -oac copy -o outfile.avi
Utilizzare VLC come player di default
Mplayer è un ottimo software, ma il suo concorrente VLC vanta una maggiore predisposizione verso "qualsiasi formato".
Ho quindi mantenuto mplayer come plaer di default per i DVD, ma ho impostato VLC come player di default per i filmati
La riga da inserire è facilissima:
vlc %s vlc://quit
In questo modo vlc esegue i filemati.
Prima però ho modificato qualche impostazione di default di VLC per:
- abilitare l'audio su SPDIF in ogni caso
- funzionare a pieno schermo
- utilizzare il tasto ESC per uscire in modo da avere un comportamento "consistente" rispetto ai comandi di MythTV
Gestire le icone cartelle e le meta informazioni di film e telefilm
Se organizzate i votri media in cartelle, MythVideo vi può fare vedere delle immagini.
- se esiste una immagine che si chiama folder.jpg (o .png o .gif) usa quella
- altrimenti usa la prima immagine utile che trova (se ce n'è una)
Per scaricare copertina e informazioni di film e telefilm basta andare sul dile da MythVideo e digitare la lettera i (come informazioni), quindi scegliere metadata e poi download metadata.
Se MythVideo non trovasse i dati, provate ad indicargli manualmente il titolo in lingua inglese.
Per le serie tv se nominate il file come nomeserie - stagionexepisodio.avi|flv ecc, MythVideo riconoscerà automaticamente la serie tv e la stagione, scaricando i dati corretti per il singolo episodio.
Unico "appunto" è che questi dati sono in lingua inglese.
Se la skin che utilizzate prevede la visualizzazione
Pulseaudio fa i capricci con VLC
Se pulseaudio fa click sull'output digitale e "silenzia" l'audio, provate ad impostare dalle preferenze audio come hardware SOLO l'uscita digitale