Saya memiliki masalah yang sama dengan iMac sejak 2009, tampilan kedua saya terhubung melalui adaptor firewire-to-VGA. Saya mencoba segalanya untuk memperbaiki masalah ini, mengatur ulang nvram bekerja setelah reboot tetapi kali berikutnya monitor 'tidur' masalah terjadi lagi. Ketika saya mencoba mengatur resolusi secara manual, resolusi saya (1920x1080) tidak terdaftar, bahkan ketika menahan tombol 'opsi' untuk menampilkan lebih banyak resolusi.
Saya menemukan solusi pada posting ini oleh Andreas Schwarz di embdev.net (lihat tautan dalam kodenya di bawah, saya tidak dapat memposting lebih dari 2 tautan) Itu tidak secara langsung dimaksudkan untuk memperbaiki masalah, tetapi itu terjadi pada saya.
Masalahnya dapat diselesaikan dengan mengganti data EDID tampilan untuk memberi tahu OS X bahwa layar hanya mendukung RGB. Ini dapat dilakukan dengan membaca EDID dengan "ioreg -l", memodifikasi bit yang menyinggung (lihat spesifikasi dalam artikel Wikipedia), dan membuat file override konfigurasi config tampilan untuk OS X.
Dia kemudian memberikan skrip ruby untuk membuat file override ini:
#!/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
Menjalankan skrip ini di terminal dengan 'ruby patch-edid.rb' membuat folder bernama "DisplayXXX"
pindahkan folder yang ada ke / System / Library / Display / Overrides. Setelah reboot, monitor akan menunjukkan bahwa warna RGB digunakan.
Setelah reboot resolusi itu tidak benar, tetapi saya dapat mengatur yang benar dalam pengaturan tampilan.
~/Library/Application Support/Preferences/com.apple.desktop.plist
tidak diperbarui. Tapi saya tidak yakin apakah itu disimpan juga.