Kategorie-Archiv:Linux

(Telefunken T32K95) Keine EDID-Daten mehr – und was jetzt?

Ich habe einen gut sieben Jahre alten Flachbildfernseher von Telefunken. Grundsätzlich kaufe ich nichts neu, solange es noch funktioniert und nicht völlig obsolet ist – und ein Gerät mit einer Auflösung von 1360×768 ist definitiv noch nicht obsolet.

Vor einer Woche fiel mir allerdings auf, dass sich das Gerät unter Linux nur noch mit maximal 1024×768 oder noch niedrigeren Standardauflösungen ansprechen ließ. Selbst diese sahen schrecklich aus, da ganze Pixelreihen verschluckt wurden, sodass meine Augen zu tränen begannen.

Der gute alte Telefunken hatte einfach damit aufgehört, EDID-Informationen zu übertragen. Die Extended Display Identification Data sorgt dafür, dass das Betriebssystem weiß, mit welcher Auflösung und Bildwiederholfrequenz es angeschlossene Bildschirme ansteuern soll. Bei VGA werden sogar noch mehr Infos wie die Horizontalfrequenz in kHz übertragen.

Kein Problem, dachte ich mir – denn im Web gibt es einen Modeline Calculator, mit dem man sich die über EDID übermittelten Daten selbst zusammenrechnen lassen kann.

Der funktionierte auch recht gut. Am Ende kamen diese Befehle dabei raus, um die Auflösung unter Linux on-the-fly anzuwenden:

xrandr --newmode "1360x768_60.00"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1360x768_60.00
xrandr -s 1360x768_60.00

Jedoch wurden einige Pixelreihen ziemlich „matschig“ angezeigt – vermutlich weil diese teilweise verdoppelt, verschluckt oder durch das Panel im TV interpoliert wurden. Mir fiel auf, dass dies unter Windows 7 nicht der Fall war – dort sah weiterhin alles perfekt aus.

Woran liegt das? Als ich den Monitor vor Urzeiten mal angeschlossen habe, hat Windows 7 automatisch einen Eintrag (oder „Treiber“) im Gerätemanager angelegt, der sich all die EDID-Daten abgespeichert hat und sie nun bei jedem Systemstart anwendet.

Diese Daten kann man mittels des Tools moninfo.exe auslesen und gleich komfortabel in eine Modeline umwandeln lassen. Nun sieht auch unter Linux wieder alles perfekt aus:

xrandr --newmode "1360x768_60.00"   85.500  1360 1424 1536 1792  768 771 777 795 +hsync +vsync
xrandr --addmode VGA1 1360x768_60.00
xrandr -s 1360x768_60.00

Und die Moral von der Geschichte: Manchmal ist Windows doch gar nicht so scheiße.

Skype<->Mumble-Brücke auf einem dedizierten Server einrichten

skypebotIch rufe gerne bei Massengeschmack Direkt an, um mit dem Moderator über die Sendungen zu reden. Für Anrufe vorgesehen ist eigentlich nur Skype, aber der VoiceChat zum Portal setzt auf Mumble auf. Was tun?

In diesem Beitrag zeige ich Schritt für Schritt, wie man auf einem dedizierten Server ohne Display und Soundkarte beide Programme miteinander verbindet, damit eine Gruppe von Leuten anrufen kann. Das verwendete Betriebssystem ist in diesem Fall Debian 8 (Jessie).

Zunächst benötigen wir beide Programme als Client-Version auf dem Server und einen simplen Fenstermanager, um sie bedienen zu können:

apt-get install openbox vnc4server mumble

Skype ist closed source und daher nicht direkt aus den Paketquellen erhältlich. Es kann anhand der Anleitung des Debian-Wikis installiert werden:

apt-get install gdebi
wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
gdebi skype-install.deb

Wir brauchen außerdem pulseaudio und einen Lautstärkeregler, um eine virtuelle Soundkarte nutzen zu können:

apt-get install pulseaudio pulseaudio-utils pavucontrol

Die Oberfläche wird später über VNC gesteuert, also muss die Datei ~/.vnc/xstartup entsprechend bearbeitet werden, damit alle benötigten Programme automatisch starten:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-window-manager &
pactl load-module module-null-sink sink_name=sink1 sink_properties=device.description="Sink1" &
pactl load-module module-null-source source_name=source1 description="Source1" &
pactl load-module module-loopback sink=sink1 source=source1 &
pactl load-module module-null-sink sink_name=sink2 sink_properties=device.description="Sink2" &
skype &
mumble &
pavucontrol &

Wie man sehen kann, werden zwei virtuelle Geräte für Pulseaudio erzeugt: Sink1 und Sink2. Diese übertragen den Ton später jeweils von Mumble zu Skype und umgekehrt.

Da Mumble jedoch aktuell einen Bug hat durch den diese Geräte nicht als Mikrofon ausgewählt werden können, werden zusätzlich ein null-source-Modul (Mikrofon) und ein Loopback-Modul (Brücke zwischen Sink1 und dem Mikrofon) geladen.

Damit ist die Grundeinrichtung abgeschlossen – nun kann der Pulseaudio-Daemon unter Root gestartet werden:

pulseaudio -D --system

Außerdem sollte dem Benutzer auf dem die Mumble- und Skype-Clients laufen, Zugriff auf Pulseaudio gewährt werden:

usermod -aG pulse,pulse-access username

Wenn nun der VNC-Server gestartet wird, werden automatisch auch die Skype- und Mumble-Clients mitgestartet und die virtuellen Audiogeräte eingerichtet:

vncserver -geometry 1280x720 -httpport 5912

Achtung! In der Firewall sollte der Zugriff auf Port 5912 nur für lokale Verbindungen vom Server selbst zugelassen werden. Das VNC-Protokoll ist unverschlüsselt und kann leicht von außen manipuliert werden!

Ist dies erfolgt, kann ein SSH-Tunnel zum Server aufgebaut werden:

ssh -4 -N -L 5912:localhost:5912 root@example.org -p SSHPORT

Solange dieser Tunnel offen ist, ist nun auch die Verbindung auf die grafische Oberfläche möglich, z.B. über RealVNC Viewer und die Adresse „localhost:12“.

Der Pulseaudio-Lautstärkeregler und Mumble müssen nun noch entsprechend dieser Screenshots konfiguriert werden:

mumble1 mumble2 mumble3

Fertig! Jetzt kann ein Anruf gestartet werden – insofern man vorher alle Audiobenachrichtigungen in Skype und Mumble deaktiviert hat – ansonsten wird es sehr schnell ungemütlich während eines Gesprächs.