User Tools

Site Tools


doc:appunti:linux:tux:xbmc

This is an old revision of the document!


XBMC Media Center

Si è installata la versione Live scaricata da http://xbmc.org/download/. Si tratta di una Ubuntu 10.04 LTS, con gli opportuni pacchetti XBMC versione 10.1 Dharma.

Dopo l'installazione è possibile eseguire tutte le operazioni apt-get per aggiornare l'installazione e aggiungere il software necessario. I repository Ubuntu e XBMC sono già configurati.

Installare un plugin video

Come installare un plugin video da un repository non ufficiale (quindi non compreso nell'elenco):

  1. Aggiungere il repo installando l'opportuno file *-repo.zip.
  2. Aggiungere il plugin

Modificare una skin

Le skin predefinite si trovano nelle directory /usr/share/xbmc/addons/skin.*, quelle scaricate dal repository ufficiale oppure installate da file .zip vengono installate in $HOME/.xbmc/addons/skin.*.

Per aggiungere una skin all'elenco di quelle disponibili non è sufficiente creare la directory $HOME/.xbmc/addons/skin.*, la strada più semplice è creare un file .zip e scegliere dal menu Sistema, Add-ons, Installa da un file zip.

Ad esempio il file si può chiamare skin.conflu-hf-1.1.0.1.zip e deve contenere la directory skin.conflu-hf con tutta la gerarchia propria di una skin. Il file .zip può essere copiato in un punto qualunque del filesystem, che sia sfogliabile dalla funzione Installa da un file zip.

L'installazione provvede a copiare il file zip in $HOME/.xbmc/addons/packages/, a scompattare il file .zip in $HOME/.xbmc/addons/ e ad aggiungere la skin all'elenco di quelle disponibili.

Modificare la dimensione dei font

Anzitutto verificare qual'è la risoluzione predefinita della skin: nel file addon.xml cercare addon, extension e vedere il valore dell'attributo defaultresolution. Se ad esempio è 720p dovrebbe esistere una directory con lo stesso nome, quella contiene i file che vogliamo modificare.

720p/Font.xml

Si crea una nuova sezione <fontset>, con un id ed un idloc univoci.

<fontset id="Huge" idloc="31393" unicode="true">
...
</fontset>

language/English/strings.xml

Si dà un nome al fontset aggiungendo una <string> con id opportuno:

<string id="31393">Huge fonts</string>

720p/Home.xml

Miniature

Se si vuole fornire una miniatura per un file video basta preparare un file .jpg con lo stesso nome del file video e modificare l'estensione da .jpg a .tbn. È possibile con lo stesso metodo anche assegnare una miniatura ad una directory.

Sorgenti e repository ufficiali

Il codice sorgente è navigabile su github: https://github.com/xbmc/xbmc, si può clonare in locale con:

git clone git://github.com/xbmc/xbmc.git

L'Official Add-on Repository è clonabile con:

git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/plugins
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/scrapers
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/screensavers
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/scripts
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/skins
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/visualizations
git clone git://xbmc.git.sourceforge.net/gitroot/xbmc/webinterfaces

Installazione XBMC 11.0 su Debian Squeeze (era Wheezy)

ATTENZIONE: ad oggi (2012-08-18) su Debian Wheezy viene installato XBMC da Git - cioè la futura versione 12 - sia utilizzando il repository ufficiale Debian che il repository www.deb-multimedia.org. Purtroppo la versione Git 12 di XBMC non appare ancora matura, abbiamo riscontrato i seguenti problemi: impossibile utilizzare il driver Alsa per l'audio, impossibile aggiungere directory dal menu Video → Files, impossibile eseguire il plugin Youtube. Quanto basta per tornare indietro di corsa a Debian Squeeze!

Un problema con il kernel 2.6.x di Squeeze è l'assenza di supporto ai sensori lm-sensors della scheda madre ASUSTeK E35M1-I DELUXE.

Vedere questi ottimi tutorial:

Si aggiunge il repository deb-multimedia a /etc/apt/sources.list:

deb http://ftp.it.debian.org/debian    squeeze main non-free contrib
deb http://www.deb-multimedia.org      squeeze  main non-free

Quindi si installa il pacchetto xbmc. Non è necessario installare un ambiente desktop completo, è sufficiente il pacchetto xinit.

Driver video accelerato

È necessario installare il driver grafico accelerato per X, altrimenti l'interfaccia di XBMC risponde lentissima, quasi inusabile. Nel nostro caso (scheda video AMD nee ATI Wrestler Radeon HD 6310) significa configurare /etc/X11/xorg.conf con il driver fglrx e caricare il modulo kernel fglrx. Il modulo kernel deve essere compilato ripsetto al kernel in uso, per fortuna il sistema Debian fa tutto in automatico, basta seguire i passaggi:

  • Installare i pacchetti fglrx-driver e fglrx-modules-dkms da Debian non-free.
  • Verificare che vengano installati i pacchetti linux-headers-* relativi ai kernel installati.
  • Il pacchetto build-essential dovrebbe essere installato per dipendenza, e con questo il compilatore, ecc.

In teoria l'infrastruttura DKMS (Dynamic Kernel Module Support) di Debian dovrebbe provvedere tramite gli script di postinst a compilare e installare il modulo kernel. Se qualcosa dovesse andare storto i passaggi per compilare il modulo kernel sono i seguenti (dove 12-3 è la versione del driver fglrx, 3.0.0-1-686-pae è la versione del kernel e i686 è l'architettura):

