Jump to content

Intel HD Graphics / GMA 5700


sockerkid
 Share

1,324 posts in this topic

Recommended Posts

I just updated to 10.6.5 today. You still need to use cpus=1 & busratio? I don't have HP notebook but I know it is known issue on HP notebook. I read somewhere at tonymac forum that someone already tried to patch APIC table but it didn't work. Sorry, I don't remember or save the link since it is long time ago. This is my APIC table if you're interested. If not, just ignore it.

/*
* Intel ACPI Component Architecture
* AML Disassembler version 20101013-32 [Oct 13 2010]
* Copyright © 2000 - 2010 Intel Corporation
* 
* Disassembly of acpi_apic.bin, Fri Nov 12 20:51:04 2010
*
* ACPI Data Table [APIC]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "APIC"    /* Multiple APIC Description Table */
[004h 0004  4]                 Table Length : 0000008C
[008h 0008  1]                     Revision : 02
[009h 0009  1]                     Checksum : 13
[00Ah 0010  6]                       Oem ID : "_ASUS_"
[010h 0016  8]                 Oem Table ID : "Notebook"
[018h 0024  4]                 Oem Revision : 06222004
[01Ch 0028  4]              Asl Compiler ID : "MSFT"
[020h 0032  4]        Asl Compiler Revision : 00010013

[024h 0036  4]           Local Apic Address : FEE00000
[028h 0040  4]        Flags (decoded below) : 00000001
                       PC-AT Compatibility : 1

[02Ch 0044  1]                Subtable Type : 00 
[02Dh 0045  1]                       Length : 08
[02Eh 0046  1]                 Processor ID : 01
[02Fh 0047  1]                Local Apic ID : 00
[030h 0048  4]        Flags (decoded below) : 00000001
                         Processor Enabled : 1

[034h 0052  1]                Subtable Type : 00 
[035h 0053  1]                       Length : 08
[036h 0054  1]                 Processor ID : 02
[037h 0055  1]                Local Apic ID : 04
[038h 0056  4]        Flags (decoded below) : 00000001
                         Processor Enabled : 1

[03Ch 0060  1]                Subtable Type : 00 
[03Dh 0061  1]                       Length : 08
[03Eh 0062  1]                 Processor ID : 03
[03Fh 0063  1]                Local Apic ID : 01
[040h 0064  4]        Flags (decoded below) : 00000001
                         Processor Enabled : 1

[044h 0068  1]                Subtable Type : 00 
[045h 0069  1]                       Length : 08
[046h 0070  1]                 Processor ID : 04
[047h 0071  1]                Local Apic ID : 05
[048h 0072  4]        Flags (decoded below) : 00000001
                         Processor Enabled : 1

[04Ch 0076  1]                Subtable Type : 00 
[04Dh 0077  1]                       Length : 08
[04Eh 0078  1]                 Processor ID : 05
[04Fh 0079  1]                Local Apic ID : 04
[050h 0080  4]        Flags (decoded below) : 00000000
                         Processor Enabled : 0

[054h 0084  1]                Subtable Type : 00 
[055h 0085  1]                       Length : 08
[056h 0086  1]                 Processor ID : 06
[057h 0087  1]                Local Apic ID : 05
[058h 0088  4]        Flags (decoded below) : 00000000
                         Processor Enabled : 0

[05Ch 0092  1]                Subtable Type : 00 
[05Dh 0093  1]                       Length : 08
[05Eh 0094  1]                 Processor ID : 07
[05Fh 0095  1]                Local Apic ID : 06
[060h 0096  4]        Flags (decoded below) : 00000000
                         Processor Enabled : 0

[064h 0100  1]                Subtable Type : 00 
[065h 0101  1]                       Length : 08
[066h 0102  1]                 Processor ID : 08
[067h 0103  1]                Local Apic ID : 07
[068h 0104  4]        Flags (decoded below) : 00000000
                         Processor Enabled : 0

[06Ch 0108  1]                Subtable Type : 01 [i]
[06Dh 0109  1]                       Length : 0C
[06Eh 0110  1]                  I/O Apic ID : 02
[06Fh 0111  1]                     Reserved : 00
[070h 0112  4]                      Address : FEC00000
[074h 0116  4]                    Interrupt : 00000000

[078h 0120  1]                Subtable Type : 02 
[079h 0121  1]                       Length : 0A
[07Ah 0122  1]                          Bus : 00
[07Bh 0123  1]                       Source : 00
[07Ch 0124  4]                    Interrupt : 00000002
[080h 0128  2]        Flags (decoded below) : 0000
                                  Polarity : 0
                              Trigger Mode : 0

[082h 0130  1]                Subtable Type : 02 
[083h 0131  1]                       Length : 0A
[084h 0132  1]                          Bus : 00
[085h 0133  1]                       Source : 09
[086h 0134  4]                    Interrupt : 00000009
[08Ah 0138  2]        Flags (decoded below) : 000D
                                  Polarity : 1
                              Trigger Mode : 3

Raw Table Data

 0000: 41 50 49 43 8C 00 00 00 02 13 5F 41 53 55 53 5F  APIC......_ASUS_
 0010: 4E 6F 74 65 62 6F 6F 6B 04 20 22 06 4D 53 46 54  Notebook. ".MSFT
 0020: 13 00 01 00 00 00 E0 FE 01 00 00 00 00 08 01 00  ................
 0030: 01 00 00 00 00 08 02 04 01 00 00 00 00 08 03 01  ................
 0040: 01 00 00 00 00 08 04 05 01 00 00 00 00 08 05 04  ................
 0050: 00 00 00 00 00 08 06 05 00 00 00 00 00 08 07 06  ................
 0060: 00 00 00 00 00 08 08 07 00 00 00 00 01 0C 02 00  ................
 0070: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  ................
 0080: 00 00 02 0A 00 09 09 00 00 00 0D 00              ............

[/i]

 

Back to topic. I use Graphics Mode to set resolution to 1280x1024. It only work on external monitor since the resolution is not supported by internal monitor. I didn't noticed the IOFBCurrentPixelClock and IOFBCurrentPixelCount properties. I'll check it later. About the ROM file, are you comparing it with MacBookPro's Intel HD ROM?

Link to comment
Share on other sites

I just updated to 10.6.5 today. You still need to use cpus=1 & busratio? I don't have HP notebook but I know it is known issue on HP notebook. I read somewhere at tonymac forum that someone already tried to patch APIC table but it didn't work. Sorry, I don't remember or save the link since it is long time ago. This is my APIC table if you're interested. If not, just ignore it.

Hi kizan,

 

Yup. I still need it. I patch the APIC table but it did not change anything. Seen other links about a possible DSDT patch, but there's no code (example) and thus I am stuck.

 

p.s. Mucha made the lapic.c patch available here, and said that it was a BIOS bug, but without telling where, in which ACPI table, and what the actual bug is about so there's no way of patching it.

 

Back to topic. I use Graphics Mode to set resolution to 1280x1024. It only work on external monitor since the resolution is not supported by internal monitor. I didn't noticed the IOFBCurrentPixelClock and IOFBCurrentPixelCount properties. I'll check it later. About the ROM file, are you comparing it with MacBookPro's Intel HD ROM?

Same here. Only 1024 x 768 availble (max) for the LCD panel. Do have higher resolution also, but never tested them. Will do later tonight. And yes I am comparing the hack against the MacBookPro. I also write tools, like the one I wrote today (dminfo.c):

 

/*
cc dminfo.c -o /tmp/dminfo -framework IOKit -framework ApplicationServices -Wall -g
*/

#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/graphics/IOGraphicsLib.h>

#include <ApplicationServices/ApplicationServices.h>

#include <stdlib.h>
#include <stdio.h>

/* struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize; */

CGDirectDisplayID displays[3];

