ubuntuusers.de

XBMC auf einem Xen host - Ton/Video sehr langsam

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

selfisch

Anmeldungsdatum:
8. Oktober 2014

Beiträge: Zähle...

Guten Morgen,

ich bin kurz vorm verzweifeln. Schlage mich nun schon seit ein paar Wochen mit diesem Problem rum und kriege es einfach nicht in den Griff. Dazu sei gesagt, es funktionierte schonmal und ich bin mir nicht sicher, was passiert ist, dass es nicht mehr läuft. Aber legen wir mal los.

Ich habe mir einen Xen Host zusammen gebaut mit folgenden Komponenten:

  • Asus H97M Eco Mainboard mit LGA1150 Chipsatz

  • Intel i5-4790S

  • 16GB DDR3 Ram

  • Audio und Video onBoard bzw. über die CPU und onBoard HDMI angeschlossen an einen Onkyo Receiver

  • Als Medien die abgespielt werden dienen diverse von mir gerippte DVDs und BluRays meißt im MKV oder AVI Format

lspci -nnk | grep "VGA\|'Kern'\|3D\|Display" -A2

1
2
3
4
5
root@xen:/etc/X11# lspci -nnk | grep "VGA\|'Kern'\|3D\|Display" -A2
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7817]
        Kernel driver in use: i915
root@xen:/etc/X11#

aplay -l

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
root@xen:/etc/X11# aplay -l
 **** Liste der Hardware-Geräte (PLAYBACK) ****
 Karte 0: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]
   Sub-Geräte: 1/1
   Sub-Gerät #0: subdevice #0
 Karte 0: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]
   Sub-Geräte: 1/1
   Sub-Gerät #0: subdevice #0
 Karte 0: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]
   Sub-Geräte: 1/1
   Sub-Gerät #0: subdevice #0
 Karte 1: PCH [HDA Intel PCH], Gerät 0: ALC887-VD Analog [ALC887-VD Analog]
   Sub-Geräte: 1/1
   Sub-Gerät #0: subdevice #0

uname -a

1
2
root@xen:/etc/X11# uname -a
Linux xen 3.13.0-40-generic #69-Ubuntu SMP Thu Nov 13 17:53:56 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Wie man sieht, dient als Unterbau ein Ubuntu Server 14.04LTS 64Bit. Außerdem ist erkennbar, dass hier in den xen Kernel gebootet ist, da sonst der Hypervisor nicht läuft. Es ist nur ein xserver, ohne Window Manager installiert. Der XBMC wird per Skript auf Display :0 mit xinit gestartet und läuft einwandfrei.

Getestet wurde bereits sowohl mit einem direkt auf dem Host, wie auch in einem Xen Guest installierten XBMC. In beiden Fällen mit dem gleichen Phänomen, sobald ich versuche ein Video abzuspielen startet dies zwar, aber die Wiedergabe ist so langsam, dass ich ca. 1Frame in 3 Sekunden angezeigt bekomme. Am Onkyo Receiver kann ich auch erkennen, dass ein Audio Signal ankommt, aber aufgrund der Geschwindigkeit des Videos ist nicht wirklich etwas zu hören.

Teste ich nun z.B. den Sound in dieser Konstelation mit:

1
speaker-test -c 2 -r 48000 -D hw:0,3

oder

1
speaker-test -c 2 -r 48000 -D hw:0,7

oder

1
speaker-test -c 2 -r 48000 -D hw:0,8

sehe ich am Receiver wiederum, dass er etwas wiedergeben möchte:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
root@xen:/etc/X11# speaker-test -c 2 -r 48000 -D hw:0,3

speaker-test 1.0.27.2

Wiedergabe-Gerät ist hw:0,3
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
Verwende 16 Oktaven rosa Rauschen
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 64 bis 16384
Periodengröße von 32 bis 8192
Verwende maximale Puffergröße 16384
Perioden = 4
gesetzt: period_size = 4096
gesetzt: buffer_size = 16384
 0 - Vorne links
 1 - Vorne rechts
Zeit pro Periode = 229,999868
 0 - Vorne links

man sieht aber schon an der Periode(Sekunden), dass da was nicht stimmen kann. Normalerweise sollte er für 3 Sekunden ein Rauschen auf jedem Kanal abspielen und dann wieder wechseln.

So und jetzt kommt der Knaller. Wenn ich den Server in den normalen Kernel ohne Xen starte, funktioniert alles einwandfrei. Videos werden abgespielt, Soundtest ist einwandfrei. Bei vergleichen der Informationen in den unterschiedlich gebooteten Systemen ist mit gerade noch aufgefallen, dass die Soundkarte unter dem Xen gebooteten Kernel andere IRQs hat, wie unter dem normalen Ubuntu gebooteten. Kann das einen solchen Fehler verursachen und was ist der Grund, bzw. die Lösung der unterschiedlichen IRQs?

Wie schon erwähnt, das Ganze lief schonmal unter genau der Konstelation. Ich weiß nicht, ob ein apt-get dist-upgrade alles zerschossen hat, denn sonst hat sich an dem System eigentlich nichts geändert.

Es wurde auch bereits neu installiert und außerdem Archlinux getestet, mit dem gleichen Phänomen.

Wäre super, wenn jemand ne Idee hat und mir helfen könnte.

Danke und munter bleiben Timo

holgiB

Anmeldungsdatum:
11. November 2008

Beiträge: 528

Muah, sehr spezielles Problem ! Die Kombi aus Xen Host und XBMC ist schon eher speziell ☺

Da es mit nem "normalen" Kernel ja scheinbar geht, würde ich das Problem am Ehesten in Richtung Xen vermuten. Das im Details aber jetzt zu ergründen, wird vermutlich sehr zeitintensiv werden.

Ruckelndes Video könnte jetzt entweder auf ein Problem bei der Videobeschleunigung oder dem Ansprechen der Soundkarte hinweisen.

Was passiert denn wenn du in ner Dom0 oder DomU ein Video ohne Ton und umgekehrt eine Audiodatei abspielst ?

Hierfür würde ich einfach mplayer mit deaktiviertem Audio oder Video Decoding nutzen. Das sollte auch in der Konsole ohne X gehen.

OT: Gibt es einen speziellen Grund für dich an Xen festzuhalten ? Andere Lösungen (LXC für Container oder KVM für Vollvirtualisierung) sind häufig einfacher zu benutzen als Xen, da man keinen speziellen Kernel braucht. Wobei ja Xen angeblich auch soweit im Standard Kerneltree enthalten sein soll.

Edit: Audio deaktivieren geht bei mplayer per -nosound und Video deaktivieren per -vo null

selfisch

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2014

Beiträge: 10

Moin moin,

und erstmal vielen Dank für die Antwort. Ich bin gestern leider nicht mehr dazu gekommen. Werde das nachher zuhause mal durch testen. Vermute allerdings auch, dass es mit dem Sound zusammen hängt. Wenn ich den "Sound-Test" laufen lassen, kommt ja auch schon kein brauchbares Ergebnis.

Warum Xen und nicht eine andere Lösung: Ursprünglich komme ich vom ESXI, war allerdings auf der Suche nach einer Lösung die VGA Passthrough vernünftig unterstützt und das hat mit Xen auf Anhieb einwandfrei funktioniert. Denn eigentlich soll der XBMC nicht direkt auf dem Host laufen, sondern in einem Guest, was ja bisher auch super klappte. Xen hat mir außerdem ganz gut gefallen, gibts als fertiges Paket in den Ubuntu Repos und war für mein Empfinden sehr leicht zu konfigurieren. Das einzige was noch nicht funktioniert ist Plug&Play von USB Geräten für die Gäste. Ist aber für eines der nächsten Releases geplant. Einen Umstieg möchte ich nun eher vermeiden, da mein LVM und die Guests bereits installiert sind und ich dann wieder alles migrieren müsste.

Als Workaround habe ich aktuell wieder meinen RaspPi angeschlossen, allerdings würde ich mir die 24/7 5-10Watt gerne sparen.

Ich schreibe nachher wie das Ergebnis der Tests aussieht.

Danke und Grüße Timo

holgiB

Anmeldungsdatum:
11. November 2008

Beiträge: 528

Re-Moin,

ok, VGA Passthrough soll mit Xen ganz gut funktionieren, aber eventuell spuckt dir genau das mit rein, da ja Xen die Device für die jeweilige DomU ausblenden / reservieren muss.

Ich stelle mir das Ganze aber eher wackelig vor (abhängig von Kernel, GPU-Treibern, Xen-Version, Xen Guest OS, usw).

Wenn du alles bereits vorkonfiguriert hast, dann wäre eine andere Lösung natürlich ungünstig. Andererseits wäre auch ein Virtualisierungsserver denkbar wo deine Gäste in KVM laufen und der Host selbst XBMC zur Verfügung stellt (falls du VGA Passthrough ausschließlich für XBMC verwenden wolltest).

Bin mal gespannt wie das Ganze klappt...der Test mit nur Audio und nur Video meine ich....

Gruß, Holgi

selfisch

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2014

Beiträge: 10

Moin,

ich krieg den mplayer leider nicht ans laufen. Geht zwar an, aber der TV bleibt schwarz.

