2.9 C
New York
Sunday, February 23, 2025

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


I had the same drawback with an iMac from 2009, my second show is related by way of a firewire-to-VGA adapter.
I attempted every part 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 ‘possibility’ key to point out extra resolutions.

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

The issue might 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 pressure Mac OS X to make use of RGB mode for Show
# see http://embdev.web/matter/284710
# 
# Replace 2013-06-24: added -w0 possibility to stop 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 colour assist 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 '

'
f.write "

  DisplayProductName
  Show with pressured RGB mode (EDID override)
  IODisplayEDID
  #{Base64.encode64(bytes.pack('C*'))}
  DisplayVendorID
  #{vendorid}
  DisplayProductID
  #{productid}

"
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