int main(int argc, char * argv[])
{
uint32_t numDisplays, i, unitNumber, modelNumber, vendorNumber, flags;

CGGetActiveDisplayList(3, displays, &numDisplays);

for (i = 0; i < numDisplays; i++)
{
	CGDisplayModeRef mode;
	CFIndex index, count;
	CFArrayRef modeList;
	CGDirectDisplayID display = displays[ i ];

	printf("\nDisplay                        : %d\n", i);

       /* See also: /System/Library/Frameworks/ApplicationServices.framework/Versions/
				  A/Frameworks/CoreGraphics.framework/Versions/A/Headers/CGDisplayConfiguration.h */

       CGDirectDisplayID displayID = CGMainDisplayID();
	printf("Display ID                     : 0x%x (%d)\n", displayID, displayID);

	CGSize dimensions = CGDisplayScreenSize(display);

	vendorNumber = CGDisplayVendorNumber(display);
	printf("Vendor                         : 0x%x (%d)\n", vendorNumber, vendorNumber);

	modelNumber = CGDisplayModelNumber(display);
	printf("Model Number                   : 0x%x (%d)\n", modelNumber, modelNumber);
	printf("Serial Number                  : %d\n", CGDisplaySerialNumber(display));

	printf("Width                          : %f mm\n", dimensions.width);
	printf("Height                         : %f mm\n", dimensions.height);

	printf("CGDisplayPixelsWide            : %d pixels\n", (int) CGDisplayPixelsWide(display));
	printf("CGDisplayPixelsHigh            : %d pixels\n", (int) CGDisplayPixelsHigh(display));

	/* From gaussblur.c but deprecated in 10.6
	printf("CGDisplayBaseAddress           : %p\n", CGDisplayBaseAddress(display));
	printf("CGDisplayBytesPerRow           : %d\n", (int) CGDisplayBytesPerRow(display)); */

	CGImageRef image = CGDisplayCreateImage(display);
	printf("CGImageGetBitsPerPixel         : %d\n", (int)CGImageGetBitsPerPixel(image));
	printf("CGImageGetBytesPerRow          : %d\n", (int)CGImageGetBytesPerRow(image));

	/* Other functions (two examples)
	printf("CGImageGetHeight               : %d\n", (int)CGImageGetHeight(image));
	printf("CGImageGetWidth                : %d\n", (int)CGImageGetWidth(image)); */

	printf("CGDisplayIsActive              : %s\n", CGDisplayIsActive(display) ? "true" : "false");
	printf("CGDisplayIsAsleep              : %s\n", CGDisplayIsAsleep(display) ? "true" : "false");
	printf("CGDisplayIsOnline              : %s\n", CGDisplayIsOnline(display) ? "true" : "false");
	printf("CGDisplayIsMain                : %s\n", CGDisplayIsMain(display) ? "true" : "false");
	printf("CGDisplayIsBuiltin             : %s\n", CGDisplayIsBuiltin(display) ?  "true" : "false");
	printf("CGDisplayIsInMirrorSet         : %s\n", CGDisplayIsInMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayIsAlwaysInMirrorSet   : %s\n", CGDisplayIsAlwaysInMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayIsInHWMirrorSet       : %s\n", CGDisplayIsInHWMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayMirrorsDisplay        : %s\n", CGDisplayMirrorsDisplay(display) ?  "true" : "false");
	printf("CGDisplayUsesOpenGLAcceleration: %s\n", CGDisplayUsesOpenGLAcceleration(display) ?  "true" : "false");
	printf("CGDisplayIsStereo              : %s\n", CGDisplayIsStereo(display) ?  "true" : "false");
	printf("CGDisplayPrimaryDisplay        : %s\n", CGDisplayPrimaryDisplay(display) ?  "true" : "false");
	printf("CGDisplayUnitNumber            : %d\n", unitNumber);
	printf("CGDisplayRotation              : %f\n", CGDisplayRotation(display));

	// printf("Press Enter for all display modes...\n");


		modeList = CGDisplayCopyAllDisplayModes(displays[ i ], NULL);
		count = CFArrayGetCount (modeList);

		for (index = 0; index < count; index++)
		{
			mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modeList, index);

			long height = 0, width = 0;

			height = CGDisplayModeGetHeight(mode);
			width = CGDisplayModeGetWidth(mode);

			printf("\nwidth: %4ld  height: %4ld", width, height);

			flags = CGDisplayModeGetIOFlags(mode);

			if (flags) // IOGraphicsTypes.h
			{
				printf(" - Flags (%d)", flags);

				if (flags & kDisplayModeValidFlag) // 0x00000001
					printf(" Valid");

				if (flags & kDisplayModeSafeFlag) // 0x00000002
					printf(" Safe");

				if (flags & kDisplayModeDefaultFlag) // 0x00000004
					printf(" Default");

				if (flags & kDisplayModeNotResizeFlag) // 0x00000010
					printf(" NotResize");

				if (flags & kDisplayModeRequiresPanFlag) // 0x00000020
					printf(" RequiresPan");

				if (flags & kDisplayModeInterlacedFlag) // 0x00000040
					printf(" Interlaced");

				if (flags & kDisplayModeSimulscanFlag) // 0x00000100
					printf(" Simulscan");

				if (flags & kDisplayModeNotPresetFlag) // 0x00000200
					printf(" (geometry may need correction)");

				if (flags & kDisplayModeBuiltInFlag) // 0x00000400
					printf(" Builtin");

				if (flags & kDisplayModeStretchedFlag) // 0x00000800
					printf(" Stretched");

				if (flags & kDisplayModeNotGraphicsQualityFlag) // 0x00001000
					printf(" NotGraphicsQuality");

				if (flags & kDisplayModeValidateAgainstDisplay) // 0x00002000
					printf(" ValidateAgainstDisplay");

				if (flags & kDisplayModeTelevisionFlag) // 0x00100000
					printf(" Television");

				if (flags & kDisplayModeValidForMirroringFlag) // 0x00200000
					printf(" ValidForMirroring");
			}
		}
		CFRelease(modeList);

		printf("\n");

	CGImageRelease(image);
}

return (0);
}

