Ubuntu: MPD 0.17 kompilieren zum Erzeugen eines mp3-Streams zum Streamen an MPDroid

Auf meinem Smartphone nutze ich das Programm MPDroid zur Ansteuerung meines MPDs – praktisch, wenn man am Küchentisch sitzt und die Musik wechseln möchte.

MPDroid kann auch einen MPD-Stream abspielen, normalerweise mp3 wie auch ogg. Auf  manchen Smartphones mit bestimmten Android-Versionen befindet sich allerdings ein Bug bei der ogg-Wiedergabe (siehe dazu: https://github.com/abarisain/dmix/issues/135). Die Wiedergabe des freies Codecs funktioniert bei mir leider nicht, ob mp3 funktioniert würde ich gerne wissen.
Die mit Ubuntu ausgelieferte Versionist ist leider ohne mp3-Komprimierung bei der Stream-Wiedergabe kompiliert.Aus diesem Grund habe ich den MPD selber mit mp3-Unterstützung kompiliert.

Dies funktioniert ganz einfach:

  • sudo apt-get build-dep mpd
  • sudo apt-get install libmpg123-devdo 
  • je nach Bedarf weitere Bibiotheken, mir reicht libmpg123 für die mp3-Unterstützung,ich hatte viele andere bereits installiert, auf Ausgabe von configure muß dann ggf. reagiert werden.
  • Quellcode besorgen: http://sourceforge.net/projects/musicpd/ In ein Verzeichnis entpacken (bei mir unter ~/src/), Verzeichnis betreten
  • ./configure

    Das sollte jetzt durchlaufen, wenn das Paket “build-essential” installiert wurde, wenn noch nicht geschehen

  • make

    MPD kompilieren wenn configure erfolgreich durchgelaufen ist

“make install” habe ich nicht durchgeführt, da ich nur Testen möchte und nicht mein System zumüllen möchte. Stattdessen habe ich die kompilierte mpd-Datei (im Verzeichnis ~/srs/mpd/src/mpd) in ein eigenes Verzeichnis kopiert, zusammen mit der /etc/mpd.conf sowie die playlists und die DB-Datei aus /var/lib/mpd, welche ich ebenfalls in dieses Verzeichnis kopiert habe. Die mpd.conf muß angepaßt werden (Verzeichnisse , Port-Nummer, sowie ein mp3-Stream als Ausgabe).

Den mpd habe ich nun in einer screen-Umgebung mit folgendem Parameter aus dem neu erstellten Verzeichnis gestartet:

  •  mpd mpd.conf --no-daemon

Wenn alles geklappt hat, startet jetzt ein 2. MPD parallel zum ersten, bei Ubuntu mitgelieferten. Bei mirläuft er seit Tagen problemlos.

Der Zugriff auf den mp3-Stream funktioniert jetzt mit MPDroid – nun muß ich mir überlegen, ob ich den originalen MPD mit diesem komplett ersetze  :)

Veröffentlicht unter Installation, Programmieren, Ubuntu, Uncategorized | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Gnome-fork Mate unter Ubuntu 12.04

Durch einen Blog-Eintrag im ubuntuusers-Planeten (http://tridex.net/2012-07-30/mate-1-4-wurde-veroeffentlicht/) ist mir ein Fork von Gnome 2 wieder ins Bewußtsein getragen worden.
Auf meinem Thinkpad hab ich zur Zeit Debian (http://schubduese.wordpress.com/2011/10/25/migration-von-ubuntu-zu-debian-auf-dem-thinkpad-t40p/) und Ubuntu 12.04 (http://schubduese.wordpress.com/2012/04/25/ubuntu-12-04-auf-dem-ibm-thinkpad-t40/) laufen, leider überzeugt mich keins von beiden 100%: Debian ist einigermaßen flott, aber die installierten Softwareversionen sind doch schon recht alt :( Ubuntu hat aktuelle Softwarepakete, aber trotz LXDE läuft es träge, zu träge um es ernsthaft zu benutzen.

Da ist Mate geradezu einen Versuch wert. Ich hab immer Gnome benutzt, aber wie es mir fehlt, wird mir erst klar, seitdem man unter Ubuntu nur noch Gnome 3, Unity, LXDE, XFCE oder zur Not auch noch KDE hat.

Ich finde es toll, dass einige “Unverbesserliche” es versuchen, Gnome weiter am Leben zu erhalten, ob dies auf Dauer gelingt, sei dahingestellt, aber die Mate Version 1.4 läuft bei mir perfekt und allemal flotter als LXDE. Dazu kommt eine Benutzeroberfläche, welche ich über die Jahre lieben gelernt. Wer immer noch “seine” Desktopumgebung für Ubuntu 12.04 sucht, sollte sich Mate mal angucken: Es ist das alte Gnome – nicht mehr aber auch nicht weniger.

Ich bleibe erstmal bei Mate und berichte ggf. über neue Erkentnnisse. Zum Abschluss die Installationsanleitung für Ubuntu 12.04, welches eine Zusammenfassung der eh schon sehr kurzen Anleitung der Mate Seite ist(http://mate-desktop.org/install/):

sudo add-apt-repository "deb http://packages.mate-desktop.org/repo/ubuntu precise main"
<pre>sudo apt-get update
sudo apt-get install mate-archive-keyring
sudo apt-get update
sudo apt-get install mate-desktop-environment

Veröffentlicht unter Installation, Ubuntu | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

Samsung UE40ES5700: VDR – Aufnahmen über mediatomb oder minidlna streamen?

Ich habe mir einen neuen Fernseher zugelegt, und zwar einen Samsung UE40ES5700. Wichtig bei einem neuen Fernseher war mir UPnP/DLNA – Fähigkeit, welcher der Samsung hat (wie fast alle neuen Fernseher in dem Preissegment).
Da es mein erstes Gerät mit UPnP/DLNA Fähigkeiten ist, ist das gesamte Gebiet neu für mich. Meine Anforderungen an einen DLNA-Server sind daher erstmal gering:

  1. Ich möchte meine VDR-Aufnahmen zum Fernseher streamen können
  2. Das Ganze mit möglichst wenig Aufwand
  3. Fotos streamen wäre auch noch nett

Musik streamen ist mir nicht wichtig, meine Anlage im Wohnzimmer ist per Audiokabel direkt an den Server angeschlossen (Wiedergabe erfolgt da über MPD).

Ein Programm kannte ich vom Namen her und genügt anscheinend meinen Anforderungen: mediatomb

Sehr vielversprechend ist auch, dass es auf vielen Seiten erklärt wird, wie man den VDR damit einbinden kann:

Dies sowie die allgemein guten Konfigurationsmöglichkeiten waren für mich der Grund erstmal mediatomb zu probieren, aber um es kurz zu machen: Mit aktuellen Samsung-Fernsehern läuft es nicht zusammen! Ich hab zwar den mediatomb-Server im Samsung finden können, aber zu einem Ordner habe ich mich nicht verbinden können, der Grund ist hier erklärt: http://sourceforge.net/tracker/?func=detail&aid=3532724&group_id=129766&atid=715782

Aktuelle Samsung-Modelle senden keine DLNA-konformen Anfragen an den Server! Dies, und der Umstand daß ich auch noch ein lästiges UTF-8 Problem hatte (http://www.synology-forum.de/showthread.html?3476-Mediatomb-Problem-mit-deutschen-Umlauten), haben mich schließlich MiniDLNA probieren lassen.

Statt Java in C geschrieben sammelt es schonmal Pluspunkte (leichtgewichtiger, daher besser für meinen kleinen Heimserver geeignet).

Die Konfiguration beschränkt sich auf ein Minimum, ich mußte eigentlich nur die Ordner mit Multimedia-Inhalt eintragen:

# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200

# network interfaces to serve, comma delimited
#network_interface=eth0

# set this to the directory you want scanned.
# * if have multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to a specific content type, you
#   can prepend the type, followed by a comma, to the directory:
#   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
#   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
#   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
media_dir=V,/media/data/multimedia/vdrVideo/
media_dir=P,/home/data/multimedia/Fotos
# set this if you want to customize the name that shows up on your clients
friendly_name=schubduese MinDLNA

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
#db_dir=/var/cache/minidlna

# set this if you would like to specify the directory where you want MiniDLNA to store its log file
log_dir=/var/log

# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
enable_tivo=no

# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
#   which may hurt JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

# default presentation url is http address on port 80
#presentation_url=http://www.mylan/index.php

# notify interval in seconds. default is 895 seconds.
#alle 12 Stunden reicht vollkommen
notify_interval=43200

# serial and model number the daemon will report to clients
# in its XML description
serial=12345678
model_number=1

# use different container as root of the tree
# possible values:
#   + "." - use standard container (this is the default)
#   + "B" - "Browse Directory"
#   + "." - use standard container (this is the default)
#   + "B" - "Browse Directory"
#   + "M" - "Music"
#   + "V" - "Video"
#   + "P" - "Pictures"
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#root_container=.

Und siehe da, es funktioniert auf Anhieb, VDR-Aufnahmen lassen sich konfortabel am Fernseher gucken, auch spulen ist möglich! Ich bin total begeistert, Fotos lassen sich ebenso einfach anschauen.

Es gibt nur eine Sache, die mich stört: Man kann das Bildformat nicht am fernseher umschalten, wenn das korrekte Seitenverhältnis nicht in den Aufnahmen gespeichert ist, kann ich dies am Fernseher nciht korrigieren. Dies ist bisher aber auch erst bei einer Aufnahme vorgekommen.

Was mich in Zukunft evtl. nochmal an miniDLNA stören könnte, ist die fehlende Transkodierungsmöglichkeit. DLNA unterstützt nur wenige Formate, z.B. kein Streaming von ogg-Dateien. Mediatomb könnte ogg-Dateien umkodieren in mp3s, miniDLNA kann dies nicht. Im Moment will ich aber keine Musikdateien streamen, und erst da wäre es essentiell wichtig!

Veröffentlicht unter Installation, Uncategorized | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

OpenTTD: Aufsetzen eines Dedicated Gameserver unter Ubuntu

Nach einiger Zeit hatte ich mal wieder Lust auf eine Runde OpenTTD. OpenTTD hab ich zuletzt in der 0.7er Version ernsthaft gespielt. Im Gegensatz zu früher gibt es mittlerweile Spielserver wie Sand am Meer, die meisten sind eher schlecht gefüllt und aus diesem Grund ist es nicht notwendig einen eigenen Gameserver zusätzlich aufzusetzen.

Aber ich benutze gerne Einstellungen, die ich auf keinem Server finde, deshalb doch ein eigener ;)

Die folgende Anleitung beschreibt die Installation auf meinem Heimserver, Sicherheit hat bei mir kein hohe Priorität, sondern vielmehr ein einfacher Weg zum Ziel: Ein gut konfigurierter Dedicated Server mit Anbindung an den OpenTTD-Masterserver, damit mein Server für andere Spiele sichtbar ist.

Berücksichtigt man Sicherheitsaspekte, sollte man den Server zumindest in ein chroot-jail oder ähnliche Mechanismen sperren.

Nun zur Anleitung:

  • OpenTTD-Version aus den Paketquellen installieren oder aktuelle Version herunterladen. Ich benutze letzte Methode, um eine aktuelle Version (1.2.0) als Server anzubieten, hierbei ist die Chance auf Mitspieler am größten
  • Auf einem Nicht-Server OpenTTD starten, und sämtliche Spieleinstellungen vornehmen, die einem gefallen. Fast alle Einstellungen (bis auf die Rubrik “Network” in der openttd.cfg lassen sich über die GUI ändern) lassen sich auf diesem Weg vornehmen und sind intuitivr einstellbar. Kurz ein neues Spiel starten (kann auch Einzelspieler sein) und OpenTTD verlassen – die vorgenommen Änderungen sind nun in der openttd.cfg in ~/.openttd gespeichert.
  • einen OpenTTD-Benutzer auf dem Server anlegen und in dessen Home-Verzeichnis nach .openttd/ die soeben auf dem Spielrechner erstellte openttd.cfg kopieren
  • letzte Einstellungen in der openttd.cfg vornehmen (in der Rubrik “Network”: Servername, ob die Zeit weiterlaufen soll wenn kein Spieler auf dem Server ist,…)
  • eine Shell mit diesem OpenTTD-Benutzer Öffnen und screen starten
  •  /entpacktesOpenTTD-verzeichnis/./openttd -D 
  • In der screen-Konsole sollte nun ein neuer Server gestartet werden, wenn das erfolgreich war, kann man screen mit Strg-a und Strg-D in den Hintergrund schicken, damit der Server nach dem Ausloggen weiterläuft

Das war es schon! Wenn jetzt der Router noch den richtigen Port an den Heimserver weiterleitet, und in den openttd.cfg-Einstellungen vorgenommen wurden, dass der Server sich am Master-Server anmeldet, ist der Server von aussen erreichbar und publik. So sollte man ihn einfach im Server-Menü des Spiels finden, und zumindest bei mir kamen nach einiger zeit andere Mitspieler dazu!

2007 hatte ich einen Server laufen, der immer gut gefüllt war, das werde ich wohl leider nicht mehr schaffen, die Server-Anzahl ist wie bereits erwähnt deutlich hoher als früher. Aber solange sich der ein oder andere mal verirrt ist auch nicht schlecht ;)

Ich poste die Tage nochmal genauer, welche openttd.cfg meiner Meinung nach wichtig sind, einige sind nämlich nicht besonders intuitiv ;)

Veröffentlicht unter Spielerei | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Ubuntu 12.04 auf dem IBM Thinkpad T40?

Auf einem Samsung NC10 hab ich 12.04 installiert, das Installationsmedium (USB-Stick) habe ich mal kurz an mein Thinkpad geklemmt, um einmal live den Vergleich Debian Squeeze zu Ubuntu 12.04 auf dem Rechner zu spüren.

Zu meiner Überraschung bootet der Rechner nicht: Mein Thinkpad verfügt über keinen PAE-fähigen Prozessor :( Ich las darüber zwar vor Monaten, habe ich nicht gedacht, dass ich einen Rechner besitze der dazu gehört. Natürlich ist ein T40 kein neues Gerät mehr, aber so alt meiner Meinung nach auch nicht.

Da zeigt sich wieder einmal mehr, dass Ubuntu leider nicht mehr für alte Hardware uneingeschränkt geeignet ist. Das war beim Start vor 8 Jahren noch ganz anders.

Eine Möglichkeit gibt allerdings dennoch, 12.04 auf nicht PAE-fähigen Prozessoren zum laufen zu bekommen: Die Installation über Xubuntu oder Lubuntu, welche noch einen solchen 32 Bit PAE-losen Kernel einsetzen! Zeit, sich einmal näher mit diesen Ubuntu-Derivaten auseinanderzusetzen…

Veröffentlicht unter Installation | Verschlagwortet mit , , , | 4 Kommentare

Ubuntu:Server-Upgrade von 10.04 LTS auf 12.04 LTS (Precise Pangolin)

Eigentlich hatte ich es nicht vor, so schnell auf Ubuntu 12.04 auf meinem Heimserver upzudaten, aber die Anzahl an angeschlossener Hardware, welche unter 10.04 nicht out-of-the-box läuft, hat weiter zugenommen: Mein USB-DVB-T-Stick läuft ebenfall auf dem Server nicht ohne Treiber-Kompilierung.

Zwar gibt es einen 3.0er Kernel für 10.04, aber ich habe dort den Nachteil, dass der (ebenfall jetzt im Kernel vorhandene) Treiber für die WLAN-Karte (Atheros Communications Inc. AR2427 802.11bg Wireless Network Adapter) nicht mit der hostapd-Version läuft, welche bei 10.04 mitgeliefert wird (0.6.2). Neuere Version Kompilieren kommt für mich da im Moment wegen zeitmangel auch nicht in Frage.

Da ich umgezogen bin, und in der neuen Wohnung kein Satelliten-Empfang möglich ist, ich also auf DVB-T angewiesen bin, habe ich mich zum Update entschlossen.

Das Backup der Daten hätte ich mir sparen können, das Update lief problemfrei durch. Zur Sicherheit habe ich einige wenige Pakete, welche nicht aus den offiziellen Quellen installiert waren, deinstalliert (tor, yavdr, Jenkins). Anschließend hat eine Zeile das Update aufgerufen:

 do-release-upgrade -d

Dauer auf dem EEE-PC (Atom-Prozessor, 1 GB RAM): ca. 2 Stunden. Ich wurde beim Update allerdings an unzähligen Stellen gefragt, ob ich die vorhandenen Konfigurationsdateien behalten möchte, oder durch neuere ersetzen möchte. In den meisten Fällen habe ich die alten behalten.

Nach dem Neustart kann ich erstmal keine nicht-funktionierenden Programme entdecken! Toll :)

Zur Nachahmung prinzipiell empfohlen, aber evtl. wartet man auch noch gerade die 3 Tage, bis Precise Pangolin offiziell erscheint ;)

