MediaCenter con Mandriva

Da Wiki italiano Mandriva.

Questa pagina è un guida di riferimento per tutti coloro che vogliono cimentarsi nell'installare e personalizzare la propria distribuzione Mandriva allo scopo di ottenere un mediacenter/htpc.


Indice

Premessa

Per poter configurare opportunamente la nostra distribuzione per il nostro scopo sono d'obbligo alcune considerazioni:

  • Tempi ridotti per il caricamento del sistema operativo
  • Ridotto utilizzo delle risorse
  • Stabilità del sistema
  • Reattività


A tale scopo ho selezionato:

  • GDM come login manager
  • OpenBox come windows manager

L'utilizzo di questi manager implica che alcune configurazioni debbano essere apportate manualmente modificando direttamente i files di configurazione, ma il miglioramento in termini di performance è visibile.

La gestione delle periferiche DVB-T, DVB-S, DVB-S2 è a cura di VDR - Video Disk Recorder, mentre le applicazioni di front end per la gestione del mediacenter sono:

  • XBMC per mandare il play contenuti audio e video da supporti locali e streaming da internet (utilizzando i vari addons supportati come Youtube, Previewnetworks, etc.)
  • Xineliboutput (VDR plugin) per vedere la tv, canali HD inclusi.

La distribuzione utilizzata è Mandriva 2010.1 architettura x86_64 e di seguito elenco l'hardware utilizzato:

  • Zotac ID-11 MiniPC con processore Atom D510 dual core, wifi integrata, scheda video NVidia ION2 Next Generation da 512 MB DDR3
  • 4GB Ram Kingstone
  • 250 GB Hard Disk 7200 rpm Western Digital
  • TeVii S660 DVB-S/S2 USB

Scegliamo di utilizzare l'uscita audio su cavo HDMI in quanto è la situazione più comune, ma è possibile utilizzare anche l'audio su cavo ottico.

Installazione e Kernel

  • A questo punto possiamo procedere con l'installazione della distribuzione sull'hard disk, io sono partito installando la versione Mandriva XfceLive come prima installazione in quanto l'ambiente desktop installato verrà usato solo in fase di configurazione, una volta installato il desktop manager definitivo (Openbox) non verrà praticamente più usato.
  • A seguire configuriamo i repositories online, un modo per farlo in modo semplice e veloce è utilizzare è EasyUrpmi, io ho abilitato praticamente tutto tranne i testing, ho aggiunto anche i repositories MIB dove troviamo comodamente skype già pacchettizzato. Al termine della configurazione procediamo con l'aggiornamento del sistema (come utente root):
Image:Konsole.png
[user@localhost ~]$ su -
Password :
Image:Konsole.png
[root@locahost ~]# urpmi --auto-update --auto-select
  • Dalla r15379 i drivers s2 liplianin gestiscono correttamente la TeVii S660 DVB-S/S2 USB. Ad oggi (feb. 2011) questa release dei driver non è inclusa negli ultimi kernel quindi andiamo a compilarli dai sorgenti. Per prima cosa vanno installati anche i sorgenti del kernel (come utente root):
Image:Konsole.png
[root@locahost ~]# urpmi urpmi kernel-desktop-devel-latest kernel-desktop-latest kernel-source-latest
se avete avviato Mandriva linux già con l'ultimo kernel disponibile non avete bisogno di riavviare, altrimenti dovrete riavviare e al successivo boot, selezionare l'ultimo kernel disponibile.
  • Passiamo all'installazione dei driver NVidia per il server grafico che avviene praticamente in automatico in quanto, una volta selezionata la tipologia di schede video NVIDIA "GeForce 6100 to GeForce 360", viene chiesto all'utente se vuole utilizzare un driver proprietario per questa scheda, noi chiaramente rispondiamo SI.



Per la corretta compilazione e installazione dei driver dvb-usb di seguito descritta è necessario che il sistema non stia usando già i moduli dvb-usb, quindi la TeVii S660 va disconnessa dalla porta usb e va preventivamente lanciato il comando di rilascio dei moduli dvb-usb come segue. Questo passaggio è fondamentale, se si dovessero avere i moduli caricati durante la compilazione e l'installazione, al successivo riutilizzo il caricamento del modulo fallirà.
Image:Konsole.png
[root@locahost ~]# modprobe -r dvb-usb-dw2102 dvb-usb
  • Compiliamo e installiamo adesso i driver dvb-usb (va detto che in futuro questi driver saranno inglobati direttamente nel kernel linux, quindi questa operazione è necessaria solo fino ad allora). Scarichiamo i driver dal repository di Igor Liplianin nella nostra cartella tmp, apriamo una console e compiliamo i drivers:
Image:Konsole.png
[user@localhost ~]$ cd ~/tmp
[user@localhost tmp]$ wget http://mercurial.intuxication.org/hg/s2-liplianin/archive/tip.tar.gz
[user@localhost tmp]$ tar xf tip.tar.gz

accediamo alla cartella dei sorgenti come utente root e provvediamo a: eliminare ogni traccia degli attuali driver, compilare i driver nuovi, installiamo i driver:

Image:Konsole.png
[user@localhost ~]$ su -
Password :
Image:Konsole.png
[root@locahost ~]# cd /home/<user>/tmp/s2-liplianin*
[root@locahost s2-liplianin-...]# make rminstall
[root@locahost s2-liplianin-...]# make distclean
[root@locahost s2-liplianin-...]# make all
[root@locahost s2-liplianin-...]# make install
[root@locahost s2-liplianin-...]# depmod -a
  • Vanno infine copiati i firmware per gestire correttamente il dispositivo (dvb-fe-ds3000.fw, dvb-usb-s660.fw) nella cartella /lib/firmware (sempre come utente root). Questi firmware li potete trovare nel pacchetto dei driver s2_liplianin_1.tar per la TeVii S660 come si può notare anche dalla stessa pagina di supporto del fornitore:
Image:Konsole.png
[root@locahost ~]# cd /home/<user>/tmp
[root@localhost tmp]# wget http://www.tevii.com/s2_liplianin_1.tar
[root@localhost tmp]# tar xvf s2_liplianin_1.tar
[root@localhost tmp]# cd tevii_s2_liplianin*/linux/firmware
[root@localhost firmware]# cp *.fw /lib/firmware
  • Installiamo adesso i pacchetti di cui abbiamo bisogno:
Image:Konsole.png
[root@locahost ~]# urpmi openbox thunar gdm vlc k3b amarok skype kmess amule transmission obconf gedit terminal xbmc tint2 lirc gvolwheel flash-player-plugin-preview wget qtconfig gnome-alsamixer gnome-control-center git hg sudo gigolo pcmanfm java gnome-system-monitor ssh-server win32-codecs
A questa lista potete aggiungere quanti applicativi volete, tuttavia va ricordato che questo diventerà un mediacenter, quindi lo schermo potreste averlo ben lontano da dove sarete seduti e quindi utile a mio parere limitare l'installazione alle sole applicazioni che realmente verranno usate.
  • Abilitiamo adesso gli utenti a riavviare il pc:
Image:Konsole.png
[root@locahost ~]# chmod u+s /sbin/shutdown
  • Configuriamo l'uscita audio HDMI come uscita di default del sistema:
Image:Konsole.png
[root@locahost ~]# gedit /etc/asound.conf
# HDMI default
pcm.!default {
    type hw
    card 1
    device 7
}

l'identificativo card=1 e device=7 viene fuori analizzando la risposta al comando

Image:Konsole.png
[user@localhost ~]$ aplay -l
  • Impostiamo Thunar per l'automount dei dispositivi usb: lanciamo Thunar poi selezioniamo
Modifica > Preferenze > scheda Avanzate > attiviamo il flag su "abilita la gestione dei volumi" > tasto Configura
Configuriamo la scheda Archiviazione come segue:


Librerie Xine 1.2

