Se dau urmatoarele date: un laptop MacBook Pro cu retina display si un monitor Dell U2410.

Problema apare cand se incearca conectarea monitorului la laptop, prin iesirea HDMI. Imaginea afisata pe monitor e complet aiurea, neclara, cu tente verzui, albastrui, culori suprasaturate etc.

Se pare ca problema apare din cauza ca laptopul detecteaza monitorul ca fiind televizor si foloseste spatiul de culor YCbCr. Nu am putut corecta pe RGB, din setarile aflate in sectiunea Display, asa ca dupa un pic de sapat pe net am descoperit ca e un bug, destul de vechi (din 2012), pe care Apple nici pana in prezent nu a catadicsit sa-l rezolve.

Solutia

Ca sa fortezi outputul pe RGB, trebuie rulat un mic script facut in ruby pe care poti sa il descarci local de aici sau direct de la autor.

1. Scriptul o sa se descarce implicit in Downloads. Ai grija ca monitorul sa fie deja conectat la laptop.

2. Deschide un terminal, pozitioneaza-te in folderul „Downloads” prin comanda „cd downloads”, daca nu esti deja acolo. Ruleaza comanda „ruby patch-edid.rb”

3. Aceasta comanda va crea un folder DisplayVendorID* pe care va trebui sa-l copiezi in „/System/Library/Displays/Overrides”. E posibil sa existe deja un folder cu acelasi nume in locatia respectiva, asa ca redenumeste-l pe cel existent in Overrides cu un „old” in coada, in caz va fi nevoie sa-l pui la loc daca apar probleme. Copiaza folderul DisplayVendorID* creat in Downloads, aici.

4. Da un restart la laptop. Acum ar trebui sa apara culorile in mod corect pe monitorul tau non Apple, conectat prin HDMI :)

Update El Capitan

Dupa lansarea noului OS-X El Capitan, lucrurile s-au schimbat un pic:

3. Ca sa poti copia directorul, din cauza unor noi restrictii de securitate din El Capitan (System Integrity Protection (SIP)), mai intai trebuie sa dezactivezi aceasta protectie. Acest lucru se poate realiza doar dupa ce bootezi in „Recovery Disk” (restart dupa care apasa CMD + R). Odata intrat in acest mod, din „Utilities” alege „Terminal” si ruleaza comanda „csrutil disable” si „reboot”.

(updated) DisplayVendorID* trebuie copiat acum in directorul /System/Library/Displays/Contents/Resources/Overrides

Mi se pare incredibil ca nici pana acum nu au rezolvat aceasta problema, a mai trecut 1 an de la prima versiune a articolului… :/