Tuve un problema similar con un iMac de 2009, mi segunda pantalla está conectada a través de un adaptador firewire a VGA.
Intenté todo para solucionar este problema, reiniciando el nvram funcionó después de un reinicio, pero la próxima vez que el monitor "durmió", el problema se repitió.
Cuando intenté establecer la resolución manualmente, mi resolución (1920x1080) no estaba en la lista, incluso cuando se mantenía presionada la tecla 'opción' para mostrar más resoluciones.
Encontré una solución en esta publicación de Andreas Schwarz en embdev.net (vea el enlace en su código a continuación, no puedo publicar más de 2 enlaces)
No tenía la intención directa de corregir el problema, pero lo hace conmigo.
El problema se puede resolver anulando los datos EDID de la pantalla
para indicar a OS X que la pantalla solo admite RGB. Esto se puede hacer por
leyendo el EDID con "ioreg -l", modificando los bits ofensivos (ver
la especificación en el artículo de Wikipedia), y la creación de una pantalla
Archivo de anulación de configuración para OS X.
Luego proporcionó una secuencia de comandos ruby para crear este archivo de anulación:
#!/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
Al ejecutar este script en el terminal con 'ruby patch-edid.rb' se crea una carpeta llamada "DisplayXXX"
mueve la carpeta contenida a
/ Sistema / Biblioteca / Pantallas / Anulaciones. Después de reiniciar, el monitor debería
Mostrar que se utilizan colores RGB.
Después de reiniciar, la resolución no era correcta, pero pude establecer la correcta en la configuración de pantalla.