Rimuoviamo eventualmente tutte le precedenti versioni della xine-lib1.2 e installiamo tutte le dipendenze necessarie per compilarle dai sorgenti:
Image:Konsole.png
[root@locahost ~]# urpme xine1.2-xvdr xine1.2-common xine-ui lib64xine2 lib64xine1.2 libxine2 libxine1.2
[root@locahost ]# urpmi zlib-devel freetype2-devel fontconfig-devel libx11-devel libxext-devel libxv-devel libalsa-devel libjack-devel pulseaudio-devel esound-devel a52dec-devel ffmpeg-devel libgdk_pixbuf2.0-devel libmagick-devel libmad-devel libmodplug-devel libmpcdec-devel libmng-devel speex-devel libtheora-devel libvorbis-devel gnome-vfs2-devel libsmbclient-devel libcdio-devel libvcd-devel lirc-devel aalib-devel libcaca-devel directfb-devel mesagl-devel mesaglu-devel SDL-devel xcb-devel libxinerama-devel libxvmc-devel vdpau-devel libflac-devel libv4l-devel xmlto librsvg optipng gettext-devel docbook-dtd44-xml xdg-basedir-devel libfaad2-devel libdca-devel libfame-devel docbook-style-xsl
Otteniamo i sorgenti delle libxine2, li compiliamo e installiamo le librerie:
Image:Konsole.png
[user@localhost ~]$ cd ~/tmp
[user@localhost tmp]$ hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2-vdpau
[user@localhost tmp]$ cd xine-lib*
[user@localhost xine-lib...]$ ./autogen.sh --with-external-ffmpeg --disable-dxr3 --enable-w32dll --prefix=/usr --libdir=/usr/lib64 --with-w32-path=/usr/lib/codecs
[user@localhost xine-lib...]$ make
[user@localhost xine-lib...]$ su -
Password :
Image:Konsole.png
[root@locahost ~]# cd /home/<user>/tmp/xine-lib*
[root@localhost xine-lib...]# make install
[root@localhost xine-lib...]# ldconfig

Configurazione del Login Manager (GDM)

Avviamo Mandriva Control Center e selezioniamo dal menu di sinistra "avvio" > "Imposta l'accesso automatico". Selezioniamo "Si, voglio il login automatico..." e scegliamo il nostro utente dal menu, poi come Default Desktop usiamo "Openbox".

Sempre dal menu "avvio" selezioniamo "Configura l'avvio del sistema" e nelle "Opzioni principali" impostiamo la voce "Ritardo prima di avviare..." a "2", poi premiamo sul tasto "Avanti", selezioniamo l'ultimo kernel disponibile, premiamo sul tasto "Modifica" e abilitiamo la voce "predefinito".

Questo farà in modo che al boot dopo soli 2 secondi verrà avviato l'ultimo kernel disponibile e dopo il caricamento del kernel verrà avviata la sessione di Openbox dell'utente selezionato.

Configurazione del Window Manager (OPENBOX)

  • Il file di configurazione per le applicazioni da avviare al login è /home/<user>/.config/openbox/autostart.sh. Creiamo il file:
Image:Konsole.png
[user@localhost ~]$ gedit ~/.config/openbox/autostart.sh
e aggiungiamo le seguenti righe:
# for gnome settings
/usr/lib64/gnome-settings-daemon &

# nvidia settings
nvidia-settings -l&

# thunar daemon
thunar --daemon &

# Set a background color
feh --bg-center "/usr/share/xbmc/media/Splash.png" &

# Programs that will run after Openbox has started
tint2 & 
(sleep 1 && gvolwheel) &
poi lo rendiamo eseguibile
Image:Konsole.png
[user@localhost ~]$ chmod 755 /home/<user>/.config/openbox/autostart.sh
  • Il file di configurazione che determina il menu di openbox è /home/<user>/.config/openbox/menu.xml. Creiamo il file:
Image:Konsole.png
[user@localhost ~]$ gedit ~/.config/openbox/menu.xml
e aggiungiamo le seguenti righe:
<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/3.4/menu">

<menu id="apps-accessories-menu" label="Accessories">
  <item label="Calculator">
    <action name="Execute">
      <command>gcalctool</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Character Map">
    <action name="Execute">
      <command>gucharmap</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="apps-editors-menu" label="Editors">
  <item label="GEdit">
    <action name="Execute">
      <command>gedit</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="apps-term-menu" label="Terminals">
  <item label="Terminal">
    <action name="Execute">
      <command>terminal</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Lx Terminal">
    <action name="Execute">
      <command>lxterminal</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Xterm">
    <action name="Execute"><command>xterm</command></action>
  </item>
