Asus AT3IONT – Suspend

Bei meinem HTPC bin ich auf folgendes Problem gestoßen. Kaltstart will nicht so recht, da dort das USB tot gelegt wird und somit mein IR-Empfänger kein Signal empfangen kann. Suspend to RAM will auch nicht, da der (closed source) Nvidia Treiber sich quer stellt (hab ich schon mal erwähnt das ich so was hasse …). Suspend to Disk funktioniert auch nicht so wirklich, hier wird irgendwie die ramdisk nicht geladen. Was aber ganz gut ist.  Somit kommt das einem „reset“ gleich. Leider ist hier auch das USB tot gelegt. Ein kleiner blick ins Handbuch bringt mich auch „Control UeP“. Ist das aktiviert, wird wohl alle Peripherie runter stromlos geschaltet (scheinbar auch im S4 obwohl im Handbuch S5 steht)

Lange rede kurzer Sinn: XBMC mittels default auf Suspend to Disk stellen, dieses UEP ausschalten und schon kann man von der Couche den HTPC hochfahren.

Media-PC (HTPC) marke Eigenbau.

Seit nunmehr zwei Monaten schraube ich an einem MediaPC/HTPC auf basis LucidLync, XBMC und VDR. Es gibt zwar einen Haufen spezialisierter Distributionen wie mythTV, yaVDR, GeexBox usw. Oder man kauf gleich eine spezielle Box beim Hardwarehändler seiner Wahl. Ich hab mich für den Eigenbau entschieden. Beginnen möchte ich mit der Hardware. Verbaut habe ich folgendes:

  • Asus AT3IONT: Atom 330: Ein lüfterloses „all in one“ Motherboard mit einem PCI-E Port. Einziger negativpunkt: Der RAM-Controller kann nur mit 32Bit adressieren. Soll heißen, man hat zwar einen 64 Bit Chip, kann 4GB stecken, es werden aber nur 3GB angesprochen (auch mit PAX)
  • Lian Li PC-C39B: Zu diesem Chassis hab ich eine gespaltene „Meinung“. Auf der einen Seite ist das Chassis qualitativ hochwertig verarbeitet, sieht schick aus und das Design ist LianLi-typisch gut durchdacht. Auf so engen Raum hab ich noch nie so frei Hardware einbauen können., ohne mir dabei die Finger zu verbiegen. Der Haken an dem Chassis ist die mitgelieferte Fernbedienung. Es handelt sich dabei um eine RF-Fernbedienung (TSBX-2404). Was an sich genial ist, da man keine Sichtverbindung zum Empfänger braucht. Es braucht auch keinen LIRC, da der Receiver Tastencodes sendet, dummerweise auch welche mit 2Byte, die der XServer nicht verarbeiten kann. Richtig doof kommt aber der Verbauort. Man merkt, dass das Case früher mit einer IR Fernbedienung ausgeliefert wurde. Es wurde eine kleines Acryl-Fenster auf der Front vorgesehen, wohinter der Receiver montiert ist. Blöd nur, dass RF-Signale sich für Acryl nicht interessieren. Schon eher für ein vollständig geschlossenes Alu-Case. Mann nennt so was in der Physic auch Faradayscher Käfig. Die Folge: die Reichweite sinkt auf unter 2 Meter, ist lagebedingt und es macht keinen Spaß das Gerät zu bedienen.
  • IR – Adapter: Als Ersatz für den verbauten RF – Controller hab ich mir einen RC6 IR-Controler verbaut.
  • Logitech Harmony One: Eine teure Fernbedienung. Logitech halt. Aber Logitech Like richtig schick, richtig praktisch. Über Umwege (Concordance) auch unter Linux programmierbar.
  • Thermaltake Litepower 350W. Sehr leises Netzteil nicht zu hören.
  • CZ Agility2 E 2,5″ SSD 60 GB: Will SSDs haben 3 Vorteile: sie sind Lautlos, extrem schnell (diese hier 250MB/s read), brauchen kaum Strom. Letzteres ist bei Festrechner uninteressant. Der Rest macht die Dinger echt praktisch. Booten in 3 Sek (nach BIOS) und absolut keine Geräuschkulisse
  • Seagate ST3250311SV 250GB: für Mitschnitte oder lokalen Cache (dazu später mehr) braucht es etwas mehr Platz.

Als Distribution kommt Ubuntu 10.04 Lucid Lynx zum Einsatz. Allerdings mit Einschränkungen. Anfangs versuchte ich mein Glück mit dem NetbookRemix. Es stellte sich jedoch bald herraus, dass einfach sehr viel mit installiert wird, was man auf einem HTPC einfach stört, ihn bremst oder anderweitig unbrauchbar ist. Zu nennen währe da der Auto-Mount sammt Notification. Dieser brachte immer XBMC in den Background. Alles in allen war es einfacher, alles komplett selber aufzusetzen als den UNR abzuspecken. Ich hab mit der Alternate-InstallCD ein reines KonsolenSystem installiert (im BootMenu F4 drücken und dann „Nur Konsole“). Dieses System ist innerhalb von einer Sekunde einsatzbereit (Login-Prompt). Als erstes brauch man den NoDM. Das ist eine „Display-Manager“ der zum Ziel hat, kein DisplayManager zu haben 😉 Kurz es gibt keinen Loginsreen. Es wird einfach eine Default-Session mit einem vordefinierten Nutzer gestartet und doe .xsession datei ausgeführt. Alles ohne Passwort. Bei der Installation wird gleich der XServer mitinstalliert und man hat eine „grafische Oberfläche“ . Nun noch den NVidia-Treiber installiert (kostet beim boot ca 1 Sek). Anschließend nach dieser Anleitung XMBC und VDR installiert.

Danach noch HAL, LIRC und DBUS nachinstallieren und schon hat man ein Funktionierendes MediaCenter mit XBMC und VDR. Und man muss gestehen XBMC ist ein extrem schicker Eyecandy…

Ein hinweis noch, sollte XBMC den HTPC nicht herrunter fahren könne, muss man sich noch dieses Kniffes betätigen damit das auch funktioniert.

Logitech Harmony One

XBMC Repository

Seit einiger Zeit ist es sehr ruhig in diesem Blog. Der Grund: bei meinem Arbeitgeber brummt es wieder und ich muss Überstunden schieben und zu Hause hält mich die Arbeit an einigen XBMC-Plugins vom Bloggen ab.

Heute ist es nun so weit, ich veröffentliche meine arbeiten in meinem Repository:  repository.raptor2101.zip

Enthalten sind bis jetzt:

  • PodCatcher: Ein Plugin zum hören von Podcastes. Verwaltung erfolgt über OPML. Mit „was wurde gehört“ verwaltung.
  • gamestar:  Zugriff auf das VideoPortal von gamestar.de
  • Mediathek: Zugriff auf die VideoPortale möglichst vieler öffentlich Rechlicher (zur zeit implementiert ARTE,ZDF,ARD)

XBMC und Podcasts

XBMC hat einen „Build-in“-Support für RSS-Feeds. Einfach die entsprechende URL beim Anlegen einer neuen Quelle als Adresse angeben. Leider wird dann der RSS-Inhalt ohne jeden Schnörkel einfach nur angezeigt. Ich wollte etwas mehr Komfort und habe daher ein kleines Plugin geschrieben, was folgendes beherrscht:

  • Verarbeiten von OPML – Files.
  • Darstellen von „gelesenen“ und „ungelesenen“ Beiträgen (ja ich weiß, klingt scheiße bin ich aber so von den Feedreadern gewohnt, wer was anderes will einfach die string.xml anpassen;) )
  • Abspielen von Enclosures
  • „Als gelesen Markieren“ von ganzen Ordnern oder einzelnen Beiträgen.

Ich versuch gerade die File in ein offizielles Repository zu bekommen. So lange kann der geneigte Tester das Plugin hier herunterladen: http://blog.raptor2101.de/wp-content/uploads/2010/10/plugin.audio_.PodCatcher.zip

WebRadio aus XBMC Hauptmenu starten

Will man unter XBMC WebRadios hören braucht man nicht unbedingt das Shoutcast oder ListenLiveEU-Plugin. Diese Plugins werden nur benötigt um die verfügbaren Radiostreams „bequem“ zu browsen. Hat man ersteinmal seine „bevorzugten“ Radios gefunden, will man diese nicht ständig neu suchen, sondern „per Knopfdruck“ starten.

