Jump to content
InsanelyMac Forum
Sign in to follow this  
nofearl

Multiple display setup, switches main display PEG/PEG2 every boot

Recommended Posts

I've a 2 gfx (Nvidia 9600 GT) and 4 monitors setup, and I've been using it since 10.6.x. With 10.8 GM, after (almost) every reboot/start the main display graphic card switches.

 

I've been using the following DSDT, properly setup with NVDA,Parent & NVDA,Child without any problems. I've also tried;

 

- Latest chameleon build, and a couple of older builds,

- Latest chimera, with and without DSDT code

- Enabling and disabling graphicsenabler for both bootloaders

- Switching BIOS setting to PCI/PEG/PEG2

- adding "@0,AAPL,boot-display"

- deleting both com.apple.windowserver files and restart

- removing cards and cleaning contacts :) (really!)

 

and a couple of other things I can't remember now, and 3-4 reinstalls. It still randomly switches main graphic card. I can't figure it out. Any help would be greatly appreciated!

 

		Device (PEG1)
		{
			Name (_ADR, 0x00010000)
			Method (_STA, 0, NotSerialized)
			{
				Return (0x0F)
			}
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x09,
					0x05
				})
			}
			Device (GFX1)
			{
				Name (_ADR, Zero)
				Name (_SUN, 0x0B)
				Method (_PRW, 0, NotSerialized)
				{
					Return (Package (0x02)
					{
						0x0B,
						0x04
					})
				}
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x18)
						{
							"@0,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},
							"@0,device_type",
							Buffer (0x08)
							{
								"display"
							},
							"@0,name",
							Buffer (0x0F)
							{
								"NVDA,Display-A"
							},
							"@1,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},
							"@1,device_type",
							Buffer (0x08)
							{
								"display"
							},
							"@1,name",
							Buffer (0x0F)
							{
								"NVDA,Display-B"
							},
							"NVCAP",
							Buffer (0x18)
							{
								/* 0000 */   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
								/* 0008 */   0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
								/* 0010 */   0x00, 0x00, 0x00, 0x00
							},
							"VRAM,totalsize",
							Buffer (0x04)
							{
								 0x00, 0x00, 0x00, 0x40
							},
							"device_type",
							Buffer (0x0D)
							{
								"NVDA,Parent"
							},
							"rm_multiboard_capable",
							Buffer (0x04)
							{
								 0x01, 0x00, 0x00, 0x00
							},
							"model",
							Buffer (0x17)
							{
								"NVIDIA Geforce 9600 GT"
							},
							"rom-revision",
							Buffer (0x06)
							{
								"3173a"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}
		}
		Device (PEG2)
		{
			Name (_ADR, 0x00060000)
			Method (_STA, 0, NotSerialized)
			{
				Return (0x0F)
			}
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x09,
					0x05
				})
			}
			Device (GFX2)
			{
				Name (_ADR, Zero)
				Name (_SUN, 0x0C)
				Method (_PRW, 0, NotSerialized)
				{
					Return (Package (0x02)
					{
						0x05,
						0x04
					})
				}
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x18)
						{
							"@0,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},
							"@0,device_type",
							Buffer (0x08)
							{
								"display"
							},
							"@0,name",
							Buffer (0x0F)
							{
								"NVDA,Display-A"
							},
							"@1,compatible",
							Buffer (0x0B)
							{
								"NVDA,NVMac"
							},
							"@1,device_type",
							Buffer (0x08)
							{
								"display"
							},
							"@1,name",
							Buffer (0x0F)
							{
								"NVDA,Display-B"
							},
							"NVCAP",
							Buffer (0x18)
							{
								/* 0000 */   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
								/* 0008 */   0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
								/* 0010 */   0x00, 0x00, 0x00, 0x00
							},
							"VRAM,totalsize",
							Buffer (0x04)
							{
								 0x00, 0x00, 0x00, 0x40
							},
							"device_type",
							Buffer (0x0D)
							{
								"NVDA,Child"
							},
							"rm_multiboard_capable",
							Buffer (0x04)
							{
								 0x01, 0x00, 0x00, 0x00
							},
							"model",
							Buffer (0x17)
							{
								"NVIDIA Geforce 9600 GT"
							},
							"rom-revision",
							Buffer (0x06)
							{
								"3169a"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}
		}

Share this post


Link to post
Share on other sites
Advertisement

Fix:

 

1. set DropSSDT NO, enabling it instantly brought back the problem

2. add

 

						   "@0,AAPL,boot-display",
							Buffer (0x04)
							{
								 0x01, 0x00, 0x00, 0x00
							},
							"@0,AAPL,primary-display",
							Buffer (0x04)
							{
								 0x00, 0x00, 0x00, 0x00
							},

 

to your first card.

3. Delete com.apple.windowserver.* files from /Library/Preferences and ~/Library/Preferences/byHost

 

cross your fingers and reboot.

Share this post


Link to post
Share on other sites

Unfortunately no, I've tried different DSDT hacks, bootloaders, editing windowserver.plist, BIOS settings, disconnecting one of the monitors, repairing color profiles, locking windowserver.plist files..

 

Maybe it's a OS bug.. One thing I haven't tried is using nvidia kexts from 10.7.x, but I have no idea which ones to rollback..

 

BTW, thank God it's not just me :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×