-0.4 C
United States of America
Monday, November 25, 2024

show – Exterior monitor decision setting is misplaced after MacBook “wakes up” from sleep


I had an identical drawback with an iMac from 2009, my second show is linked by way of a firewire-to-VGA adapter.
I attempted every little thing to repair this points, reseting the nvram labored after a reboot however the subsequent time the monitor ‘slept’ the issue occured once more.
When i attempted to set the decision manually my decision (1920×1080) was not listed, even when holding the ‘choice’ key to indicate extra resolutions.

I discovered an answer on this publish by Andreas Schwarz on embdev.web (see the hyperlink in his code bellow, i can not publish greater than 2 hyperlinks)
It is was circuitously supposed to right the issue, but it surely does with me.

The issue could be solved by overriding the EDID knowledge of the show
in order to inform OS X that the show solely helps RGB. This may be executed by
studying the EDID with “ioreg -l”, modifying the offending bits (see
the specification within the Wikipedia article), and making a show
config override file for OS X.

He then offered a ruby script to create this override file :

#!/usr/bin/ruby
# Create show override file to drive Mac OS X to make use of RGB mode for Show
# see http://embdev.web/subject/284710
# 
# Replace 2013-06-24: added -w0 choice to forestall truncated strains

require 'base64'

knowledge=`ioreg -l -w0 -d0 -r -c AppleDisplay`

edid_hex=knowledge.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1]
vendorid=knowledge.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i
productid=knowledge.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i

places "discovered show: vendorid #{vendorid}, productid #{productid}, EDID:n#{edid_hex}"

bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten

places "Setting coloration help to RGB 4:4:4 solely"
bytes[24] &= ~(0b11000)

places "Variety of extension blocks: #{bytes[126]}"
places "eradicating extension block"
bytes = bytes[0..127]
bytes[126] = 0

bytes[127] = (0x100-(bytes[0..126].cut back(:+) % 256)) % 256
places 
places "Recalculated checksum: 0xpercentx" % bytes[127]
places "new EDID:n#{bytes.map"%02X"%b.be part of}"

Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
f.write '<?xml model="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist model="1.0">'
f.write "
<dict>
  <key>DisplayProductName</key>
  <string>Show with compelled RGB mode (EDID override)</string>
  <key>IODisplayEDID</key>
  <knowledge>#{Base64.encode64(bytes.pack('C*'))}</knowledge>
  <key>DisplayVendorID</key>
  <integer>#{vendorid}</integer>
  <key>DisplayProductID</key>
  <integer>#{productid}</integer>
</dict>
</plist>"
f.shut

Executing this script within the terminal with ‘ruby patch-edid.rb’ creates a folder named “DisplayXXX”

transfer the contained folder into
/System/Library/Shows/Overrides. After a reboot, the monitor ought to
present that RGB colours are used.

After rebooting the decision was not right, however i used to be in a position to set the proper one within the show settings.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles