Sunday, August 4, 2013

Macbook external monitor loses sync, goes into loop flashing blue

Symptom:

External monitor (connected via mini-port to hdmi adapter) loses sync or doesn't display, Macbook screen flashes blue like it wants to show the external display but can't.  Keeps doing this over and over again.

The first time I plug it in it nearly always gets the connection.  The time that it fails seems to be when already plugged in, and the screen wakes up from screen saver.

Solution:

Unplug and plug mini-port display adapter back in.  This works for me at least 95% of the time the first time, then probably 100% of the time the second time.  Unless the adapter has failed, in which case it won't.

When the adapter is failing, there is no way to determine what is going on.  Results will be intermittant and random, and (can't be) explained by any event.  Might be the phase of the moon, could be sacrificing a goat or chicken, and then the next day it's the chicken.  Or the goat.  It will be just like religion.

I wish there was a way to reset it; I have tried the following:

  • like put the monitors back to sleep, then re-awaken.  This doesn't help.  
  • I've also tried putting the computer to sleep, then waking back up.
  • Bring up the monitors controller, while the screen is flashing from blue to normal,
    and trying "Detect displays" but this hasn't worked
  • Turning the external monitor off and back on.
    When it's off, it behaves exactly if there is no second monitor connected.
    When on, it goes into flashing blue mode again.
    -->  this implies it is in the state of the Mac, not the state of the monitor.

    To TRY:
     - put mac to sleep, disconnect adapter and plug back in, then wake up mac
There is also "resetting the parameter RAM" and SMC
(doesn't help if adapter is broken).

What worked for you ?

2013.08.28 Update:
After upgrading to Mountain Lion 10.8.4 (previously was Snow Leopard, 10.6.8) it seems it might be a little better.  Some differences:

  • After wake from sleeping display (not awake from standby, just after the screen has blanked) the laptop may have a blue screen but the external monitor remains blank and powered off.  After entering password, the laptop screen came back (no longer blue);
    once the external monitor came back, another time it didn't (I had to unplug/plug it back it to get the display back).
  • A couple times my system seemed to hang completely after the display woke back up, getting hot and with the fan running, to the extent I had to forcibly power it off (it may have already been hung to some extent due to other processes, but the display partially "woke up").

    Once I was able to log in remotely to see was might be going on, first thing I saw was
    21:53  up 1 day,  4:39, 10 users, load averages: 66.81 27.60 11.78
    (note that is an EXTREMELY high load average) and saw these processes:


   88    92     1   0 Mon05PM ??        30:22.22 /System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Resources/WindowServer -daemon
  501 16972    92   0  9:53PM ??         0:00.25 /System/Library/CoreServices/DMProxy -discovery
  501 16973    92   0  9:53PM ??         0:00.24 /System/Library/CoreServices/DMProxy -login
    0 16974    92   0  9:53PM ??         0:00.27 /System/Library/CoreServices/DMProxy -login
    0 16976    92   0  9:53PM ??         0:00.22 /System/Library/CoreServices/DMProxy -discovery
  501 16977    92   0  9:53PM ??         0:00.19 /System/Library/CoreServices/DMProxy -login
  501 16978    92   0  9:53PM ??         0:00.19 /System/Library/CoreServices/DMProxy -login
  501 16979    92   0  9:53PM ??         0:00.19 /System/Library/CoreServices/DMProxy -login
  501 16980    92   0  9:54PM ??         0:00.07 /System/Library/CoreServices/DMProxy -discovery
  501 16981    92   0  9:54PM ??         0:00.07 /System/Library/CoreServices/DMProxy -discovery
    0 16982    92   0  9:54PM ??         0:00.08 /System/Library/CoreServices/DMProxy -discovery
  501 16999    92   0  9:54PM ??         0:00.04 /System/Library/CoreServices/DMProxy -discovery
  501 17000    92   0  9:54PM ??         0:00.03 /System/Library/CoreServices/DMProxy -discovery
  501 17001    92   0  9:54PM ??         0:00.03 /System/Library/CoreServices/DMProxy -discovery


I unplugged the miniport adapter, and everything started to go back to normal.  Lots of activity in the log files (/var/log/system.log) but I haven't analyzed in detail yet, but messages like this repeat over and over:

Aug 20 21:49:38 macbookpro WindowServer[92]: Received display connect changed for display 0x4272900
Aug 20 21:49:38 macbookpro WindowServer[92]: Created shield window 0x29c9 for display 0x04272900
Aug 20 21:49:38 macbookpro WindowServer[92]: handle_will_sleep_auth_and_shield_windows: no action for lock state 1
Aug 20 21:49:38 macbookpro WindowServer[92]: Received display connect changed for display 0x3f003d
Aug 20 21:49:39 macbookpro WindowServer[92]: Display 0x04272900: GL mask 0x1; bounds (0, 0)[1440 x 900], 36 modes available
Aug 20 21:49:39 macbookpro WindowServer[92]: GLCompositor: GL renderer id 0x0102260e, GL mask 0x00000003, accelerator 0x00003c7f, unit 0, caps QEX|QGL|MIPMAP, vram 256 MB
Aug 20 21:49:39 macbookpro WindowServer[92]: Display 0x003f003d: GL mask 0x2; bounds (2464, 0)[1 x 1], 1 modes available
Aug 20 21:49:39 macbookpro WindowServer[92]: Created shield window 0x29ca for display 0x04272900
Aug 20 21:49:39 macbookpro WindowServer[92]: Created shield window 0x29cb for display 0x003f003d
Aug 20 21:49:40 macbookpro WindowServer[92]: **DMPROXY** (2) Found `/System/Library/CoreServices/DMProxy'.


Aug 20 21:49:44 macbookpro WindowServer[92]: post_notification : Time out waiting for reply from "Flux" for notification type 109 (CID 0x16603, PID 992)
Aug 20 21:49:44 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0: Startup Mode 1440 x 900, CGSThirtytwoBitColor, Resolution 1, IOMode 0x80000000, IODepth 0x2, IOReturn 0x0
Aug 20 21:49:44 macbookpro WindowServer[92]: Display added
Aug 20 21:49:44 macbookpro WindowServer[92]: Display removed
Aug 20 21:49:44 macbookpro WindowServer[92]: Display 0x04272900: GL mask 0x1; bounds (0, 0)[1440 x 900], 36 modes available
Aug 20 21:49:44 macbookpro WindowServer[92]: GLCompositor: GL renderer id 0x0102260e, GL mask 0x00000003, accelerator 0x00003c7f, unit 0, caps QEX|QGL|MIPMAP, vram 256 MB
Aug 20 21:49:44 macbookpro WindowServer[92]: Display 0x003f003d: GL mask 0x2; bounds (2464, 0)[1 x 1], 1 modes available
Aug 20 21:49:44 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:49:45 --- last message repeated 1 time ---


Aug 20 21:49:46 macbookpro WindowServer[92]: **DMPROXY** (2) Found `/System/Library/CoreServices/DMProxy'.
Aug 20 21:49:46 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:49:48 --- last message repeated 1 time ---


Aug 20 21:50:51 macbookpro WindowServer[92]: Received display connect changed for display 0x4272900
Aug 20 21:50:51 macbookpro WindowServer[92]: Created shield window 0x2a18 for display 0x04272900
Aug 20 21:50:51 macbookpro WindowServer[92]: handle_will_sleep_auth_and_shield_windows: no action for lock state 1
Aug 20 21:50:51 macbookpro WindowServer[92]: Received display connect changed for display 0x3f003d
Aug 20 21:50:51 macbookpro WindowServer[92]: Created shield window 0x2a19 for display 0x19c6b0c1
Aug 20 21:50:51 macbookpro WindowServer[92]: handle_will_sleep_auth_and_shield_windows: no action for lock state 1
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x19c6b0c1: GL mask 0x2; bounds (0, 0)[1920 x 1080], 48 modes available
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x04272900: GL mask 0x1; bounds (-1440, 0)[1440 x 900], 36 modes available
Aug 20 21:50:52 macbookpro WindowServer[92]: GLCompositor: GL renderer id 0x0102260e, GL mask 0x00000003, accelerator 0x00003c7f, unit 0, caps QEX|QGL|MIPMAP, vram 256 MB
Aug 20 21:50:52 macbookpro WindowServer[92]: Created shield window 0x2a1a for display 0x19c6b0c1
Aug 20 21:50:52 macbookpro WindowServer[92]: Created shield window 0x2a1b for display 0x04272900
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1: Startup Mode 1920 x 1080, CGSThirtytwoBitColor, Resolution 1, IOMode 0x80001000, IODepth 0x2, IOReturn 0x0
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0: Startup Mode 1440 x 900, CGSThirtytwoBitColor, Resolution 1, IOMode 0x80001000, IODepth 0x2, IOReturn 0x0
Aug 20 21:50:52 macbookpro WindowServer[92]: Display added
Aug 20 21:50:52 macbookpro WindowServer[92]: Display removed
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x19c6b0c1: GL mask 0x2; bounds (0, 0)[1920 x 1080], 48 modes available
Aug 20 21:50:52 macbookpro WindowServer[92]: GLCompositor: GL renderer id 0x0102260e, GL mask 0x00000003, accelerator 0x00003c7f, unit 0, caps QEX|QGL|MIPMAP, vram 256 MB
Aug 20 21:50:52 macbookpro WindowServer[92]: Display 0x04272900: GL mask 0x1; bounds (-1440, 369)[1440 x 900], 36 modes available
Aug 20 21:50:52 macbookpro WindowServer[92]: GLCompositor: GL renderer id 0x0102260e, GL mask 0x00000003, accelerator 0x00003c7f, unit 0, caps QEX|QGL|MIPMAP, vram 256 MB
Aug 20 21:50:53 macbookpro WindowServer[92]: **DMPROXY** (2) Found `/System/Library/CoreServices/DMProxy'.
Aug 20 21:50:55 --- last message repeated 3 times ---
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 --- last message repeated 1 time ---
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:50:55 --- last message repeated 1 time ---
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 --- last message repeated 1 time ---
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:50:55 --- last message repeated 1 time ---
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x19c6b0c1: MappedDisplay Unit 1; ColorProfile { 4, "HF237"}; TransferFormula (1.000000, 1.000000, 1.000000)
Aug 20 21:50:55 macbookpro WindowServer[92]: Display 0x04272900: MappedDisplay Unit 0; ColorProfile { 3, "Color LCD"}; TransferTable (256, 3)
Aug 20 21:51:17 macbookpro WindowServer[92]: Received display connect changed for display 0x4272900
Aug 20 21:51:17 macbookpro WindowServer[92]: Created shield window 0x2a47 for display 0x04272900
Aug 20 21:51:17 macbookpro WindowServer[92]: handle_will_sleep_auth_and_shield_windows: no action for lock state 1
Aug 20 21:51:17 macbookpro WindowServer[92]: Received display connect changed for display 0x19c6b0c1
Aug 20 21:51:17 macbookpro Flux[992]: CGSGetSizeOfDisplayTransfer: Invalid display 0x19c6b0c1
Aug 20 21:51:17 macbookpro Google Chrome[1011]: CGSGetCurrentDisplayMode: Invalid display 0x19c6b0c1
Aug 20 21:51:17 --- last message repeated 1 time ---
Aug 20 21:51:17 macbookpro Terminal[313]: CGSGetCurrentDisplayMode: Invalid display 0x19c6b0c1
Aug 20 21:51:17 --- last message repeated 1 time ---
Aug 20 21:51:17 macbookpro Flux[992]: CGSGetSizeOfDisplayTransfer: Invalid display 0x19c6b0c1

... Lots of 'display added', 'display removed' messages;  oddly, the external monitor (HF237) was not identified until about 3 minutes later (but still came as invalid).

Anyway, unplugging and plugging the display back in still seems to be the best solution


2014 Update:  after updating to OS X 10.8 (Mountain Lion) this has rarely happened.  Occasionally the external doesn't properly reconnect after display wakeup or resume from standby, but not the endless looping with screen flashing blue.  Unplug/plug back in always seems to fix it, it's just required a lot less frequently.

No comments: