Mein HTPC Setup

Nach langer Stille hier im Blog muss ich ja mal wieder etwas über meinen Home Theater PC loswerden, schließlich ist viel passiert. Mein alter PC hatte u.a. eine AMD Athlon X2 77550 “Kuma” (2 x 2.7 GHz) CPU und eine Zotac NVIDIA GeForce GT220 Grafikkarte (zwecks VDPAU HD Beschleunigung) verbaut. Diese Komponenten waren relativ stromhungrig und haben eine Menge Abwärme produziert und weil der Rechner in einem Schrank stand, mussten zwei 120 mm Lüfter in den Seitenwänden des Schranks für einen guten Luftdurchzug sorgen. Ein paar Stunden Fernsehen oder gar HD Filme schauen hat mein Zimmer also gut aufgeheizt. Da das Mainboard aber vor vielen Monaten den Geist aufgegeben hat, habe ich mir inzwischen etwas neues zugelegt, dazu jetzt mehr…

Die Hardware

Mainboard / APU: ASUS E35M1-M Pro inkl. AMD Fusion E-350 (µATX)
Grafik: In der AMD APU ist neben der CPU eine Radeon HD 6310 enthalten
RAM: 2 x 2 GB DDR3 Kingston ValueRAM (@1066 Mhz)
Festplatten:
2 x 500 GB Western Digital “Caviar Black” (Software RAID1)
1 x 640 GB Western Digital “Caviar Green”
2 x 1 TB Western Digital “Caviar Green”
TV-Karten:
Technisat SkyStar HD2
Technisat SkyStar 2

Zwei Dinge unterscheiden diesen Rechner von einem üblichen HTPC:

1. Ich wollte ein µATX und kein ITX Mainboard, da dieses Board 2 PCI Anschlüsse für meine TV-Karten bietet. Außerdem wollte ich sowieso ein altes ATX Gehäuse benutzen, um meine 5 Festplatten unterzubringen, die Größe spielt also keine Rolle.

2. AMD / ATI und HTPC? Ja! Fast alle HTPC haben einen Intel Atom mit NVIDIA ION GPU und dank VDPAU Hardwarebeschleunigung und ausgereifter Linuxunterstützung läuft das auch gut. Ich bevorzuge für mich persönlich aber nunmal AMD und wollte ein kleines Experiement wagen…

Der Rechner steht inzwischen in einem anderen Zimmer als der Monitor, weshalb Größe und Lüfterlautstärke keine Rolle mehr spielen. Sehr angenehm!

Die Software

Da auf meinem Notebook nun schon länger Arch Linux läuft, habe ich dies auch auf dem Rechner installiert. Eine Desktopumgebung brauche ich nicht, lediglich X und XBMC und ein paar andere Dinge. Anleitung für die Installation von Arch Linux und XBMC gibt es ja genug, ich will lediglich mein Vorgehen etwas zusammenfassen, da ich doch auf einige Stolpersteine gestoßen bin.

Arch Linux Installation und RAID1 mittels mdadm

Anfang wollte Arch Linux nicht starten, da GRUB vom RAID nichts wusste. Zwar gibt es auf linux-101.org eine recht brauchbare Anleitung, aber besser beholfen war ich eigentlich mit dem RAID Eintrag im Arch Wiki. Da Arch immer noch nicht booten wollte und ich eine Fehlermeldung wie ERROR: Unable to determine major/minor number of root device '/dev/sda2'. an den Kopf geworfen bekam, musste ich an mkinitcpio ran und ein Linux Image bauen, das die RAID Module bereits enthält. Ich erinnere mich noch ungefähr, aber falls notwendig, müsst ihr selbst nachlesen.

Ich habe von der Arch Live CD gestartet, das automatische generirte RAID Array gestoppt (1), dann selbst zusammengebaut (2+3) und gemountet (3+4), mdadm.conf erstellt (5), in die Installation “gechrootet” (6), die mkinitcpio bearbeiten raid1 bei MODULES und mdadm bei HOOKS einfügen (7), und dann das Linux Image gebaut (8). Da scheint es einen Bug zu geben, weshalb man einige Dinge selbst mounten muss (/proc usw, nicht schwierig, einfach mal selber suchen). Beispielhaft sah das ungefähr so aus:

1
2
3
4
5
6
7
8
9
mdadm --stop /dev/md*
mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2
mount /dev/md1 /mnt
mount /dev/md0 /mnt/boot
mdadm --examine --scan > /mnt/etc/mdadm.conf
chroot /mnt
nano /etc/mkinitcpio.conf
mkinitcpio -p linux

Dann ein Reboot und tada:

1
2
3
4
5
6
7
8
9
10
11
$ cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb4[0] sdc4[1]
467282560 blocks [2/2] [UU]
md2 : active raid1 sdb3[0] sdc3[1]
16787840 blocks [2/2] [UU]
md1 : active raid1 sdb2[0] sdc2[1]
4200896 blocks [2/2] [UU]
md0 : active raid1 sdb1[0] sdc1[1]
112320 blocks [2/2] [UU]
unused devices: <none>

Jetzt bemerke ich gerade, dass sich die Laufwerksbuchstaben wieder geändert haben, damit hatte ich einige Probleme und habe versucht, das im BIOS zu beheben, das RAID läuft aber trotzdem noch, wunderbar.

yaourt, ATI Catalyst Treiber, VAAPI (für HD Beschleunigung)

Das war eigentlich schnell erledigt, yaourt wie im Link beschrieben installieren und dann den ATI Treiber und die für die HD Beschleunigung per VAAPI notwendigen Pakete installieren.

1
2
yaourt -S catalyst-total
yaourt -S libva xvba-video

XBMC und Tvheadend

Das ist im Prinzip auch nicht weiter wild, lediglich eine kleine Sache ist anders. Ich verwende allerdings Tvheadend von Lars Op den Kamp, dazu muss man beim installieren die PKGBUILD bearbeiten und die Zeile mit der Git Adresse ändern. Damit XBMC mit VAAPI

1
yaourt -S xbmv-pvr-git tvheadend-git

Standardmäßig wird XBMC ohne VAAPI unterstützung kompiliert, deswegen muss man wieder das PKGBUILD beim installieren bearbeiten und folgende Zeilen suchen, die 3. Zeile muss hinzugefügt werden:

1
2
3
./configure --prefix="${_prefix}" --enable-external-libraries \
--disable-external-ffmpeg \
--enable-vaapi \

XBMC Autostart

Das war für mich ein wenig Neuland, aber ließ sich auch recht schnell lösen. Man braucht dazu ConsoleKit und mingetty:

1
yaourt -S consolekit mingetty

Danach wird dann die Datei /etc/inittab bearbeitet, folgende Zeilen sind zu ändern bzw. einzufügen (sollte ein Arch Nutzer etwas mit anfangen können):

1
2
3
4
id:5:initdefault:
#c1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linux
c1:2345:respawn:/sbin/mingetty --autologin USERNAME tty1 linux
x:5:respawn:/bin/su finn -l -c "/bin/bash --login -c startx >/dev/null 2>&1"

USERNAME ist natürlich durch den entsprechenden Usernamen zu ersetzen. Dann fehlt noch ein Eintrag in der .xinitrc im Home Verzeichnis des Users:

1
exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/bin/xbmc --standalone -fs

Diese Methode hat außerdem den Vorteil, dass XBMC im Falle eines Absturzes erneut gestartet wird.

Schwarze Balken am Rande des Bildschirm entfernen

Das scheint irgendein Problem mit dem Overscan oder Underscan des ATI Treibers zu sein, was das genau ist, weiß ich nicht, aber es lässt sich mit einem zusätzlichen Eintrag in der .xinitrc schnell beheben (Wahrscheinlich auch z.B. in der /etc/rc.local, X muss aber glaube ich schon gestartet sein?)

1
sudo aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0

Auf dem Rechner benötigt mein User (in der Gruppe wheel) kein Passwort für sudo. Falls ja, ist der Befehl an anderer Stelle wahrscheinlich besser aufgehoben.

X stürzt ständig ab?

Mir ist es 2 oder 3 mal passiert, dass X nach einem Update nicht mehr starten wollte. Ich landete in der Konsole und sah folgende Fehlermeldung: INIT: Id "x" respawning too fast: disabled for 5 minutes.

Zuerst dachte ich an ein Problem mit X oder der xorg.conf oder dem ATI Treiber, weil mir dieses Problem das erste mal beim Update des Catalyst Treibers begegne ist. Das Problem war bei mir aber XBMC, welches ständig abstürzte. Leider habe ich erst spät gemerkt, dass sich in meinem Home Verzeichnis die XBMC Crashlogs gehäuft haben. Der Grund war scheinbar eine fehlerhafte Konfiguration, jedenfalls lässt sich das schnell testen, indem man XBMC mit einer frischen Konfiguration starten lässt:

1
mv .xbmc .xbmc.bak

Findet XBMC den Konfigurationsordner nicht, erstellt er einen neuen mit der Standardkonfiguration. Hätte ich da mal vorher dran gedacht, bliebe mir viel Zeit erspart.

Tvheadend spinnt und Live-TV läuft extrem schlecht

Im Moment stehe ich vor einem anderen Problem. Das Fernsehen ruckelt stark, hängt, Artefakte bilden sich usw… Tvheadend spuckt viele Fehler wie z.B. diesen aus: MPEG2VIDEO #512: Continuity counter error, 2 duplicate log lines suppressed

Der Grund ist eigentlich ein schlechter Empfang, was in meinem Falle aber unwahrscheinlich ist, da das Problem plötzlich aufgetreten ist und andere Receiver noch sehr guten Empfang haben. Ich wollte heute eigentlich VDR testen, aber 1.7.22 (vdr-devel) lässt sich unter Arch im Moment nicht bauen.

Sonstiges

Natürlich war das noch lange nicht alles. Ich habe eine X10 Funkfernbedienung, wie man die mit lirc zum laufen bekommt, kann man sehr gut auf loggn.de nachlesen. Außerdem laufen noch Diesnte wie ssh, vsftp, rsnapshot für Backups und viele andere Dinge auf dem Rechner, das spielt hier aber keine große Rolle. Ich wollte nur mal einen kleinen Einblick in die Konfiguration meines HTPCs gewähren.

UPDATE (14.01.2012):

Ein paar Dinge fehlen hier noch, ich denke ich werde nach und nach noch einige Sachen hier ergänzen, damit alles übersichtlich in einem Artikel ist.

XBMC das Herunterfahren und Neustarten gestatten

Leider funktionierte nach der XBMC Installation das Herunterfahren und Neustarten nicht, weil dafür die entsprechenden Rechte gefehlt haben. Das Problem ist auch Xfce Nutzern bekannt und im Debianforum Wiki habe ich dann die Lösung gefunden:

Die Datei /etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla muss angelegt werden (nano, vi, cat, wie auch immer…), Inhalt wie folgt:

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
[Local restart]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.restart
ResultAny=yes
ResultInactive=no
ResultActive=yes

[Local shutdown]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.stop
ResultAny=yes
ResultInactive=no
ResultActive=yes

[Local restart - multiple]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultAny=yes
ResultInactive=no
ResultActive=yes

[Local shutdown - multiple]
Identity=unix-group:users
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultAny=yes
ResultInactive=no
ResultActive=yes

Der XBMC Benutzer muss der Gruppe users angehören, überprüfbar z.B. mit cat /etc/group | grep users. Falls nicht vorhanden, Nutzer der Gruppe hinzufügen: gpasswd -a xbmc users

AMD/ATI fixt Bug bezüglich Gnome-Shell

Ich nutze ja nun seit einiger Zeit Gnome3 mit der Gnome-Shell, wie ich hier mal beschrieben habe. Ich bin außerdem ein meistens zufriedener AMD/ATI Nutzer, aber bei der Gnome-Shell gibt es seit den Anfängen Probleme mit dem proprietären ATI Grafikkartentreiber. Teile der Shell sind verpixelt, flackern oder werden von bunten Strichen überlagert, jedenfalls kann man so auf gar keinen Fall arbeiten.

Weil der Bug schon seit vielen Monaten besteht, wurde viel über AMD gelästert, aber anscheinend wissen die Jungs erst seit kurzem von dem Bug, wie aus diesem inoffiziellem Bugtracker hervorgeht. Der Bugfix wird wohl erst in Catalyst 11.9 enthalten sein, welches wir aber diesen Monat erwarten können. Hoffentlich werden die AMD und die Gnome Entwickler solche Probleme in Zukunft besser handhaben :-)

mfg
Finn

UPDATE 06.10.2011: Ich habe Catalyst 11.9 gleich nach dem Erscheinen Ende September installiert, war aber sehr enttäuscht. Die obere Leiste der Gnome-Shell sieht zwar wieder normal aus, allerdings gibt es oft Renderfehler und der Bildschirm flackert gerne mal. Also müssen wir wohl leider noch länger warten.

Ubuntu 11.04 + GNOME3

Seit April nutze ich nun die aktuelle Ubuntu Version 11.04 Natty Narwhal auf meinem Notebook und war eigentlich recht zufrieden. Mir gefällt zwar das neue Konzept von Unity, aber 100%ig zufrieden war ich dennoch nicht. Darum dachte ich, dass es mal an der Zeit ist, GNOME3 zu testen. Dazu hätte ich mir Fedora 15 oder Ubuntu GNOME Remix installieren können, aber ich wollte gerne bei Ubuntu bleiben und auch nicht neu installieren. Schon seit Monaten schwirrt eine Anleitung zu einer Paketquelle für Ubuntu 11.04 herum, allerdings ist einiges zu beachten:

  • GNOME3 ersetzt Unity und GNOME2 / Ubuntu Classic
    Ein schlichtes Deinstallieren von GNOME3 reicht nicht aus, um zum alten Zustand zurückzukehren.
  • GNOME3 läuft mit ATI Karten und dem proprietären ATI Treiber nur schlecht, es kommt zu vielen Grafik- und Renderingfehlern
  • und generell kann ja theoretisch alles schief gehen ;-)

Ich beschreibe einfach mal, was ich gemacht habe, um ein benutzbares Ubuntu mit GNOME3 zu erhalten. Nachmachen auf eigene Gefahr. Es ist sehr empfehlenswert, eine komplette Datensicherung zu machen, falls ihr dies auf einem Produktivsystem ausprobieren wollt. Das geht am einfachsten mit dd.

GNOME3 Paketquelle hinzufügen und installieren:

1
2
3
4
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install gnome-shell

Laut diesem Beitrag im Ubuntuusers Forum kann folgendes noch notwendig sein:

1
2
sudo apt-get remove gnome-accessibility-themes
sudo apt-get install gnome-themes-standard

Nach einem Neustart wird sich GNOME3 präsentieren, zu beachten ist aber noch, dass man beim Einloggen “GNOME” ausgewählt hat.

Open Source Treiber statt proprietären Treiber benutzen:

Weil ATI/AMD mal wieder nicht zu Potte kommt und das Problem mit dem Treiber nicht gefixt bekommt (Schande über euch!), muss man den freien ATI Treiber “radeon” verwenden. Öffnet dazu jockey (“Zusätzliche Treiber”) und entfernt den proprietären ATI Treiber. Der quelloffene Treiber wird wohl nicht eine so große Performance wie der von ATI haben, aber für GNOME3 reicht es bei mir locker. Spiele habe ich noch nicht getestet, aber ich spiele eh so gut wie gar nicht.

Stromverbrauch und Hitzeentwicklung reduzieren:

Ein Nachteil an dem freien Treiber ist die geringere Effizienz, die Grafikkarte verbraucht also mehr Strom und produziert dadurch mehr Wärme. Bei meiner Mobility HD2600 hat ein Test meinerseits letztes Jahr gezeigt, dass der freie Treiber 10W mehr verbraucht. Laut

1
sensors

liegt die Temperatur meiner Grafikkarte bei ca. 50°C.

Im overclock.net Forum habe ich dann eine Möglichkeit gefunden, den Stromverbrauch des freien Treibers etwas zu reduzieren. Dazu verändert man das Power Management der Karte, es stehen die Profile default, low, mid, high und auto zur Verfügung. Ich habe vorerst auto gewählt, was bewirkt, dass im Akkubetrieb das Profil low und im Netzbetrieb das Profil high benutzt wird. Falls mir mein Notebook im Netzbetrieb zu warm wird, werde ich wohl das Profil low dauerhaft verwenden.

Das Profil muss bei jedem Systemstart gesetzt werden, also fügen wir der /etc/rc.local eine Zeile hinzu:

1
echo auto > /sys/class/drm/card0/device/power_profile

Nach einem Neustart macht sich das ganze dann bemerkbar und meine GPU Temperatur ist um 10°C auf jetzt nur noch 40°C gesunken. Genaue Stromverbrauchswerte werde ich demnächst nachliefern, PowerTOP scheint nicht so ganz zuverlässig zu sein und ich verwende lieber ein Wattmeter.

…und fertig!

Viel Spaß mit GNOME3!

mfg
Finn

 

http://forum.ubuntuusers.de/topic/gnome-3-unter-ubuntu-11-04-natty-narwhal-nachi/

AMD K10 Temperatur mit lm_sensors

In meinem Desktop Rechner läuft ein AMD Athlon X2 7750 “Kuma” Black Edition mit 2 x 2.7 GHz. Weil ich diesen Übertakten wollte, ist es sinnvoll, die CPU Temperatur im Auge zu behalten. Leider lieferte mir LM-Sensors keine Temperatur zum Prozessor, der zwar erkannt wird, für den es aber noch keinen Treiber gibt.

Allerdings habe ich hier einen Patch gefunden, mit dem ich die Temperatur meines K10 nun auslesen kann. Ladet euch dazu das Makefile und den Source Code herunter:

Makefile

k10temp.c

build-essential muss installiert sein:

1
sudo apt-get install build-essential

Kompilieren:

1
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

Kopieren:

1
cp k10temp.ko /lib/modules/$(uname -r)/kernel/drivers/hwmon

Modul laden:

1
sudo depmod && sudo modprobe k10temp

Nach einem Neustart sollte die Temperatur angezeigt werden können. Um sie etwas besser im Auge behalten zu können, kann man noch das GNOME Sensors-Applet installieren:

1
sudo apt-get install sensors-applet

Ich habe öfter von falschen Temperaturanzeigen bei K10 Prozessoren gelesen, bei mir scheinen die Angaben aber zu stimmen. Etwa 40 °C im Idle und etwa bis zu 60 ° C unter Volllast scheinen mit dem Box Kühler realistisch. Ich werde mir demnächst wohl einen besseren Kühler zulegen…

mfg
Finn