2009'dan itibaren bir iMac ile benzer bir sorun yaşadım, ikinci ekranım bir firewire-VGA adaptörü ile bağlı. Bu sorunları düzeltmek için her şeyi denedim, nvram yeniden başlatıldıktan sonra çalıştı, ancak monitör bir dahaki sefere sorun tekrar ortaya çıktı. Çözünürlüğü manuel olarak ayarlamaya çalıştığımda, daha fazla çözünürlük göstermek için 'seçenek' tuşunu basılı tutarken bile çözünürlüğüm (1920x1080) listelenmedi.
Embdev.net üzerinde Andreas Schwarz tarafından bu yazıya bir çözüm buldum (kodunda aşağıdaki bağlantıya bakın, 2'den fazla bağlantı gönderemiyorum) Doğrudan sorunu düzeltmek için tasarlanmadı, ama benimle yapıyor.
OS X'e ekranın yalnızca RGB'yi desteklediğini bildirmek için ekranın EDID verilerinin geçersiz kılınmasıyla sorun çözülebilir. Bu, EDID'yi "ioreg -l" ile okuyarak, rahatsız edici bitleri değiştirerek (Wikipedia makalesindeki teknik özelliklere bakın) ve OS X için bir görüntü yapılandırma geçersiz kılma dosyası oluşturarak yapılabilir.
Daha sonra bu geçersiz kılma dosyasını oluşturmak için bir yakut komut dosyası sağladı:
#!/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
Bu komut dosyasını terminalde 'ruby patch-edid.rb' ile çalıştırmak "DisplayXXX" adlı bir klasör oluşturur
içerilen klasörü / System / Library / Displays / Overrides klasörüne taşıyın. Yeniden başlatıldıktan sonra monitör RGB renklerinin kullanıldığını göstermelidir.
Yeniden başlattıktan sonra çözünürlük doğru değildi, ancak ekran ayarlarında doğru olanı ayarlayabildim.
~/Library/Application Support/Preferences/com.apple.desktop.plist
güncellenmemesi. Ama o da nerede saklanıyor emin değilim.