• Und wer ist…?
  • Holiday Berichte
    • Urlaub Schottland 2013
    • Urlaub Griechenland 2013
  • Services
  • Kontakt/GnuPG

KOKOLOR.ES

Hier geht's einfach mal um alles und nichts!

Month: August 2013

ATI Binärtreiber (fglrx) benutzt nur Modes die via EDID ausgelesen werden / Faken von EDID Informationen

30. August 2013 by Sebastian Leave a Comment

Auf Arbeit bin/war ich dabei einen PC für eine Videowall zu konfigurieren, welcher eine FirePro W7000 als Grafikkarte benutzt. Die Grafikkarte hat 4 Ausgänge, wovon jeder jeweils zwei Display’s ansteuern soll. Die zwei Display’s pro Ausgang sind untereinander jeweils per DaisyChain verbunden. Bei den Display’s handelt es sich um NEC X463UN.

Beispielhafte Darstellung:

|----------------|                |----------------|
|                |                |                |
|      NEC       |                |      NEC       |
|                |\              /|                |
|----------------| | DaisyChain | |----------------|
|                |/              \|                |
|      NEC       |                |      NEC       |
|                |\              /|                |
|----------------| \            / |----------------|
|                |  \___    ___/  |                |
|      NEC       |     |    |     |      NEC       |
|                |\    |    |    /|                |
|----------------| |   |    |   | |----------------|
|                |/    |    |    \|                |
|      NEC       |     |    |     |      NEC       |
|                |___  |    |  ___|                |
|----------------|   | |    | |   |----------------|
                     | |    | |
                   __Y_Y____Y_Y__
                  |              |
                  |PC mit Firepro|
                  |______________|

Jeden Monitor möchte ich mit 720p ansprechen, was ich mit einer Auflösung von 1280×1440 pro Ausgang bewerkstellige. Und hier fingen nun die Probleme an, bzw. nachdem ich den binären Treiber nutzen musste, denn am Anfang hatte ich alles wunderbar, ohne Probleme mit dem Opensource-Treiber am laufen. Leider vertrug der sich bei Übergängen von HTML-Items zu Videos nicht sonderlich gut mit unserem Player. Also war/bin ich leider auf den Binär-Treiber von ATI angewiesen. Bei dem Binär-Treiber wunderte ich mich warum er die oben geschriebene Auslösung auf den Tod nicht annehmen wollte, auch wenn ich eine Modeline hinzufügte und prinzipiell alles richtig war. Ich las schon früh das der fglrx Treiber sich weigert andere Auflösungen anzunehmen, als die die er vom Monitor bekommt. Das muss ja aber zu umgehen sein, dachte ich und so fand ich die beiden Optionen:

Option "IgnoreEDID" "true"
Option "NoDDC" "true"

welche man in die Device Sektion der xorg.conf hinzufügen konnte. Allerdings weiß ich nicht in welcher Version des Treibers dies funktioniert hatte, denn die aktuellste Version kommentiert das in der Xorg.0.log mit einem:

fglrx(0): Option "IgnoreEDID" is not used
fglrx(0): Option "NoDDC" is not used

Irgendwann startete dann der X gar nicht mehr, weil er plötzlich die Modelines nicht mehr mochte. Dann fand ich einen guten Tipp, wo ich gar nicht wusste das der Treiber damit klar kommt. Man kann einfach die Datenbank Datei im /etc/ati Ordner löschen, wo hin sich der Treiber die xorg.conf übersetzt, die da heißt amdpcsdb. Nachdem ich das getan hab zeigte er mir zumindest schonmal mit xrandr die Modeline an, auch wenn er sie nicht auswählte und nur eine komische Auflösung von 1920×1920 ausgab.

Nachdem ich mit meinem Latein langsam am Ende war holt ich einen unseren Entwicker hinzu, der für mich wie eine laufende Linux Bibel ist. Nachdem ihm das Problem erläutert habe, schaute er sich auch nochmal alles an und wir probierten noch locker eine Stunder herum bis wir bei google auf eine lustige Entdeckung stießen. Und zwar versucht der fglrx Treiber aus dem Verzeichnis /etc/ati/ .edid Files auszulesen. Also machte wir uns schlau wir eine EDID Datein erstellen können, die wir dem Treiber mitgeben können. Um eine Datei zu erstellen nutzten wir das Programm Phoenix EDID Designer. Damit waren wir nun auch eine Weile beschäftigt. Warum erklär ich. Wir nahmen uns den EDID HEX Code eines Monitors aus der Xorg.0.log, welcher wie folgt aussieht:

00ffffffffffff0038a38c6801010101
161701038066398ceab7eda5554f9826
11474aa1090081c08100814081809040
9500a940b300f03c00d051a035506088
3a00fa3c3200001e000000fd0030551c
5c11000a202020202020000000fc0058
343633554e0a202020202020000000ff
0033353130383038374e420a2020012a

Nun mussten wir raus finden wie wir den Code formatieren damit ihn das Programm versteht, denn exportieren konnte es das im .raw Format, einlesen jedoch nur formatiert im .dat Format. Also haben wir eine Dummy Datei im .dat Format aus dem Programm erzeugt die wie folgt aussieht:

EDID BYTES:
0x   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ------------------------------------------------
00 | 00 FF FF FF FF FF FF 00 04 21 00 00 00 00 00 00
10 | 01 00 01 03 00 00 00 00 00 00 00 00 00 00 00 00
20 | 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
30 | 01 01 01 01 01 01 64 00 00 00 00 00 00 00 00 00
40 | 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00
50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10
70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38

Also unseren HEX Code da rein gehauen und ja der muss genau so formatiert werden damit das Programm das annimmt. Das heißt nach jedem zweiten Zeichen eine Leerstelle und alle kleinen Buchstaben durch große ersetzen. Am Ende muss die Datei 128k groß sein, dann sollte alles richtig sein. Nachdem das geschehen war konnten wir nun endlich die Datei mit dem Programm öffnen, wo wir nun beim nächsten Problem standen, welche Werte der Modeline bei den Timings eintragen.timing_sample

Das Schema war allerdings schnell gefunden. Ich erkläre es an Hand der Modeline die wir verwendet haben:

Modeline "1280x1440_60.00"  156.00  1280 1376 1512 1744  1440 1443 1453 1493 -hsync +vsync

Im Grunde sind für uns die drei Zahlengruppen zwischen „ und -hsync interessant, bestehend aus einer Zahl, gefolgt von zwei Zahlengruppen á 4 Zahlen.

1. Zahl:

Pixel Clk: 156.00

1. Zahlen Gruppe aus 4 Zahlen, welche die Horizontal Werte enthält:

H Active Pxl: 1280
H Blank: 1744 – 1280 = 464
H Sync Offset: 1376 – 1280 = 96
H Sync Width: 1512 – 1280 – 96 = 136
H Image Size: Die tatsächliche horizontale Abmessung des Panels in mm

2. Zahlen Gruppe aus 4 Zahlen, welche die Vertikal Werte enthält:

V Active Pxl: 1440
V Blank: 1493 – 1440 = 53
V Sync Offset: 1443 – 1440 = 3
V Sync Width: 1453 – 1440 – 3 = 10
V Image Size: Die tatsächliche vertikale Abmessung des Panels in mm

So nun noch die Datei als .raw exportieren und der komplizierte Teil war geschafft. Also haben wir der Datei noch einen eindeutigen Namen gegeben, diese dann in den /etc/ati Ordner kopiert und Symlinks angelegt mit den Namen der Grafikkarten Ausgänge mit .edid daran, da in unserem Fall auf allen die gleiche Auflösung ausgegeben werden soll. Einmal den X neugestartet und man sieht im Xorg.0.log das er nun die gewünschte Modeline anzeigt. Nun haben wir noch die Modelines aus der xorg.conf entfernt und wir trauten unseren Augen kaum – Es geht!!!