</menu>

<menu id="apps-net-menu" label="Internet">
  <item label="Chrome">
    <action name="Execute">
      <command>/home/mediacenter/Scaricati/chrome-linux/chrome-wrapper</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Firefox">
    <action name="Execute">
      <command>firefox</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Transmission (torrent)">
    <action name="Execute">
      <command>transmission-gtk</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="aMule">
    <action name="Execute">
      <command>amule</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Skype">
    <action name="Execute">
      <command>skype</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="KMess Instant Messenger">
    <action name="Execute">
      <command>kmess</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="apps-office-menu" label="Office">
  <item label="OpenOffice Base">
    <action name="Execute">
      <command>oobase3.2</command>
    </action>
  </item>
  <item label="OpenOffice Calc">
    <action name="Execute">
      <command>oocalc3.2</command>
    </action>
  </item>
  <item label="OpenOffice Draw">
    <action name="Execute">
      <command>oodraw3.2</command>
    </action>
  </item>
  <item label="OpenOffice Impress">
    <action name="Execute">
      <command>ooimpress3.2</command>
    </action>
  </item>
  <item label="OpenOffice Math">
    <action name="Execute">
      <command>oomath3.2</command>
    </action>
  </item>
  <item label="OpenOffice Writer">
    <action name="Execute">
      <command>oowriter3.2</command>
    </action>
  </item>
</menu>

<menu id="apps-multimedia-menu" label="Multimedia">
  <item label="Amarok">
    <action name="Execute">
      <command>amarok</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="K3b">
    <action name="Execute">
      <command>k3b</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Vlc">
    <action name="Execute">
      <command>vlc</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Xbmc">
    <action name="Execute">
      <command>xbmc</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  <item label="Xine TV">
    <action name="Execute">
      <command>/usr/local/bin/runxine</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="apps-fileman-menu" label="File Managers">
  <item label="Thunar">
    <action name="Execute">
      <command>Thunar</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="PCMan File Manager">
    <action name="Execute">
      <command>pcmanfm</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Gigolo">
    <action name="Execute">
      <command>gigolo</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="apps-graphics-menu" label="Graphics">
  <item label="Gimp">
    <action name="Execute">
      <command>gimp</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Inkscape">
    <action name="Execute">
      <command>inkscape</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
</menu>

<menu id="system-menu" label="System">
  <item label="System Monitor">
    <action name="Execute">
      <command>gnome-system-monitor</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Pulseaudio Volume Control">
    <action name="Execute">
      <command>pavucontrol</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Openbox Configuration Manager">
    <action name="Execute">
      <command>obconf</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Gnome Control Center">
    <action name="Execute">
      <command>gnome-control-center</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Qt Config">
    <action name="Execute">
      <command>qtconfig</command>
      <startupnotify><enabled>yes</enabled></startupnotify>
    </action>
  </item>
  <item label="Mandriva Control Center">
    <action name="Execute">
      <command>mcc</command>
      <startupnotify>
        <enabled>yes</enabled>
      </startupnotify>
    </action>
  </item>
  <separator />
  <item label="Reconfigure Openbox">
    <action name="Reconfigure" />
  </item>
</menu>

<menu id="root-menu" label="Openbox 3">
  <separator label="Applications" />
  <menu id="apps-accessories-menu"/>
  <menu id="apps-editors-menu"/>
  <menu id="apps-graphics-menu"/>
  <menu id="apps-net-menu"/>
  <menu id="apps-office-menu"/>
  <menu id="apps-multimedia-menu"/>
  <menu id="apps-term-menu"/>
  <menu id="apps-fileman-menu"/>
  <separator label="System" />
  <menu id="system-menu"/>
  <separator />
  <item label="Log Out">
    <action name="Exit">
      <prompt>yes</prompt>
    </action>
  </item>
  <item label="Restart">
    <action name="Execute">
      <command>/sbin/shutdown -r 0 now</command>
      <startupnotify>
        <enabled>no</enabled>
      </startupnotify>
    </action>
  </item>
  <item label="Power Off">
    <action name="Execute">
      <command>/sbin/shutdown -h 0 now</command>
      <startupnotify>
        <enabled>no</enabled>
      </startupnotify>
    </action>
  </item>

</menu>

</openbox_menu>
  • Il file di configurazione per interagire con la sessione di openbox è /home/<user>/.config/openbox/rc.xml. Editiamo il file:
Image:Konsole.png
[user@localhost ~]$ gedit ~/.config/openbox/rc.xml
e aggiungiamo le seguenti righe:
    <keybind key="C-A-d">
      <action name="Execute">
        <execute>/usr/local/bin/runxine</execute>
      </action>
    </keybind>
    <keybind key="C-A-b">
      <action name="Execute">
        <execute>xbmc</execute>
      </action>
    </keybind>
questo ci permetterà di lanciare xbmc o il frontend di vdr direttamente da telecomando o usando la combinazione CTRL+ALT+b per xbmc e CTRL+ALT+d per il frontend di vdr

Configurazione taskbar (TINT2)

  • Il file di configurazione di tint2 (gestore della taskbar) è /home/<user>/.config/tint2/tint2rc. Apriamo il file:
Image:Konsole.png
[user@localhost ~]$ gedit ~/.config/tint2/tint2rc
e settiamo alcuni dei parametri come segue:
panel_size = 94% 36
task_maximum_size = 140 35
time1_format = %H:%M
time1_font = sans 10
time2_format = %Y-%m-%d
time2_font = sans 8
clock_font_color = #ffffff 76
clock_padding = 1 0
clock_background_id = 0
time1_timezone = :Europe/Rome
time2_timezone = :Europe/Rome


Configurazione dei fonts e dell'aspetto per Qt e Kde

  • Il file di configurazione dei fonts è /etc/fonts/fonts.conf. Apriamo il file (come utente root):
Image:Konsole.png
[root@locahost ~]# gedit /etc/fonts/fonts.conf
e aggiungiamo i settaggi alla sezione fontconfig:
  <fontconfig>
  ...
  ...

    <match target="font" >

      <edit mode="assign" name="hinting" >
        <bool>true</bool>
      </edit>

      <edit mode="assign" name="hintstyle" >
        <const>hintslight</const>
      </edit>

      <edit mode="assign" name="antialias" >
        <bool>true</bool>
      </edit>

    </match>


    <match target="pattern">

      <edit name="dpi" mode="assign">
        <double>96</double>
      </edit>

    </match>

  </fontconfig>
  • Per configurare l'aspetto delle applicazioni Qt usiamo:
Image:Konsole.png
[user@localhost ~]$ qtconfig
  • Per configurare l'aspetto delle applicazioni Gtk usiamo:
Image:Konsole.png
[user@localhost ~]$ gnome-appearance-properties
selezionare la scheda "Tipi di carattere" > pulsante "Dettagli..." > Approssimazione (hinting) leggera



Installazione e configurazione di VDR e relativi plugins

  • Otteniamo i sorgenti dell'ultima versione unstable (che supporta DVB-S2) di VDR:
Image:Konsole.png
[user@localhost ~]$ cd ~/Scaricati
[user@localhost Scaricati]$ git clone git://git.gekrumbel.de/vdr.git
[user@localhost Scaricati]$ cd vdr/PLUGINS
[user@localhost PLUGINS]$ mkdir lib
[user@localhost PLUGINS]$ cd src
[user@localhost src]$ wget git clone git://projects.vdr-developer.org/xineliboutput.git
[user@localhost src]$ cd ../..
  • Editiamo il file Makefile:
Image:Konsole.png
[user@localhost ~]$ gedit Makefile
e settiamo alcuni dei parametri come segue:
VIDEODIR = /media/video
CONFDIR  = /etc/vdr
  • Creiamo le cartelle necessarie:
Image:Konsole.png
[user@localhost ~]$ su -
Password :
Image:Konsole.png
[root@locahost ~]# mkdir -p /etc/vdr/plugins/xineliboutput
[root@localhost ~]# mkdir /media/video
nella cartella /home/<user>/Scaricati/vdr/PLUGINS/src possiamo aggiungere tutti i plugin di cui abbiamo bisogno, ad esempio femon per le informazioni sul segnale e tanti altri.
  • Compiliamo i sorgenti:
Image:Konsole.png
[user@localhost ~]$ cd ~/Scaricati/vdr
[user@localhost vdr]$ make clean
[user@localhost vdr]$ make clean-plugins
[user@localhost vdr]$ make
[user@localhost vdr]$ make plugins
  • Copiamo i files generati nelle apposite cartelle:
Image:Konsole.png
[root@locahost ~]# cd /home/<user>/Scaricati/vdr/PLUGINS/src/xineliboutput
[root@localhost xineliboutput]# cp vdr-sxfe mpg2c vdr-fbfe /usr/local/bin
[root@localhost xineliboutput]# cp *.mpg /etc/vdr/plugins/xineliboutput
[root@localhost xineliboutput]# cp xineplug_inp_xvdr.so /usr/lib64/xine/plugins/2.0
[root@localhost xineliboutput]# cp xineplug_post*.so /usr/lib64/xine/plugins/2.0/post
  • Creiamo il file di configurazione di xineliboutput:
Image:Konsole.png
[user@localhost ~]$ mkdir -p ~/.xine
[user@localhost ~]$ gedit ~/.xine/config_xineliboutput
con il seguente contenuto:
.version:2
audio.device.alsa_default_device:plughw:1,7
audio.device.alsa_front_device:plughw:1,7
audio.device.alsa_surround51_device:plughw:1,7
audio.output.speaker_arrangement:Stereo 2.0
audio.synchronization.av_sync_method:resample
video.output.vdpau_hd_deinterlace_method:bob
video.output.vdpau_skip_chroma_deinterlace:1
video.output.vdpau_display_queue_length:4
video.output.vdpau_deinterlace_method:bob
video.output.vdpau_sd_only_properties:noise+sharpness
video.processing.ffmpeg_choose_speed_over_accuracy:1
video.processing.ffmpeg_pp_quality:0
video.processing.ffmpeg_skip_loop_filter:all
video.processing.ffmpeg_thread_count:2
media.xvdr.num_buffers_hd:4000
media.xvdr.scr_tuning_step:150
engine.buffers.audio_num_buffers:500
engine.buffers.video_num_buffers:1500
engine.buffers.video_num_frames:25
engine.decoder_priorities.vdpau_mpeg12:1
engine.performance.memcpy_method:sse
  • Creiamo i files di configurazione per abilitare l'uso di vdr e xineliboutput dal pc:
Image:Konsole.png
[root@locahost ~]# gedit /etc/vdr/svdrphosts.conf
127.0.0.1             # always accept localhost
192.168.0.0/24        # any host on the local net
Image:Konsole.png
[root@locahost ~]# cp /etc/vdr/svdrphosts.conf /etc/vdr/plugins/xineliboutput/allowed_hosts.conf
  • Creiamo il file di associazione tasti per il frontend di vdr:
Image:Konsole.png
[root@locahost ~]# gedit /etc/vdr/remote.conf
XKeySym.Up         Up
XKeySym.Down       Down
XKeySym.Menu       m
XKeySym.Ok         Return
XKeySym.Back       BackSpace
XKeySym.Left       Left
XKeySym.Right      Right
XKeySym.Red        F1
XKeySym.Green      F2
XKeySym.Yellow     F3
XKeySym.Blue       F4
XKeySym.0          0
XKeySym.1          1
XKeySym.2          2
XKeySym.3          3
XKeySym.4          4
XKeySym.5          5
XKeySym.6          6
XKeySym.7          7
XKeySym.8          8
XKeySym.9          9
XKeySym.Info       i
XKeySym.Pause      space
XKeySym.FastFwd    F6
XKeySym.FastRew    F5
XKeySym.Power      p
XKeySym.Volume+    F12
XKeySym.Volume-    F11
XKeySym.Mute       F10
XKeySym.User7      F7
XKeySym.User8      F8
XKeySym.User9      F9

Creazione degli script necessari

  • Creiamo lo script runxine nella cartella /usr/local/bin:
Image:Konsole.png
[root@locahost ~]# gedit /usr/local/bin/runxine
e aggiungiamo le seguenti righe:
#!/bin/bash

cd /usr/local/bin

./vdr-sxfe --video=vdpau \
           --height=1080 \
           --fullscreen \
           --width=1920 \
           --audio=alsa:default \
           --aspect=16:9 \
           --post=tvtime:method=use_vo_driver,cheap_mode=0 \
           xvdr+tcp://127.0.0.1:37890

  • Creiamo lo script runvdr nella cartella /usr/local/bin:
Image:Konsole.png
[root@locahost ~]# gedit /usr/local/bin/runvdr
e aggiungiamo le seguenti righe:
#!/bin/bash

cd /home/<user>/Scaricati/vdr
./vdr -c /etc/vdr -E /var/vdr -l 3 \
        -P'xineliboutput --local=none --primary --remote=0.0.0.0:37890' \
        -u root \
        -d

Nello script runvdr possiamo inserire tutti i plugin di cui abbiamo bisogno. Adesso rendiamo eseguibili gli script appena creati:

Image:Konsole.png
[root@locahost ~]# chmod 755 /usr/local/bin/runxine
[root@localhost ~]# chmod 755 /usr/local/bin/runvdr

Creazione del servizio vdrd (avvia/arresta VDR)

  • Creiamo lo script vdrd nella cartella /etc/init.d:
Image:Konsole.png
[root@locahost ~]# gedit /etc/init.d/vdrd
e aggiungiamo le seguenti righe:
#!/bin/sh
#
# /etc/init.d/vdrd
# Subsystem file for vdr
#
# chkconfig: 345 94 6
# description: Run Video Disk Recorder (VDR)
# pidfile: /var/run/vdrd.pid

### BEGIN INIT INFO
# Provides: vdr
# Should-Start: $network $local_fs $remote_fs dkms
# Default-Start: 3 4 5
# Short-Description: Video Disk Recorder
# Description: This script launches the Video Disk Recorder
### END INIT INFO


PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

# Source function library.
. /etc/init.d/functions

RETVAL=0

start() {
        gprintf "Starting Video Disk Recorder (VDR): "
        daemon /usr/local/bin/runvdr
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/vdrd
        return $RETVAL
}


stop() {
        gprintf "Stopping Video Disk Recorder (VDR): "
        pidofproc vdr > /dev/null
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ]; then killproc vdr && rm -f /var/lock/subsys/vdrd; fi

        RETVAL=0
}


restart() {
	stop
	start
}


case "${1}" in
    "start")
        start
        ;;

    "restart")
        restart
        ;;

     "status")
  	    status vdrd
	    ;;

    "stop")
        stop
        ;;

    *)
        gprintf "Usage: ${0} {start|stop|status|restart}\n" "vdrd"
        exit 1
        ;;
esac

exit $RETVAL
installiamo lo script in init.d:
Image:Konsole.png
[root@locahost ~]# chkinstall --add vdrd

Conclusioni

Siamo finalmente giunti alla fine :) Potete partire da queste linee guida per personalizzare il vostro HTPC nel migliore dei modi. Ho personalmente testato la procedura con il kernel 2.6.36.4 e le performance sono davvero notevoli:

  • con xbmc in esecuzione (play video) carico cpu sempre < 35%
  • con frontend di vdr avviato (live tv) vdr-sxfe su canali sd e hd carico cpu sempre < 15%
  • tempo di cambio tra canali sd < 600 ms
  • tempo di cambio tra canali hd <= 1 sec. (tranne casi particolari)
  • tempo di caricamento del sistema ~38 sec.

Vi segnalo che queste prestazioni le ho avute solo dopo aver installato un LNB SINGOLO sulla mia parabola, precedentemente avevo un doppio LNB (per la ricezione di Astra e Hotbird contemporaneamente) ma la qualità del segnale soprattutto su alcuni transponder era davvero troppo scarsa.

Alla prossima guida :)

PS: In precedenza l'hardware che avevo utilizzato era il box Terratec Cinergy S2 USB HD che è supportato sotto linux dagli stessi driver ma c'è un problema ad oggi 06-2011 non ancora risolto che riguarda il caricamento del firmware per cui prima di acquistare tale hardware verificate anche sullo stesso forum di Liplianin se il box Terratec Cinergy S2 USB HD è pienamente supportato o meno.

Strumenti personali