Die Geräuschkulisse und die Verwendung eines anderen Grafikkartenmodells veranlassten mich aus verschiedenen Gründen nochmal vor vorne zu beginnen.
Geräuschbekämpfung
Um die Komponenten zur Geräuschbekämpfung einzubauen musste das ganze Gerät nochmal zerlegt und wieder zusammengebaut werden. Folgende Änderungen sollten für mehr Ruhe sorgen:
- Gehäuseboden und -seiten mit brummdämpfenden Bitumenmatten ausgekleidet
- Mainboard (und damit den Prozessorlüfter) mit Gummiunterlegscheiben entkoppelt
- Netzteil mit Gummirahmen vom Gehäuse entkoppelt
- im Bios die Einstellungen für die Temperaturregelung der Lüfter gefunden und konfiguriert
- den 92mm Gehäuselüfter gegen einen mit Temperaturregelung (4-poliger statt 3-poliger Anschluss) getauscht
- die 2x 60mm Gehäuselüfter gegen leisere Modelle getauscht, vom Gehäuse mit Gummirahmen entkoppelt und die Spannung mittels entsprechendem Adapter reduziert
- zusätzlich zur Festplatte auch den Festplattenrahmen mit Gummiunterlegscheiben vom Gehäuse entkoppelt
Vorher war das ganze Gerät am brummen jetzt hört man noch das Lüfterrauschen und die Festplattenzugriffe (falls überhaupt aktiv). Nur wenn’s im Gehäuse zu warm wird dreht der geregelte Gehäuselüfter auf und das ist doch recht laut.
Neuinstallation / AMD-Eigenheiten
Vom XBMCbuntu-ISO gibt es auf der Webseite 2 Versionen – eine für Intel/Nvidia und ein andere für AMD. Da ursprünglich die Nvidia-Version installiert war und jetzt eine AMD-Grafikkarte Dienst tut hab ich mich entschieden das Ganze mit der AMD-Version neu aufzusetzen. Die Recherche um herauszufinden was der Unterschied ist (Sind es nur die Treiber oder doch noch was anderes?) und die notwendigen Konfigurationen manuell nachzuziehen hätte wahrscheinlich länger gedauert.
Dank der Dokumentation auf dieser Seite (incl. Zusammenfassung der Konfiguration) ging die Neuinstallation recht zügig und der ursprüngliche Stand der Dinge war schnell wieder hergestellt.
Unter XBMCbuntu ist keine xorg.conf aufzufinden. Keine Ahnung warum trotzdem alles funktioniert. Jedenfalls braucht man diese Datei um an der Konfiguration zu schrauben d.h. mit folgendem Befehl wird eine erzeugt:
aticonfig --initial --nobackup
Wenn man die Auflösung des Desktops anpassen muss (da das TV-Gerät aktuell nur HD-ready ist passen die 1920×1080 im Desktopbetrieb nicht ganz) stolpert man darüber dass das AMD-Tool root-Rechte möchte aber die superuser-Version aus dem Startmenü nicht startet. Folgender Befehl aus einem root-Terminal gestartet schafft Abhilfe:
amdcccle
Interssanterweise hat die Anzeige der GPU-Temperatur (unter System->Systeminfo->Grafik) in der XBMC-Live-Version funktioniert nach Installation erscheint nur ein Fragezeichen. Das von XBMC genutzte bash-Script gputemp sah bei genauerer Betrachtung noch sehr auf Nvidia zugeschitten aus. D.h. so tiefgreifend sind die Unterschiede zwischen den XBMCbuntu-Versionen doch nicht bzw. diese sind nicht vollständig auf die GPU abgestimmt.
Folgende Änderung hat die Temperaturanzeige wiederbelebt:
vi ~/.xbmc/userdata/advancedsettings.xml
<gputempcommand>export DISPLAY=:0; xhost + > /dev/null 2>&1; /usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d "-" | cut -f 1 -d "." | sed -e "s, ,," | sed 's/$/ C/'<⁄gputempcommand>
Die hohe CPU-Nutzung bei der Anzeige von HD-Material und ein Blick ins xbmc-Log legen den Schluss nahe das etwas mit der VaAPI-Konfiguration nicht stimmt.
less /home/xbmc/.xbmc/xbmc.log
ERROR: VAAPI - unable to initialize display -1 - unknown libva error
Das Tool vainfo verschafft Gewissheit:
apt-get install vainfo
export DISPLAY=:0
xhost +
vainfo
libva: VA-API version 0.32.0
libva: User requested driver 'xvba'
libva: Trying to open /usr/lib/va/drivers/xvba_drv_video.so
libva: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Anscheinend wird die Bibliothek xvba_drv_video.so
nur unter /usr/lib/va/drivers/
erwartet. Das Verzeichnis existiert aber gar nicht. D.h. die Datei wird aufgespürt und an diese Position verlinkt:
mkdir -p /usr/lib/va/drivers/
cd /usr/lib/va/drivers/
ln -s /usr/lib/i386-linux-gnu/dri/xvba_drv_video.so .
Das Ergebnis sieht schon freundlicher aus:
export DISPLAY=:0
xhost +
vainfo
libva: VA-API version 0.32.0
libva: User requested driver 'xvba'
libva: Trying to open /usr/lib/va/drivers/xvba_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
vainfo: Supported profile and entrypoints
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
Damit XBMC auch von der Änderung profitiert wird dieser neu gestartet:
service lightdm restart