Alles in allen hat mich der ganze Spaß 5 Stunden und meinen Kollegen 3 Stunden gekostet. Man kann sich nun sicher drüber streiten wem man hier die Schuld zuschreiben kann. Den Entwicklern bei ATI welche, warum auch immer, es nicht zulassen andere Auslösungen anzunehmen, obwohl die Display’s es unterstützen oder NEC welche eigentlich davon ausgehen müssten, wenn sie Display’s mit DaisyChain verkaufen, da auch höhere Auslösungen gefahren werden müssen. Also sollte NEC für diesen Fall eigentlich noch, das Display, zusätzliche EDID Informationen übertragen lassen. Ich persönlich gebe aber ATI die Schuld, denn Warum kann es denn der Opensource Treiber und der eigene nicht, Warum baut man denn überhaupt so eine hirnrissige Hürde ein – ich mein das macht doch hinten und vorn keinen Sinn und vor allem Was macht denn ein normaler User der vielleicht ein Consumer Display nutzt welches fehlerhafte EDID Informationen eingetragen hat und übermittelt.

Jedenfalls haben wir es nun geschafft und ich hoffe das anderen hiermit geholfen ist, auch wenn es dennoch ein recht umständlicher Weg ist. Wenn man jedoch auf die Binärtreiber angewiesen ist führt wohl kein Weg vorbei. Sollte es dennoch einen geben würde ich diesen gern erfahren.

Ich danke auf jeden Fall Martin H. für seine Hilfe, der mir immer wieder beweist das ich keinen anderen kenne, der sich so sehr mit Linux auskennt wie er.

Quellen: DASTRUP Tech Logs – ATI fglrx Propriertary Driver Problems, Hot Ceshew – Fix corrupt EDID in Linux running ATI/Catalyst/fglrx Driver

 

Posted in: Arbeit, IT, Linux, Opensource Tagged: edid, fglrx, linux, nec, precise, ubuntu, xorg

LVM: Merge Snapshot

29. August 2013 by Sebastian Leave a Comment

Ich hatte gestern das erste mal beim Mergen einen LVM Snapshots das Phänomen das er mir sagte:

Can't merge over open origin volume
Merging of snapshot lv_XXXX-snapshot will start next activation.

Ok, da die VM noch läuft, welche das LVM nutzt, dacht ich mir fährste die mal runter. Sonst hab ich die auch immer nur im abgeschalteten Zustand gemergt. Nun tauchte auch ein neues Attribut auf wenn ich lvs aufrief:

LV                          VG   Attr   LSize   Origin  Snap%  Move Log Copy%  Convert
XXXX                        vg   Owi-a-  25,00g

Die steht für (O)rigin with merging snapshot wenn man im Manual nachliest. Da es kurz vor Feierabend war und ich es auch falsch übersetzte dacht ich mir: „Ok es mergt, lassen wirs mal laufen.“ Heute morgen, wen wundert, Status unverändert. Nach kurzem googlen fand ich auch die Lösung. Man muss das betroffene Volume einmal deaktivieren und aktivieren, was man wie folgt tut:

root@virt:~# lvchange -an /dev/mapper/XXXX
root@virt:~# lvchange -ay /dev/mapper/XXXX

Nun sieht die Ausgabe von lvs auch schon vertrauter aus:

LV                          VG   Attr   LSize   Origin  Snap%  Move Log Copy%  Convert
XXXX                        vg   Owi-a-  25,00g         4,56

Die Prozentzahl unter Snap% wird nun immer kleiner, woran man erkennt das es mergt.

Posted in: Arbeit, IT, Linux, Opensource Tagged: kvm, linux, lvm, virtualization

gedit 3.8.* Einstellungen finden

25. August 2013 by Sebastian Leave a Comment

Heute war ich etwas verwirrt als ich die Einstellungen von gedit suchte. Normalerweise sind diese unter Bearbeiten -> Einstellungen zu finden. Komischer Weise ist das aber nicht mehr der Fall. Auch das Hilfe Menü fehlte vollständig. Es stellte sich heraus das das ab Version 3.8 nun per Klick auf das Programmsymbol in der Gnome Leiste geöffnet wird:

gEdit Settings

Da ich letztes mal die Settings unter wheezy aufgerufen hab mit gedit 3.4 und der Klick auf das Programmsymbol bei den meisten Programmen nur zum Beenden da ist, suchte ich da schon ein paar Minuten nach. Zur Info, beim gnome-terminal ab Version 3.8 ist es übrigens genau so.

Posted in: IT, Linux, Opensource Tagged: debian, gnome, linux, testing

broadcom-sta-dkms on Kernel 3.10

