Ho avuto un problema simile con un iMac del 2009, il mio secondo display è collegato tramite un adattatore firewire-VGA.
Ho provato di tutto per risolvere questo problema, resettando il nvram dopo un riavvio, ma la volta successiva che il monitor ha "dormito" il problema si è ripresentato.
Quando ho provato ad impostare manualmente la risoluzione, la mia risoluzione (1920x1080) non era elencata, anche tenendo premuto il tasto 'option' per mostrare più risoluzioni.
Ho trovato una soluzione su questo post di Andreas Schwarz su embdev.net (vedi il link nel suo codice qui sotto, non posso pubblicare più di 2 link)
Non è stato progettato direttamente per correggere il problema, ma lo fa con me.
The problem can be solved by overriding the EDID data of the display
in order to tell OS X that the display only supports RGB. This can be done by
reading the EDID with "ioreg -l", modifying the offending bits (see
the specification in the Wikipedia article), and creating a display
config override file for OS X.
Quindi ha fornito uno script ruby per creare questo file di sostituzione:
#!/usr/bin/ruby
# Create display override file to force Mac OS X to use RGB mode for Display
# see http://embdev.net/topic/284710
#
# Update 2013-06-24: added -w0 option to prevent truncated lines
require 'base64'
data='ioreg -l -w0 -d0 -r -c AppleDisplay'
edid_hex=data.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1]
vendorid=data.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i
productid=data.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i
puts "found display: vendorid #{vendorid}, productid #{productid}, EDID:\n#{edid_hex}"
bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten
puts "Setting color support to RGB 4:4:4 only"
bytes[24] &= ~(0b11000)
puts "Number of extension blocks: #{bytes[126]}"
puts "removing extension block"
bytes = bytes[0..127]
bytes[126] = 0
bytes[127] = (0x100-(bytes[0..126].reduce(:+) % 256)) % 256
puts
puts "Recalculated checksum: 0x%x" % bytes[127]
puts "new EDID:\n#{bytes.map{|b|"%02X"%b}.join}"
Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
f.write '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">'
f.write "
<dict>
<key>DisplayProductName</key>
<string>Display with forced RGB mode (EDID override)</string>
<key>IODisplayEDID</key>
<data>#{Base64.encode64(bytes.pack('C*'))}</data>
<key>DisplayVendorID</key>
<integer>#{vendorid}</integer>
<key>DisplayProductID</key>
<integer>#{productid}</integer>
</dict>
</plist>"
f.close
L'esecuzione di questo script nel terminale con "ruby patch-edid.rb" crea una cartella denominata "DisplayXXX"
move the contained folder into
/System/Library/Displays/Overrides. After a reboot, the monitor should
show that RGB colors are used.
Dopo aver riavviato la risoluzione non era corretta, ma ero in grado di impostare quella corretta nelle impostazioni dello schermo.