Dumps something like:

Display : 0

Display ID : 0x400e780 (67168128)

Vendor : 0x610 (1552)

Model Number : 0x39e (926)

Serial Number : 0

Width : 380.000000 mm

Height : 210.000000 mm

CGDisplayPixelsWide : 1024 pixels

CGDisplayPixelsHigh : 768 pixels

CGDisplayBytesPerRow : 4096

CGDisplayIsActive : true

CGDisplayIsAsleep : false

CGDisplayIsOnline : true

CGDisplayIsMain : true

CGDisplayIsBuiltin : true

CGDisplayIsInMirrorSet : false

CGDisplayIsAlwaysInMirrorSet : false

CGDisplayIsInHWMirrorSet : false

CGDisplayMirrorsDisplay : false

CGDisplayUsesOpenGLAcceleration: false

CGDisplayIsStereo : false

CGDisplayPrimaryDisplay : true

CGDisplayUnitNumber : 0

CGDisplayRotation : 0.000000

 

width: 1600 height: 900 - Flags (7) Valid Safe Default

width: 640 height: 480 - Flags (515) Valid Safe (geometry may need correction)

width: 640 height: 480 - Flags (2563) Valid Safe (geometry may need correction) Stretched

width: 800 height: 600 - Flags (515) Valid Safe (geometry may need correction)

width: 800 height: 600 - Flags (2563) Valid Safe (geometry may need correction) Stretched

width: 1024 height: 768 - Flags (515) Valid Safe (geometry may need correction)

width: 1024 height: 576 - Flags (3) Valid Safe

width: 1280 height: 720 - Flags (3) Valid Safe

width: 1344 height: 756 - Flags (3) Valid Safe

 

To see if I can spot anything wrong.

 

All thanks to Christoff for providing the hint in post #181.

 

Update: Did connect an external monitor (@1600 x 1200 x 32) and this is what I see (snippet):

 

CGDisplayPixelsWide : 1600 pixels

CGDisplayPixelsHigh : 1200 pixels

CGDisplayBytesPerRow : 4096

 

Not good. Stuck at 1024 pixels width. This 4096 should be 6400 (1600 x 32 >> 3) !!!

 

p.s. IOFBCurrentPixelClock and IOFBCurrentPixelCount change (on resolution changes) for the external monitor!

 

@FredWst Can you boot with the newly compiled IOGraphicsFamily.kext? I can't. Get errors. Can you make a small modification in setupCursor in IOFramebuffer.cpp and see what value you get?

 

rowBytes = info->bytesPerRow;

+ IOLog("rowBytes: %d", rowBytes);

totalWidth = (rowBytes * 8) / info->bitsPerPixel;

bytesPerPixel = info->bitsPerPixel / 8;

 

You can inject a new value too. Examples:

((1024 * 32 = 32768) >> 3) = 4096

((1280 * 32 = 40960) >> 3) = 5120

((1440 * 32 = 46080) >> 3) = 5760

((1600 * 32 = 51200) >> 3) = 6400

((1920 * 32 = 61440) >> 3) = 7680

Link to comment
Share on other sites

Hi kizan,

 