Um das zu bewerkstelligen muss man erstmal eine Playlist erstellen die alle gewunschten Webstreams entällt. Unterstützte Formate sind:PLS und M3U. Hat man diese Datei einmal erstellt muss man sie unter ~/.xbmc/userdata/playlists/ ablegen. Beispiel-Datei:


File1=http://stream1.wazee.org:8000/wazee.mp3
Title1=[radio.wazee] Chicago
Length1=-1

File2=http://69.163.209.221:8000/
Title2=[radio.wazee] Los Angeles
Length2=-1

File3=http://radio.addictedtotheinter.net/wazee.mp3
Title3=[radio.wazee] Chicago
Length3=-1

File4=http://69.163.34.214/
Title4=[radio.wazee] Portland
Length4=-1

File5=http://209.188.16.85/
Title5=[radio.wazee] Phoenix
Length5=-1

NumberOfEntries=5

Version=2

Hat man das erledigt, kommt es zum spannenden Teil: das anpassen des Skins. Jeh nach Installationsart findet man die Skins entweder unter „/usr/share/xbmc/addons/skin.*“ oder unter „~/.xbmc/addons/skin.*“. Im Skinordner selber gibt es unterschiedliche Ordner, ein oder mehrere sind nach einer auflösung benannt: 720p,1080p,… Den Wunschordner davon öffnen und die Home.xml aufmachen. Jetzt wird es kryptisch. In XBMC wird fast ausschließlich mit referencen, statt mit festen Strings gearbeitet. Ergo bringten einen das suchen nach einem String nicht weit. Die Funktionsaufrufe („onclick“) sind jedoch gut lesbar, und wer es ganz genau braucht, kann die strings in der /usr/share/xbmc/language/*/strings.xml nachschlagen und nach der gewünschten ID suchen. Will man z.B Beim Confluence-Skin im SubMenü zur Musik den Eintrag WebRadio, muss das so aussehen:

  ButtonHomeSubCommonValues
  
  ActivateWindow(MusicFiles)



  ButtonHomeSubCommonValues
  
  ActivateWindow(musicfiles,special://musicplaylists/WebRadio.pls,return)

  ButtonHomeSubCommonValues
  
  ActivateWindow(MusicLibrary)
  Library.HasContent(Music)

Anschließend wird beim klick auf diesen Button die Playlist geladen und man kann den Wunschsender auswählen

XBMC, TV-Serien und die falsche Reihenfolge

Wenn man seine Medien nicht mehr über den Dateiexplorer verwalten will, sondern den Zugriff über ein ausgewachsenes MediaCenter wie XBMC verwalten will, wird schnell darauf stoßen, dass die Mete-Info-Qullen im Netz nicht unbedingt, die Serien-Reihenfolge einhalten, wie sie den Staffel-DVDs entspricht. Mal ist das korrekt, mal nervt es. Wie bei Firefly. Dort hält sich thetvdb.com an die Reihenfolge wie die Episoden ursprünglich ausgestrahlt wurden, leider ist das nicht die von Regisseur geplante  Reihenfolge gewesen.. So wird der Pilot erst an 11 stelle gelistet. Will man in der Reihenfolge die Serien betrachten, fehlen einem unweigerlich die Zusammenhänge.

Um in XBMC  die Reihenfolge zu verändern gibt es zwei Möglichkeiten. Bei beiden muss man erstmal die Medien-Datenbank exportieren. Am besten speichert man alle Informationen in separaten Dateien pro Film/Episode. Nun findet man neben den eigendlichen Medien-Dateien eine gleichnamige NFO-Datei.

  • Variante 1: Man benennt die Dateien so wie sie auf der DVD vorkommen. Dann muss man die NFO Files ggf. so Umbenennen, dass die enthaltenen Informationen zu den Serien passen. Anschließend muss man den episode-Tag in der nfo Datei anpassen.
  • Variante 2: Man bennent die Dateien gleich so, dass sie der Scrobbler richtig zuordnet. Dann muss man nur den displayepisode entsprechend überschreiben.

Anschließend muss man XBMC anweisen den Ordner auf neue Inhalte zu prüfen und ggf die Datei-Informationen abrufen und aktualisieren. Bei diesem Dialog wird man dann gefragt ob man die lokalen Inhalte überschreiben will, was man verneint. Anschließen passt das auch mit der Sortierung.

Links:

High Definition Audio und das „Anschluss-Sharing“

Wer ein halbwegs modernes Board sein eigenen nennt (ich zb ein AT3IONT, wie der name schon sagt, mit ION-Chipsatz) wird zwangsweise mit einer HDA – Karte (bei mir Realtek ALC 887) konfrontiert, die mehr Kanäle zur verfügung stellt, als sie Anschlüsse hat. In meinem fall 8 Kanäle (7.1) bei nur 5 Anschlüssen wovon 2 "eigendlich" nur Duplikate der Anschlüsse auf dem Board sind, die über eine Audio-Panel rausgeführt werden. Ergo hat man 3 Anschlüsse, davon einer als standart Stereo Output. Der Trick der Herrsteller ist, dass alle Anschlüsse je nach Kanal-Config anders belegt werden. Geht man auf 8 Kanal-Sound hoch, kann man kein Micro mehr anschließen und die Front-Buchse für den dezenten Kopfhörereinsatzt ist auch dahin. Das alles wird dann auf die 8 Kanale gemappt.

Startet man ins Linux werden einem auch nur diese drei Anschlüsse zur Verfügung gestellt, ergo Stereo-Sound. Man muss dem "hda_intel"-Treiber (darunter werden wohl alle Karten die sich HDA schimpfen) ein bisschen unter die Arme greifen. Den grund findet man hier. Was in der Beschreibung ein wenig unter geht, ist der umstand, dass man nicht unbedingt den "richtigen" Modulname erwischen muss. Zumindestens bei meinem ION-Board kann ich die soundkarte mit 6 verschieden Configs ansprechen:

  1. 3stack – normaler stereo sound
  2. 3stack-digout – normaler stereo Sound, SPDIF verfügbar (hab ich aber nicht testen können, da ich noch kein SPDIF Receiver hab)
  3. 3stack-2ch – normaler stereo sound
  4. 3stack-2ch-digout – das selbe wie oben
  5. 3stack-6ch – 5.1 sound über alle 3 hinteren Klinke-Anschlüsse
  6. 3stack-6ch-digout -5.1 und SPIDF verfügbar

Was nun fehlt sind eigendlich 4stack-8ch und 3stack-4ch. Auch wenn es nicht ganz korrekt ist, kann man so die Konfig bestimmen, mit der man seine Soundkrarte ansteuert.

Die Konfig muss in eine config-Datei unter /etc/modprobe.d geschrieben werden. Entweder nimmt man dazu eine bestehende oder legt eine neue an. Ich hab letzteres gemacht. Die Datei /etc/modprobe.d/alsa-hda-intel.config sieht wie folgt aus:

options snd-hda-intel model=3stack-6ch enable=1 index=0
alias snd-card-0 snd-hda-intel

Damit wird mein Soundsystem über die analogen Anschlüsse mit einem 5.1 Signal versorgt. Die Feinabmischung kann man über den alsamixer vornehmen.

NVidia Kernel Modul zerschossen.

Wenn man mit gewallt seinen Kernel neu installiert kann es passieren, dass danach das Kenrel-Modul nvidia nicht mehr geladen werden kann. Man sollte dann prüfen ob die linux-header-daten desaktuellen kernel installiert sind, da diese zum bauen der Treiber benötigt werden. Anschließend kann man mittels folgendem Befehl die Treiber neu bauen:

sudo aptitude reinstall nvidia-current

Opera und das Importieren von Open-SSL Zertifikaten

Wer seine eigene kleine CA betreibt und dem Opera sein eigenes Root-Zertifikat unter jubeln will, wird mit einer sehr aussagekräftigen Fehlermeldung belohnt: „Importieren Fehlgeschlagen“ wohingegen der Firefox das gleiche Zertifikat ohne Anstalten importiert und verarbeitet.

Der „Fehler“ liegt darin, das Opera nur das reine Zertifikat haben will, ohne irgendwelchen Meta-Daten. OpenSSL speichert in den PEM-Dateien jedoch noch jede Menge Meta-Daten. Diese einfach per TextEditor raus löschen und das Zertifikat lässt sich laden.