14. August 2013 by Sebastian 5 Comments

Ach es ist ein Trauerspiel. Seitdem ich meinen Laptop von stable auf testing umgestellt hab funktioniert mein WLAN nicht mehr richtig (Broadcom 4313). Ich benutzte unter stable mit Kernel 3.2 den wl Treiber welcher über das Paket broadcom-sta-dkms installiert wird. Nachdem ich dann mit testing auf Kernel 3.9 wechselte schlug die Installation des Pakets beim erstellen des Kernel Moduls fehl. Mein WLAN funktionierte dennoch, dank des Pakets firmware-brcm80211. Allerdings funktioniert dieses sehr schlecht, was heißt schlechte Verbindung und sehr langsam. Heute hatte ich mal wieder Bock mich damit zu befassen und installierte die aktuelle Version des broadcom-sta-dkms Pakets aus dem sid Repository und siehe da es tuts. Im Anschluss nach ein dist-upgrade gemacht, womit auch der neue Kernel 3.10 kam. Dachte mir schon das das nix wird, dennoch neu gestartet und siehe da wie vermutet geht nicht. Also Paket reinstalliert und schon taucht wieder der selbe Fehler auf wie vorher bei 3.9:

Error! Bad return status for module build on kernel: 3.10-2-amd64 (x86_64)

Also heißt es nun wieder abwarten bis der Bug gefixt ist, welcher hier schon reportet wurde, und solang Kernel 3.9 booten.

Sobald der Bug gefixt wird schreib ich hier ein Update rein.

Posted in: IT, Linux, Netzwerk, Opensource Tagged: broadcom, bugs, debian, kernel, linux, sid, testing

Screenshot von Terminal Output erstellen

14. August 2013 by Sebastian Leave a Comment

Ich musste heute eine Anleitung über ein Tool erstellen, worüber direkt an den Clients beim Kunden vor Ort Netzwerkeinstellungen geprüft und/oder vorgenommen werden können. Nun brauchte ich für meine Anleitung Screenshots, da aus vertrieblicher Sicht meine mit dem Handy erstellten Screenshots zu hässlich waren. Ich dachte für ne Technikeranleitung reicht es, aber da es eine offizielle sein soll, muss es nun mal schön aussehen. Nun stand ich vor dem Problem „Wie mach ich Screenshots von ner Konsole“, denn das Tools ist ein einfaches Bash Script was mit Hilfe des Pakets dialog lediglich Dialogfenster erzeugt. Kennt ihr von der Debian Expert Installation – diese schönen weißen/hellgrauen Boxen auf blauem Grund.

Naja nach bisschen Gesuche wurde ich dann auch fündig, neben den ganzen Knallern die schrieben „Mach doch mit cat“ …. Also nutzen kann man dafür das Tool fbcat. Mit diesem kann man aber nur .ppm Dateien erstellen, weshalb man sich gleich noch imagemagick mitinstallieren kann. Da beide nicht standardmäßig installiert sind, muss das getan werden:

sudo apt-get install fbcat imagemagick

Ich habe jetzt festgestellt das mit fbcat lediglich Screenshots von der aktiven TTY machen kann. Also ich hatte auf dem Client über TTY4 das Tool offen und bin parallel per SSH drauf. Screenshots macht man nun wie folgt:

sudo fbcat > image.ppm

Somit hab ich nun meinen Screenshot von der aktiven TTY. Diesen musste ich nun noch konvertieren mit Hilfe von imagemagick:

convert image.ppm out.png

Da ich nun mehrere Screenshots erstellt habe, musste ich auch mehrere convertieren, was ich folgt machte:

for i in $(find /root -name "*.ppm" | grep nst | cut -f3 -d"/"); do convert $i $i.png ; done

Mit den entstandenen Screenshots war der Vertrieb dann auch zufrieden und ich hatte es hinter mir. Dokumentieren und Anleitungen schreiben ist nicht so mein Favourite. :-D

Posted in: Arbeit, IT, Linux, Opensource Tagged: bash, precise, ubuntu

Unable To Connect To Upstart

12. August 2013 by Sebastian Leave a Comment

Ich bekomm in letzter Zeit oft, beim updaten von Ubuntu 12.04 Clients, welche einen relativ veralteten Softwarestand haben, den Fehler:

start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

Was ich so bisher gelesen hab tritt der Fehler hauptsächlich auf virtualisierten Systemen und chroot Umgebungen auf. Bei uns ist das der Fall, weil wir upstart durch das stabilere systemd ersetzt haben. Allerdings brauchen ein paar Pakete wohl den upstart Dienst. Diesen finden sie aber nicht, weil wie gesagt, nicht installiert. Also muss man sich mit einem Workaround behelfen, welcher wie folgt aussieht:

sudo dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

 

Posted in: Arbeit, IT, Linux, Opensource Tagged: linux, precise, systemd, ubuntu, upstart

Dateien via MTP zwischen Nexus 7 und Linux Desktop übertragen

7. August 2013 by Sebastian Leave a Comment

Bisher hatte ich nie Bock mich mit dem Thema zu beschäftigen, da ich nie große Dateien hatte, die ich zwischen meinem Nexus und meinem Desktop übertragen musste. Allerdings änderte sich das in der Vergangenheit und das übertragen via WLAN war mir auf Dauer irgendwie zu langsam. Da unter Linux MTP nicht ootb funktioniert, muss man da noch bisschen was tun.

Unter Ubuntu ist es relativ einfach:

sudo add-apt-repository ppa:langdalepl/gvfs-mtp

sudo apt-get update && sudo apt-get dist-upgrade

Einmal reboot und schon konnte ich via Nautilus auf mein Nexus zugreifen.

Unter Debian Testing ist es noch einfacher:

Einfach das Paket gvfs-backends installieren, falls nicht schon geschehen und schon kann mit Nautilus auf das Nexus zugegriffen werden.

Unter Debian Wheezy:

Hier funktioniert es leider nicht so einfach wie bei Sid, denn hier ist nur eine ältere Version von gvfs-backends im Repo enthalten, welche noch keine Unterstützung für MTP integriert hat.
Leider konnte ich hier bisher noch keine Tests machen, da ich nur auf meinen Hauptrechner Wheezy habe und den selten an hab. Vielleicht schau ich da heute Abend mal nach.

Also to be continued…

Posted in: Android, IT, Linux, Opensource Tagged: android, debian, nexus, ubuntu, usb

Social Shit

Fediverse PGP-Key XMPP Matrix Git Github

Kategorien

  • Allgemein
  • Android
  • Anime
  • Arbeit
  • Entertainment
  • Games
  • Handy
  • IT
  • Linux
  • Monitoring
  • Netzwerk
  • Opensource
  • Privates
  • QEK Junior
  • Rattis
  • Showtime Ost
  • Showtime West
  • Windows

Interessantes

  • World of Edolas
  • Lainblog
  • 5222.de
  • chr.istoph's Blog

Archive

  • Juni 2023
  • August 2019
  • Oktober 2018
  • März 2018
  • Dezember 2017
  • Juli 2017
  • Juni 2017
  • Mai 2017
  • März 2017
  • Februar 2017
  • Januar 2017
  • Dezember 2016
  • November 2016
  • September 2016
  • August 2016
  • Juli 2016
  • Juni 2016
  • Mai 2016
  • April 2016
  • März 2016
  • Februar 2016
  • Dezember 2015
  • November 2015
  • September 2015
  • August 2015
  • Juli 2015
  • Juni 2015
  • Mai 2015
  • April 2015
  • März 2015
  • Februar 2015
  • November 2014
  • Oktober 2014
  • August 2014
  • Juli 2014
  • Juni 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • September 2013
  • August 2013
  • Juli 2013
  • April 2013
  • März 2013
  • Februar 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • September 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • Februar 2012
  • Januar 2012

Tags

android anime apt bash bugs debian freifunk freifunk-aachen gnome hardware htpc kernel linux lucid lxc mdadm mint monitoring mysql network nginx openwrt outdoor package pgp php postgres precise raid redmine squeeze telekom testing trusty ubuntu virtualization vserver wheezy windows xbmc xenial xorg xubuntu zabbix zarafa

Datenschutzerklärung | Impressum

Copyright © 2025 KOKOLOR.ES.

Omega WordPress Theme by ThemeHall