Yup. I still need it. I patch the APIC table but it did not change anything. Seen other links about a possible DSDT patch, but there's no code (example) and thus I am stuck.

 

p.s. Mucha made the lapic.c patch available here, and said that it was a BIOS bug, but without telling where, in which ACPI table, and what the actual bug is about so there's no way of patching it.

 

 

Same here. Only 1024 x 768 availble (max) for the LCD panel. Do have higher resolution also, but never tested them. Will do later tonight. And yes I am comparing the hack against the MacBookPro. I also write tools, like the one I wrote today (dminfo.c):

 

/*
cc dminfo.c -o /tmp/dminfo -framework IOKit -framework ApplicationServices -Wall -g
*/

#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/graphics/IOGraphicsLib.h>

#include <ApplicationServices/ApplicationServices.h>

#include <stdlib.h>
#include <stdio.h>

/* struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize; */

CGDirectDisplayID displays[3];

int main(int argc, char * argv[])
{
uint32_t numDisplays, i, unitNumber, modelNumber, vendorNumber, flags;

CGGetActiveDisplayList(3, displays, &numDisplays);

for (i = 0; i < numDisplays; i++)
{
	CGDisplayModeRef mode;
	CFIndex index, count;
	CFArrayRef modeList;
	CGDirectDisplayID display = displays[ i ];

	printf("\nDisplay                        : %d\n", i);

       /* See also: /System/Library/Frameworks/ApplicationServices.framework/Versions/
				  A/Frameworks/CoreGraphics.framework/Versions/A/Headers/CGDisplayConfiguration.h */

       CGDirectDisplayID displayID = CGMainDisplayID();
	printf("Display ID                     : 0x%x (%d)\n", displayID, displayID);

	CGSize dimensions = CGDisplayScreenSize(display);

	vendorNumber = CGDisplayVendorNumber(display);
	printf("Vendor                         : 0x%x (%d)\n", vendorNumber, vendorNumber);

	modelNumber = CGDisplayModelNumber(display);
	printf("Model Number                   : 0x%x (%d)\n", modelNumber, modelNumber);
	printf("Serial Number                  : %d\n", CGDisplaySerialNumber(display));

	printf("Width                          : %f mm\n", dimensions.width);
	printf("Height                         : %f mm\n", dimensions.height);

	printf("CGDisplayPixelsWide            : %d pixels\n", (int) CGDisplayPixelsWide(display));
	printf("CGDisplayPixelsHigh            : %d pixels\n", (int) CGDisplayPixelsHigh(display));

	/* From gaussblur.c but deprecated in 10.6
	printf("CGDisplayBaseAddress           : %p\n", CGDisplayBaseAddress(display));
	printf("CGDisplayBytesPerRow           : %d\n", (int) CGDisplayBytesPerRow(display)); */

	CGImageRef image = CGDisplayCreateImage(display);
	printf("CGImageGetBitsPerPixel         : %d\n", (int)CGImageGetBitsPerPixel(image));
	printf("CGImageGetBytesPerRow          : %d\n", (int)CGImageGetBytesPerRow(image));

	/* Other functions (two examples)
	printf("CGImageGetHeight               : %d\n", (int)CGImageGetHeight(image));
	printf("CGImageGetWidth                : %d\n", (int)CGImageGetWidth(image)); */

	printf("CGDisplayIsActive              : %s\n", CGDisplayIsActive(display) ? "true" : "false");
	printf("CGDisplayIsAsleep              : %s\n", CGDisplayIsAsleep(display) ? "true" : "false");
	printf("CGDisplayIsOnline              : %s\n", CGDisplayIsOnline(display) ? "true" : "false");
	printf("CGDisplayIsMain                : %s\n", CGDisplayIsMain(display) ? "true" : "false");
	printf("CGDisplayIsBuiltin             : %s\n", CGDisplayIsBuiltin(display) ?  "true" : "false");
	printf("CGDisplayIsInMirrorSet         : %s\n", CGDisplayIsInMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayIsAlwaysInMirrorSet   : %s\n", CGDisplayIsAlwaysInMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayIsInHWMirrorSet       : %s\n", CGDisplayIsInHWMirrorSet(display) ?  "true" : "false");
	printf("CGDisplayMirrorsDisplay        : %s\n", CGDisplayMirrorsDisplay(display) ?  "true" : "false");
	printf("CGDisplayUsesOpenGLAcceleration: %s\n", CGDisplayUsesOpenGLAcceleration(display) ?  "true" : "false");
	printf("CGDisplayIsStereo              : %s\n", CGDisplayIsStereo(display) ?  "true" : "false");
	printf("CGDisplayPrimaryDisplay        : %s\n", CGDisplayPrimaryDisplay(display) ?  "true" : "false");
	printf("CGDisplayUnitNumber            : %d\n", unitNumber);
	printf("CGDisplayRotation              : %f\n", CGDisplayRotation(display));

	// printf("Press Enter for all display modes...\n");


		modeList = CGDisplayCopyAllDisplayModes(displays[ i ], NULL);
		count = CFArrayGetCount (modeList);

		for (index = 0; index < count; index++)
		{
			mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modeList, index);

			long height = 0, width = 0;

			height = CGDisplayModeGetHeight(mode);
			width = CGDisplayModeGetWidth(mode);

			printf("\nwidth: %4ld  height: %4ld", width, height);

			flags = CGDisplayModeGetIOFlags(mode);

			if (flags) // IOGraphicsTypes.h
			{
				printf(" - Flags (%d)", flags);

				if (flags & kDisplayModeValidFlag) // 0x00000001
					printf(" Valid");

				if (flags & kDisplayModeSafeFlag) // 0x00000002
					printf(" Safe");

				if (flags & kDisplayModeDefaultFlag) // 0x00000004
					printf(" Default");

				if (flags & kDisplayModeNotResizeFlag) // 0x00000010
					printf(" NotResize");

				if (flags & kDisplayModeRequiresPanFlag) // 0x00000020
					printf(" RequiresPan");

				if (flags & kDisplayModeInterlacedFlag) // 0x00000040
					printf(" Interlaced");

				if (flags & kDisplayModeSimulscanFlag) // 0x00000100
					printf(" Simulscan");

				if (flags & kDisplayModeNotPresetFlag) // 0x00000200
					printf(" (geometry may need correction)");

				if (flags & kDisplayModeBuiltInFlag) // 0x00000400
					printf(" Builtin");

				if (flags & kDisplayModeStretchedFlag) // 0x00000800
					printf(" Stretched");

				if (flags & kDisplayModeNotGraphicsQualityFlag) // 0x00001000
					printf(" NotGraphicsQuality");

				if (flags & kDisplayModeValidateAgainstDisplay) // 0x00002000
					printf(" ValidateAgainstDisplay");

				if (flags & kDisplayModeTelevisionFlag) // 0x00100000
					printf(" Television");

				if (flags & kDisplayModeValidForMirroringFlag) // 0x00200000
					printf(" ValidForMirroring");
			}
		}
		CFRelease(modeList);

		printf("\n");

	CGImageRelease(image);
}