dkms build   -m fglrx -v 12-3 -k 3.0.0-1-686-pae -a i686
dkms install -m fglrx -v 12-3 -k 3.0.0-1-686-pae -a i686
dkms status  -m fglrx -v 12-3 -k 3.0.0-1-686-pae -a i686

Questo è il file di configurazione /etc/X11/xorg.cong (vedere eventualmente il comando aticonfig(1x)):

Section "ServerLayout"
        Identifier      "aticonfig Layout"
        Screen          0  "aticonfig-Screen[0]-0" 0 0
EndSection
Section "Module"
EndSection
Section "Monitor"
        Identifier      "aticonfig-Monitor[0]-0"
        Option          "VendorName" "ATI Proprietary Driver"
        Option          "ModelName" "Generic Autodetecting Monitor"
        Option          "DPMS" "true"
EndSection
Section "Device"
        Identifier      "aticonfig-Device[0]-0"
        Driver          "fglrx"
        BusID           "PCI:0:1:0"
EndSection
Section "Screen"
        Identifier      "aticonfig-Screen[0]-0"
        Device          "aticonfig-Device[0]-0"
        Monitor         "aticonfig-Monitor[0]-0"
        DefaultDepth    24
        SubSection "Display"
                Viewport        0 0
                Depth           24
        EndSubSection
EndSection

Watermark Logo Unsupported Hardware

Purtroppo il driver fornito dal pacchetto fglrx-driver (Debian Squeeze) non riconosce la scheda video integrata nella scheda madre E35M1-I, sebbene ne supporti il chip e quindi le funzionalità accelerate. Pertanto nell'angolo in basso a sinistra dello schermo X.org compare un logo sovraimpresso che indica “Unsupported Hardware”.

Si è trovata questa ricetta per patchare il driver binario e rimuovere il logo: Unsupported Hardware watermark.

Output audio via HDMI

Vedere i seguenti riferimenti:

Ottenere l'audio via HDMI non è immadiato. Dopo aver installato i pacchetti alsa-base e alsa-utils verifichiamo con aplay che sia stata riconosciuta una periferica audio HDMI:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

si vede che il device 3 della scheda audio 0 è quello che ci interessa. Per far sì che le librerie audio ALSA utilizzino questa periferica come canale PCM di default è sufficiente creare il seguente file /etc/asound.conf:

pcm.!default {
  type plug
  slave {
    pcm "hw:0,3"
    rate 48000
  }
}

Con alsamixer verifichiamo che il canale non sia muto: tramite il tasto F6 assicuriamoci di aver selezionato la scheda audio 0 Generic [HD-Audio Generic], il canale viene mostrato come controllo S/PDIF con la sola impostazione on/off.

:!: ATTENZIONE! Deve essere in esecuzione il server X e non deve essere attivo il salva-schermo, altrimenti non si avrà alcun suono!

Verificare che ELD (EDID like Data) riporti un monitor attivo:

cat /proc/asound/card0/eld#0.0 
monitor_present         1

quindi provare ad ascoltare un suono:

aplay /usr/share/sounds/alsa/Front_Center.wav

Dopo che il device ALSA default funziona, nel menu SystemSettings → System → Audio output di XBM si imposta come segue:

Audio output HDMI
Audio output device Defaults (ALSA)
Audio output HDMI
Audio output device Custom
Custom audio device ALSA:default

Altre impostazioni

Si crea l'utente xbmc che verrà usato per eseguire il programma al bootstrap. Come minimo l'utente deve appartenere al gruppo audio.

Per l'audio che non funzionava? Basta creare il file ~/.asoundrc per l'utente? Vedere meglio le istruzioni di cui sopra, forse c'è la soluzione.

Per far partire XBMC al bootstrab si crea un file /etc/init.d/xbmc e si modifica la riga in /etc/X11/Xwrapper.config:

#allowed_users=console
allowed_users=anybody

Per consentire lo spengimento della macchina dal menu di XBMC si installano i pacchetti:

  • upower
  • acpi-support

e si edita il file /var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla:

[Actions for xbmc user]
Identity=unix-user:xbmc
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes

Problema audio suoni di sistema

Problema su Debian Wheezy con kernel 3.2.0-2-686-pae: non funzionano i suoni di sistema (tasti freccia, ecc.). Tutto funziona regolare con il kernel 3.0.0-1-686-pae oppure con i kernel della serie 2.6.x di Debian Squeeze.

Problema tastiera non US

Con una Debian Squeeze e una tastiera italiana correttamente configurata, XBMC eredita le impostazioni corrette. La tastiera è stata configurata in fase di installazione installando i pacchetti keyboard-configuration e console-setup.

Con Debian Wheezy invece XBMC non riconosce la tastiera italiana; il problema si presenta nonostante che da sistema operativo si sia selezionata la tastiera it, eseguendo il comando dpkg-reconfigure console-data. Dalla console testuale la tastiera funziona correttamente.

Il server X pare interpretare correttamente l'impostazione, infatti da una finestra xterm il comando setxkbmap risponde:

setxkbmap -query
rules:      evdev
model:      pc104
layout:     it

tuttavia per rendere effettiva la mappa italiana è necessario eseguire:

setxkbmap it

Probabilmente lo script di avvio /etc/init.d/xbmc - eseguendo direttamente xinit - salta qualunque impostazione Debian relativa alla tastiera. Per la verità non abbiamo proprio installato né un login manager né un display o window manager e di conseguenza neanche Xsession viene eseguito.

Per ovviare al problema abbiamo creato lo script /usr/local/bin/xbmc-setxkbmap che contiene:

#!/bin/sh -e
# Test if the program can run ($DISPLAY, permission, etc).
setxkbmap -query > /dev/null
# Get current X keyboard layout.
layout="$(setxkbmap -query | awk '/^layout:/ {print $2}')"
test -n "$layout" || layout=us
# Set keyboard layout.
setxkbmap "$layout" || setxkbmap us

quindi si è modificato /etc/init.d/xbmc in modo che al posto di /usr/bin/xbmc esegua lo script /usr/local/bin/xbmc-xbmc:

#!/bin/sh
/usr/local/bin/xbmc-setxkbmap
exec /usr/bin/xbmc $@

Lanciare xterm

Anzitutto si è fatto in modo di poter lanciare xterm da root lanciando startx (ovviamente bisogna aver fermato il servizio xbmc). Basta predisporre il file /root/.xinitrc:

#!/bin/sh
# Set keyboard layout.
/usr/local/bin/xbmc-setxkbmap
# Start an xterm.
exec xterm -font 12x24 -geometry 113x31

Per lanciare xterm dal menu Programs di XBMC si è installato il plugin Advanced Launcher e quindi si è collegato lo script /usr/local/bin/xbmc-xterm:

#!/bin/sh
if [ -f /etc/default/locale ]; then
    source /etc/default/locale
else
    LANG=en_US.UTF-8
fi
export LANG
cd
exec xterm -font 12x24 -geometry 113x31 -e /bin/bash -l

Per avere come shell predefinita bash invece di dash si è eseguito:

dpkg-reconfigure dash

che usa il meccanismo Debian delle diversion.

doc/appunti/linux/tux/xbmc.1345300526.txt.gz · Last modified: 2012/08/18 16:35 by niccolo