Veröffentlicht unter Uncategorized | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Installation des DVB-T-Sticks Terratec Cinergy T unter Debian Squeeze

Ich habe mir einen preiswerten DVB-T Stick gegönnt, den Terratec Cinergy T. Dieser ist nicht der preiswerteste, und im Vergleich zu einem absoluten NoName-Produkt, welchen ich mal geliehen hatte von der Empfangsqualität sehr gut: Wo der andere versagt, ist hiermit ein Empfang ohne Probleme möglich.

Die Wahl war nicht nur vom Preis abhängig, sondern auch von der einfachen Installation: Ab Kernel 2.37 soll dieser Stick out-of-the-box funktionieren. Ich benutze aber leider Debian Squeeze, wo bei mir aktuell  der 2.6.32-5erKkernel läuft. Unter Ubuntu 11.10 müßte er also ohne Probleme laufen – ich kann es nicht testen, ich habe kein aktuelles Ubuntu installiert.

Also ist manuelle Installation angesagt: Linuxtv.org und das UUser-Wiki beschreiben jeweils 4 mögliche Lösungswege, abhängig von der Version.

Bei mir (wie bereits erwähnt Debian Squeeze) funktioniert folgender:

  1. Download der Firmwareund speichern unter
    /lib/firmware
  2. Installieren der zum Kompilieren notwendigen Pakete:
  3. sudo apt-get install mercurial linux-headers-$(uname -r) patchutils git
  4. Download der Treiber-Sourcen
    git clone git:<em>linuxtv.org/media_build.git</em> 
  5. In das Verzeichnis “media_build” gehen und .build aufrufen
    .build

    Dies dauert auf meinem T40 eine ganze Weile – Kaffeezeit :)

  6. Installieren der fertig kompilierten Treiber:
    make install

    (als root)

  7. Am einfachsten ist jetzt ein Neustart, und mit
    <em>dmesg | grep -i dvb</em>

    im Kernel log nach Hinweisen suchen, ob die Installation funktioniert hat. Bei mir kommt folgende Meldung:

    [    2.006430] usb 1-4: Product: USB2.0 DVB-T TV Stick
    [    2.035223] input: NEWMI USB2.0 DVB-T TV Stick as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.1/input/input1
    [    2.035346] generic-usb 0003:0CCD:0097.0001: input,hidraw0: USB HID v1.01 Keyboard [NEWMI USB2.0 DVB-T TV Stick] on usb-0000:00:1d.7-4/input1
    [    5.406615]     72565224609a23a60d10fcdf42f87a2fa8f7b16d [media] cxd2820r: sleep on DVB-T/T2 delivery system switch
    [    6.554293]     72565224609a23a60d10fcdf42f87a2fa8f7b16d [media] cxd2820r: sleep on DVB-T/T2 delivery system switch
    [    6.932204] dvb-usb: found a 'TerraTec Cinergy T Stick RC' in warm state.
    [    6.932264] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
    [    6.932741] DVB: registering new adapter (TerraTec Cinergy T Stick RC)
    [    7.357490] DVB: registering adapter 0 frontend 0 (Afatech AF9013)...
    [    7.644169] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/rc/rc0/input9
    [    7.644252] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/rc/rc0
    [    7.644257] dvb-usb: schedule remote query interval to 500 msecs.
    [    7.644262] dvb-usb: TerraTec Cinergy T Stick RC successfully initialized and connected.
    [    7.664799] usbcore: registered new interface driver dvb_usb_af9015
    

Damit steht dem digitalen Fernsehgenuß nichts mehr im Weg, ich benutze aus resourcensparenden Gründen vdr mit vdr-admin als Weboberfläche, so kann ich Timeraufnahmen im Hintergrund durchführen, ohne groß an Performance einzubüßen.

Nach einem Kernelupdate müssen einige Schritte wiederholt werden:

make distclean
make clean
make
make install
Veröffentlicht unter Installation | Verschlagwortet mit , , | 1 Kommentar