return (0);
}

Dumps something like:

Display : 0

Display ID : 0x400e780 (67168128)

Vendor : 0x610 (1552)

Model Number : 0x39e (926)

Serial Number : 0

Width : 380.000000 mm

Height : 210.000000 mm

CGDisplayPixelsWide : 1024 pixels

CGDisplayPixelsHigh : 768 pixels

CGDisplayBytesPerRow : 4096

CGDisplayIsActive : true

CGDisplayIsAsleep : false

CGDisplayIsOnline : true

CGDisplayIsMain : true

CGDisplayIsBuiltin : true

CGDisplayIsInMirrorSet : false

CGDisplayIsAlwaysInMirrorSet : false

CGDisplayIsInHWMirrorSet : false

CGDisplayMirrorsDisplay : false

CGDisplayUsesOpenGLAcceleration: false

CGDisplayIsStereo : false

CGDisplayPrimaryDisplay : true

CGDisplayUnitNumber : 0

CGDisplayRotation : 0.000000

 

width: 1600 height: 900 - Flags (7) Valid Safe Default

width: 640 height: 480 - Flags (515) Valid Safe (geometry may need correction)

width: 640 height: 480 - Flags (2563) Valid Safe (geometry may need correction) Stretched

width: 800 height: 600 - Flags (515) Valid Safe (geometry may need correction)

width: 800 height: 600 - Flags (2563) Valid Safe (geometry may need correction) Stretched

