Jump to content

[Mavericks] GeForce 8400M GS on a HP Pavilion dv6830 (dv6700 series)


SARodrigues
 Share

12 posts in this topic

Recommended Posts

Has anyone been successful at getting this card working properly with Mavericks?

 

I have it running wonderfully with ML 10.8.3 via DSDT, but it doesn't work with Mavericks. In fact I had to remove all graphics related kexts from myHack's installation USB or I wouldn't even reach the installation screen. Obviously, after install I was stuck with a low res screen and no QE/CI.

 

My Google-Fu has failed me in the past couple days and this is obviously over my league. I'm out of ideas and could use some tips.

 

-----

 

What I've already tried:

  • Extracted and rebuilt manually the kexts from InstallESD.DMG using Base System Binaries, Base System Resources and Essentials packages; When installed, the system gets stuck at the screen after the Apple one on boot. Doesn't crash or anything, but it doesn't progress further;
  • I've tried to use NV* kexts from DP8;
  • Tried using smbios for other mac versions (I'm currently using MacBook Pro 5.1);
  • Double-checked injection under both VGA and GFX0 in my DSDT;
  • Tried a handful kexts found online for 8xxx and 9xxx graphic cards;
  • Tried replacing Mavericks' graphic kexts with the ones I use in ML;

 

Link to comment
Share on other sites

There are no changes with either NVEnabler nor GraphicsEnabler. Not even with both.

I've tried different combinations of -x, -f, -F, GraphicsEnabler, IGPEnabler, npci, PCIRootUID, dart, darkwake, etc.

 

The only way the system boots successfully to the desktop is with all NV* kexts removed. With the NV* kexts, the Apple logo with the spinning gray wheel shows up, the screen flickers for a second (which also happens with ML), then another gray screen with another spinning gray wheel (instead of a mouse pointer and soon after the desktop). That gray spinning wheel jams and gets blurred.

 

Booting with the -v flag shows no errors. All kexts are loaded, stuff is initialized as usual (including NVStartup and the likes), then it jumps to a black screen with a little square cursor in the top left, where it stays. The system doesn't freeze, I can type stuff and it'll show, being erased every few seconds. No errors either, so I am lost.

 

In case it is relevant, I boot Mountain Lion with exactly zero flags and no graphic injectors kexts.

The only kexts I need with ML are FakeSMC, AppleHDA, ApplePS2Controller, AppleSmartBattery and VoodooSDHC.

Link to comment
Share on other sites

Don't Gfx strings require EFI? This laptop is BIOS only.

I gave it a shot anyway (without my DSDT, since it injects that information already) and the result is the same. It was worth the shot though.

 

AFAIK graphic info is being properly injected via DSDT. I can boot ML with GraphicsEnabler=No and it doesn't change anything a bit. With Mavericks, everything loads as usual. Graphic related kexts are loaded and initialized. However, instead of the screen flickering and the mouse pointer appearing, it flickers and I get a spinning gray wheel (the same from the loading screen with the Apple logo) going on forever.

 

In case it helps troubleshooting, the last few messages boot messages (-v flag) are:

NVDAStartup: Official 
VoodooPS2SynapticsTouchpad loaded
VoodooPS2Trackpad: Synaptics TouchPad v6.3
NVDANV50HAL loaded and registered
[AGPM Controller] unknownPlatform
init
probe
DSMOShas arrived
NTFS driver 3.11 [Flags R/W]
NTFS volume name Windows, version 3.1.
Link to comment
Share on other sites

Hi,

You can try to see if an external monitor works with qe/ci.

On my experience on my Sony vaio notebook i have the same problem.

I have deleted nv*.* kext to get desktop screen on internal LCD , but if i leave kext i would use a connected external monitor with qe/ci.

 

If this try works , the problem is frambuffer / ports recognition.

Until now , however i have not found a working solution.

 

Let's me know ...

 

PippoX0

 

 

Link to comment
Share on other sites

Oh, that's bad news. Unfortunately I don't have an external monitor to test with.

 

According to system.log it seems that WindowServer keeps crashing. I guess I'll have to still with ML for a little longer, but I'll keep trying to find a solution. In case someone more knowledgeable stops by, I'll leave a text system log attached.

 

systemlog.rtf

Link to comment
Share on other sites

pippox0, you are right! You are absolutely right!

 

I spent a while analyzing the WindowServer crash reports. They didn't tell me much and I ended up chasing GeForce Kexts, with no results. Went back to the system.log and there was a mention of "ports" by WindowServer. :huh:

 

Your reply came to mind and I started thinking that although I've made extensive work on my custom DSDT, I didn't do anything to the graphics section except injecting my graphic card's data. On one hand, I wanted to upgrade to Mavericks first, on the other hand I currently don't have other displays to test with; my laptop has s-video, vga & hdmi outputs. I know for a fact that that section of the DSDT isn't working properly with OS X because pressing the display switch on my laptop freezes the system. Also, display preferences has always listed the TV output for no apparent reason. :wacko:

 

So, with your post in mind, I edited the second display out of the DSDT. Et Voilá! Graphics card working properly on the laptop's display, with QE/CI! :D However, GraphicsEnabler must be Off or else it'll try to fill in the missing information from the DSDT (second display) and mess Mavericks up.

 

Bye bye Mountain Lion, we've spend a nice week together. Hello Maverick!

  • Like 1
Link to comment
Share on other sites

Update

 

I was able to successfully boot Mavericks using the laptop's internal LCD display, with QE/CI, without disabling the second display from the DSDT. Turns out (obviously) that the problem is the NVCAP string. 

 

Ideally I wanted to extract the graphic card's ROM and look for the correct NVCAP, but unfortunately tools such as NVFLASH are unable to do it in my laptop. I resorted to searching 8400 GS strings online and try them out and ended up finding the (possibly) correct one. Unfortunately I don't have any external displays around, so I can't test if they work and/or what modifications are needed to the DSDT to get them to work. I do have a slight suspicion that the S-Vido may not be working. So. 

 

 

The working NVCAP for the DSDT is: 

/* 0000 */   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
/* 0008 */   0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */   0x00, 0x00, 0x00, 0x00

For those of you using other string injection methods, in Base64: 

BAAAAAAAAQACAAAAAAAAAAAAAAA=

Here's my current _DSM method under the VGA device (PCI0>PEGP): 

Method (_DSM, 4, NotSerialized)     // Device Specific Method
{
	Store (Package (0x1C)
	{
		"@0,built-in",
		Buffer (One)
		{
			0x01
		},
		"@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, 0x01, 0x00,
			/* 0008 */   0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0010 */   0x00, 0x00, 0x00, 0x00
		}, 
		"NVPM", 
		Buffer (0x20)
		{
			/* 0000 */   0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0010 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0018 */   0x00, 0x00, 0x00, 0x00
		}, 
		"VRAM,totalsize", 
		Buffer (0x04)
		{
			0x00, 0x00, 0x00, 0x10
		}, 
		"device_type", 
		Buffer (0x0D)
		{
			"NVDA,Parent"
		}, 
		"model", 
		Buffer (0x18)
		{
			"Nvidia GeForce 8600M GS"
		}, 
		"rom-revision", 
		Buffer (0x26)
		{
			"nVidia GeForce 8400M GS OpenGL Engine"
		}, 
		"reg", 
		Buffer (0x78)
		{
			/* 0000 */   0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0010 */   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,
			/* 0018 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0020 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
			/* 0028 */   0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,
			/* 0030 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0038 */   0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,
			/* 0040 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0048 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
			/* 0050 */   0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
			/* 0058 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0060 */   0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,
			/* 0068 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
			/* 0070 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
		}
	}, Local0)
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	Return (Local0)
}

If anyone tries it out with external displays connected, please let me know if they work. 

 

Have fun!

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

I´m completely sure this method can apply to:

 

http://www.insanelymac.com/forum/topic/293967-asus-rog-laptops-with-kepler-cards-not-detecting-dp-2-connected-lcd-display

 

and solve the problem. But of course that is a completely different graphics card since is a Kepler one. But this is the right track. The thing is we don´t know much of NVCAPS for kepler cards.

Link to comment
Share on other sites

 Share

×
×
  • Create New...