Un'idea geniale: costruire un Media Center su Linux con pezzi di recupero (per lo più)

ASUS Pundit-RIdea 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

Database MythTV


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:

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

Presa SPDIFCome 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:

Audio digitale MythTV

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:

MythTv 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

USB MSI DIGIVOX mini IILa 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