width: 1024 height: 768 - Flags (515) Valid Safe (geometry may need correction)

width: 1024 height: 576 - Flags (3) Valid Safe

width: 1280 height: 720 - Flags (3) Valid Safe

width: 1344 height: 756 - Flags (3) Valid Safe

 

To see if I can spot anything wrong.

 

All thanks to Christoff for providing the hint in post #181.

 

Update: Did connect an external monitor (@1600 x 1200 x 32) and this is what I see (snippet):

 

CGDisplayPixelsWide : 1600 pixels

CGDisplayPixelsHigh : 1200 pixels

CGDisplayBytesPerRow : 4096

 

Not good. Stuck at 1024 pixels width. This 4096 should be 6400 (1600 x 32 >> 3) !!!

 

p.s. IOFBCurrentPixelClock and IOFBCurrentPixelCount change (on resolution changes) for the external monitor!

 

@FredWst Can you boot with the newly compiled IOGraphicsFamily.kext? I can't. Get errors. Can you make a small modification in setupCursor in IOFramebuffer.cpp and see what value you get?

 

rowBytes = info->bytesPerRow;

+ IOLog("rowBytes: %d", rowBytes);

totalWidth = (rowBytes * 8) / info->bitsPerPixel;

bytesPerPixel = info->bitsPerPixel / 8;

 

You can inject a new value too. Examples:

((1024 * 32 = 32768) >> 3) = 4096

((1280 * 32 = 40960) >> 3) = 5120

((1440 * 32 = 46080) >> 3) = 5760

((1600 * 32 = 51200) >> 3) = 6400

((1920 * 32 = 61440) >> 3) = 7680

 

Can't test anymore

 

I've sold my e6510, and i've bought a Macbook pro

 

Regards

Fred

Link to comment
Share on other sites

@fmac: Link is dead. Get a Board Message. Not to mention that display-cfg is NVIDIA only and that NVIDIA is supposed to be easy. I wish I had one because that would have saved me a huge amount of time, but killed the fun too ;)

 

@FredWst: Congratulations... and welcome on the other side.

 

Eeks. Batteries drained too much (Apple Bluetooth keyboard and mouse). Need to find spares or...

Link to comment
Share on other sites

Searching wiht Google "lebidou's autodetection for ati, nvidia and intel"

 

or cache version?? :P ---> link

 

these are the Intel card supported

 

0x808627A2, "Mobile GMA950"
0x808627AE, "Mobile GMA950"
0x808627A6, "Mobile GMA950"
0x80862772, "Desktop GMA950"
0x80862776, "Desktop GMA950"
0x80862A02, "GMAX3100"
0x80862A03, "GMAX3100"
0x80862A12, "GMAX3100"
0x80862A13, "GMAX3100"
0x80862A42, "GMAX3100"
0x80862A43, "GMAX3100"

Link to comment
Share on other sites

Sorry but i don't undestend this language :\

Me neither, but this is what I made of it with help of a Google translation:

 

He advised people in that forum "to cut firewood Intel HD" (until 10.6.6 is released) and one person asked: "How?". He then added a screenshot with selected AppleIntelHD*.kext's with the context menu open on what I believe is 'Move To Trash' (3th option).

Link to comment
Share on other sites

Just popping in here :) I also have the Intel HD graphics (Dell inspiron 15r with i3), and of course my graphics aren't working properly.

 

But which kext of the three intelhdgraphics kexts is causing this problem (not booting anymore etc.)? and the most interesting why?

Link to comment
Share on other sites

He advised people in that forum "to cut firewood Intel HD" (until 10.6.6 is released) and one person asked: "How?". He then added a screenshot with selected AppleIntelHD*.kext's with the context menu open on what I believe is 'Move To Trash' (3th option).

 

Yes. You translated messages and screenshot correctly.

Link to comment
Share on other sites

Me neither, but this is what I made of it with help of a Google translation:

 

He advised people in that forum "to cut firewood Intel HD" (until 10.6.6 is released) and one person asked: "How?". He then added a screenshot with selected AppleIntelHD*.kext's with the context menu open on what I believe is 'Move To Trash' (3th option).

 

 

I don't c how that post help us... check the second screenshot, the Intel HD Graphics is in same situation as all of us

No kext is loaded, and the resolution is stuck @ 1024x768x32

 