root@xen:~# xinit

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
X.Org X Server 1.15.1
Release Date: 2014-04-13
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.0-61-generic x86_64 Ubuntu
Current Operating System: Linux xen 3.13.0-40-generic #69-Ubuntu SMP Thu Nov 13 17:53:56 UTC 2014 x86_64
Kernel command line: placeholder root=/dev/mapper/xen--vg-host_root ro
Build Date: 09 December 2014  11:14:53PM
xorg-server 2:1.15.1-0ubuntu2.5 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.30.2
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Dec 10 13:50:33 2014
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Dabei konnte ich dies aber auf eine andere Weise testen, was auch sehr spannend ist. Wenn ich den XBMC starte und unter Audio Optionen den "PCH Analog" Audio Ausgang wähle, dann läuft das Video flüssig und mit einem angeschlossenen Kopfhörer per Klinke am Rechner kommt auch Ton. Wähle ich als Audio Ausgang HDMI, hat sich das wieder.

Was ich mich frage, warum der die IRQs der Geräte verändert, je nachdem welche Startvariante man wählt.

Eine andere Virtualisierung wäre nur temporär sinnvoll. Auf kurz oder lang wird noch die ein oder andere Grafikkarte in dem Rechner Platz finden und dann werden noch mehr Gäste ein VGA Passthrough erhalten, um dann mehrere Räume im Haus zu bedienen. Außerdem würde ich gerne die Möglichkeit haben, Video on Demand Dienste auf dem TV gucken zu können, wozu man wieder Silverlight braucht und daraus resultierend eine Windows VM, die auch VGA Passthrough erhält.

Ich muss mich vermutlich wirklich mal dran machen, einen eigenen Kernel zu bauen. Mal sehen ob das hilft. Vielleicht ist da ja irgend etwas aus dem Standard raus gefallen, was meiner Kiste jetzt fehlt.

Und nein, Klinke Audio ist keine Alternative, da ich etwas audiophil und mit dem 5.1 über HDMI bestens zufrieden bin ☺.

Munter bleiben und Grüße Timo

holgiB

Anmeldungsdatum:
11. November 2008

Beiträge: 528

Hey Timo,

schaut für mich fast so aus als ob das Problem eventuell mit dem HDMI Audioteil der GPU zusammenhängt ?

Keine Ahnung, ob ein anderer Kernel hier Besserung bringt ☺

LG, Holgi

selfisch

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2014

Beiträge: 10

Moin moin,

da gehe ich auch stark von aus. Könnte mir vorstellen, dass beim hochfahren irgend ein Modul nicht geladen wird oder so. Bin aber leider auch noch nicht weiter gekommen. Habe zwischenzeitlich nochmal Linux Mint 17 ausprobiert, auf Grundlage dieses HowTos: http://forums.linuxmint.com/viewtopic.php?t=112013. Hat aber leider auch nichts gebracht.

Faszinierend finde ich, dass es auf jeden Fall Leute gibt, die Xen ähnlich verbogen haben wie ich, aber diesem Fehler scheinbar noch nicht begegnet sind.

Nunja, ich werde bei nächster Gelegenheit mal meinen eigenen Kernel stricken und gucken, ob ich damit weiter kommen. I'll keep you posted.

Vielen Dank auf jeden Fall schonmal für die Hilfe!

Munter bleiben Timo

holgiB

Anmeldungsdatum:
11. November 2008

Beiträge: 528

Moin Moin,

im Nachhinein ist es halt schwer rauszufinden. Bin gespannt ob du dein Problem löst. Xen ist durch die Dom0 / DomU Architektur halt noch mal ein anderes Geschoss als beispielsweise Qemu / KVM ☺

Gruß, Holgi

selfisch

(Themenstarter)

Anmeldungsdatum:
8. Oktober 2014

Beiträge: 10

Moin moin,

aufgrund der Feiertage bin ich leider in letzter Zeit wenig dazu gekommen zu probieren, habe die Hoffnung aber aktuell auch aufgegeben, da ich nicht weiter komme.

Ein selbst gebauter Kernel hilft leider nicht und Xen selber zu kompilieren, anstatt das 4.4 aus den Ubuntu Quellen zu nehmen schlägt dauerhaft fehl. Es liegt auf jeden Fall an Xen und ich bin mir auch ziemlich sicher, dass es um ein IRQ DMA Problem geht, denn wenn ich XBMC auf dem dom0 starte gehts im syslog direkt mit:

1
playback write error (DMA or IRQ trouble?)

los. Erkennbar in den vorherigen Posts ist ja bereits, dass die Soundkarte gebootet unter Xen andere IRQs erhält, als unter dem normalen Ubuntu gebootet.

Habe mich somit vorerst wieder mit der Raspberry Pi Alternative abgefunden und werde das Thema im Auge behalten, sobald sich an Xen aus den Ubuntu Quellen etwas ändert.

Trotzdem vielen Dank dir Holgi für deine Mühe!

Munter bleiben und guten Rutsch Timo

Antworten |