P.S

dutchhockeypro I track your post since day 1 and I can say that from all what I c till now in OSX forums U r the only1 that actually did some progress....

If I can help with anything let me know... I code on .NET platform and have OSX 10.6.5 installed with Vanilla kernel - got everything working beside that damn Intel HD Graphics.

btw, have u tried the latest version of Chameleon? Its detecting the card and output a msg "Not Yet supported" and I know that u can use a ROM file with it (U said that u got the ROM from a macbook pro no?)

Link to comment
Share on other sites

But whit the way of yurick, Intel HG Graphics have QE/CI?

 

And the Nvidia 310M have QE/CI ??

 

There is not completed yet DSDT with seven errors. Originally it was 201! Registered 2 video cards intelHD and nVidia, with no name. Ability not have enough time now to complete this work. What should be done to fix the laptop off to disable intelHi video card or monitor connected to another card ... or wait for 10.6.6

 

 

systems profile intel pentium P6100 

 

 

 

 

Intel ACPI Component ArchitectureASL Optimizing Compiler version 20100304 [Mar 9 2010] with Fix Integer bugCopyright © 2000 - 2010 Intel CorporationSupports ACPI Specification Revision 4.0

or we need to correct for the 4.0 compiler

Link to comment
Share on other sites

@naaa354: Thank you for your kind words. Still trying to get a grip on things, and it is very difficult to really do something. To make a change. Need more experienced hackers. And I am not using the original Chameleon, but Revolution tailored towards my needs. It is also a slightly faster booter (60+KB /boot file).

 

@yurick: If you need help with fixing your DSDT then please visit this or this topic and ask for help.

 

@fiox89: No. Unfortunately not.

 

@Tomdev: Huh? Not booting anymore? You mean having a black screen? Delete AppleIntelHDGraphicsFB.kext and recreate Extensions.mkext That should give you the boot display.

Link to comment
Share on other sites

But which kext is causing all the problems? (I want to investigate that one a bit more with otool etc.)

I would say AppleIntelHDGraphicsFB.kext and AppleGraphicsControl.kext The latter doesn't even load here. We might need a FakeGMUX.kext for this ala fakesmc.kext by netkas.

Link to comment
Share on other sites

 but the crashes with this kext, I think they're not caused because of a piece of code which checks for a nvidia gpu, but it should be somehow related to this nvidia gpu(I mean if you check for a gpu and it isn't there you're not gonna make the system crash :D  unless you're an evil coder).

 

Or is this speculation wrong and are these crashes caused by something else?

Link to comment
Share on other sites

but the crashes with this kext, I think they're not caused because of a piece of code which checks for a nvidia gpu, but it should be somehow related to this nvidia gpu(I mean if you check for a gpu and it isn't there you're not gonna make the system crash :mellow: unless you're an evil coder).

 

Or is this speculation wrong and are these crashes caused by something else?

What crashes? I don't have any crashes.

 

And the kext looking for NVIDIA is AppleGraphicsControl.kext Which isn't loading here. No wonder, because we don't have a GMUX device. You can add it in your DSDT, but that won't make it load. I tried that already.

 

You can also change Info.plist but that won't make it load either.

 

And just to be sure: Do you have an ATI of NVIDIA card next to the Intel HD Graphics? Do you have a BIOS (UEFI) option to select one of the cards?

 

I have an ATI 5470m and no option in the UEFI to select either card.

Link to comment
Share on other sites

ok not really crashes, more hangs... when I updated to 10.6.5 it just hang.... after removing intel graphics kext it also hang so maybe it' s a problem with this laptop.

 

Beside the Intel HD graphics I've totally nothing... so no UEFI option either :rolleyes:

And now I get what you meant with fakeGMUX kext ;)

Link to comment
Share on other sites

@fmac: Link is dead. Get a Board Message. Not to mention that display-cfg is NVIDIA only and that NVIDIA is supposed to be easy. I wish I had one because that would have saved me a huge amount of time, but killed the fun too ;)

 

Link is working again

 

for me "Auto resolution = Yes" is working :P

no need for "Graphics Mode = 1600x900x32"

Boot screen is 1600x900

OS X is 1600x900 but, only without IntelHD.kext :rolleyes:

with kext only remote screen is possible

a small step into the right direction ?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...