Jump to content

DSDT; using gfxutil to find PCI locations


efp
 Share

34 posts in this topic

Recommended Posts

The 9600 is a PCI-16 card and your 8800 is a PCI-16 card. Physically, they only fit in slot 1, unless your motherboard has two PCI-16 slots, and then the second slot might be throttled to 8x. That is the situation where there isn't much speed difference.

Looking at it now my mobo does have 2x PCI-16 slots with one running at x16 and one at x8(which i was plugged into).

 

Another logical conclusion is that you did not buy and install the 8800, because they usually say for PCI-16 prominently on the outside of the box. Hence, you didn't read the installation instructions which say to put it in slot 1, and so you did not feel that the card was not seated properly when the seating of the card was attempted in slot 2. ... I'm not going to read all your posts again. So I don't remember if you reported that a device was actually and not cosmetically, reported installed in slot 2.

If a card is not seated properly it usually will not be reported as a device, at least I think that.

I did buy and install 8800 my self(bout 4 years ago) i cant remember if it said it was for PCI-16 it was a long time ago.

 

I"'ve a GF 9600 graphics card which is similar to yours and the instructions said to put it in slot 1."

When you said 'instructions' it didnt come to mind that your were talking about the GFX Manual install instructions. I was thinking you were talkin about instructions on the DSDT part.

Fair enough. Stupidness on my part but if you would have been a little bit more clear on what instructions you were talkin about i might of got it.

It really wasnt that big of a deal(at least not as big as youre making it to be).

 

Beginning power users are in no position to bypass the instructions provided by developers and software engineers because they are arrogantly ignorant of their intuitive qualifications.

I did NOT 'bypass' your 'instructions' in no way, for your information. The problem was i did not understand what you were talkin about. If you would have explained it like you just have in this post i would have understood.

Please dont make statements about me being 'arrogantly ignorant' as you DO NOT know me. I am anything BUT arrogant! For your information.

Fair enough you was right, but rubbing it in, aint doing justice.

You must understand that some people are not as able as you might be.

Thanks for your help!

 

 

 

You must follow the syntax in com.apple.Boot.plist

 

	 <key>GeneratePStates</key>
 <string>Yes</string>
 <key>GenerateCStates</key>
 <string>Yes</string>

 

 

 

 

Same as the one I used or..?

 

Show me the DSDT code you added and your LPC device's dev ID.

 

Did you find and add method DTGP as well?

 

If you're still getting the C-state errors after fixing com.apple.Boot.plist, try adding DropSSDT=y as well, and add your SSDT tables that you've dumped with everest. Details here (again :D ):

http://www.insanelymac.com/forum/index.php?showtopic=225766 (more details further inside the thread).

 

Don't worry about the missing key error from fakesmc for now.

Once i changed the syntax in Boot.plist the errors dissapeard.

I added the DSDT code exactlly as you said.(the DTGP Method was added long time ago) and my LPC device is exactly the same as in the guide: 3a16.

 

In regard to the SSDT tables; Is this necessary to do now since everything is running fine?

My kernel.log is as following:

npvhash=4095
Darwin Kernel Version 10.5.0: Fri Nov  5 23:19:13 PDT 2010; root:xnu-1504.9.17~1/RELEASE_X86_64
vm_page_bootstrap: 1013284 free pages and 27100 wired pages
kext submap [0xffffff7f80600000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000600000]
standard timeslicing quantum is 10000 us
mig_table_max_displ = 73
AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled
AppleACPICPU: ProcessorId=1 LocalApicId=3 Enabled
AppleACPICPU: ProcessorId=2 LocalApicId=1 Enabled
AppleACPICPU: ProcessorId=3 LocalApicId=2 Enabled
calling mpo_policy_init for Quarantine
Security policy loaded: Quarantine policy (Quarantine)
calling mpo_policy_init for Sandbox
Security policy loaded: Seatbelt sandbox policy (Sandbox)
calling mpo_policy_init for TMSafetyNet
Security policy loaded: Safety net for Time Machine (TMSafetyNet)
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
MAC Framework successfully initialized
using 16384 buffer headers and 4096 cluster IO buffer headers
IOAPIC: Version 0x20 Vectors 64:87
ACPI: System State [S0 S3 S4 S5] (S3)
AppleIntelCPUPowerManagement: initialization complete
RTC: Only single RAM bank (128 bytes)
netkas presents fakesmc, a kext which emulates smc device
mbinit: done (64 MB memory set for mbuf pool)
From path: "uuid", 
Waiting for boot volume with UUID 1F08C695-4630-3CA1-8B23-6D22F53572C7
Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
Not loading kext com.apple.driver.AppleHDAController - not found and kextd not available in early boot.
USBF:	1.133	AppleUSBEHCI[0xffffff80099a0000]::CheckSleepCapability - controller will be unloaded across sleep
USBF:	1.139	AppleUSBEHCI[0xffffff8009a52000]::CheckSleepCapability - controller will be unloaded across sleep
com.apple.AppleFSCompressionTypeZlib kmod start
com.apple.AppleFSCompressionTypeZlib load succeeded
AppleIntelCPUPowerManagementClient: ready
FireWire runtime power conservation disabled. (2)
FireWire (OHCI) TI ID 8024 PCI now active, GUID 002daf4a00001fd0; max speed s400.
Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IDE1@1F,2/AppleAHCI/PRT5@5/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/ST3320620AS Media/IOGUIDPartitionScheme/mac@2
BSD root: disk0s2, major 14, minor 2
Kernel is LP64
Sound assertion "0 == pciVendorProductID" failed in "/SourceCache/AppleHDA/AppleHDA-199.4.12/AppleHDAController/AppleHDAController.cpp" at line 3345 goto Exit
systemShutdown false
Waiting for DSMOS...
IPv6 packet filtering initialized, default to accept, logging disabled
Apple16X50ACPI1: Identified Serial Port on ACPI Device=UAR1
Apple16X50UARTSync1: Detected 16550AF/C/CF FIFO=16 MaxBaud=115200
Previous Shutdown Cause: 3
NVDANV50HAL loaded and registered.
DSMOS has arrived
AppleRTL8169Ethernet: Ethernet address 00:1f:d0:28:13:e3
FakeSMC: key not found BEMB, length - 1

Can you see any major errors besides the AppleHDA and the FakeSMC?

Link to comment
Share on other sites

Looking good.

 

If you're satisfied that everything is working fine then there's no need to add your SSDT tables.

 

You can check how many P-states you've got with IORegistryExplorer, they're shown somewhere in the CPU branches.

 

AppleHDA and fakesmc errors are not important (the fakesmc error should go away if you use the latest version), but the "USB controller will be unloaded across sleep" can be taken care of. Some suggestions below.

 

There is a DSDT fix for the Firewire power conservation message as well.

 

my LPC device is exactly the same as in the guide: 3a16.

Hehe, yes, according to LSPCI it is, but if you used my code example you have now patched it to 3a18. Confirm this with IORegistryExplorer. Anyway if AppleLPC.kext is loading now, then you did it right.

Screen_shot_2010_12_27_at_1.25.57_AM.png

3a18 is the device ID for the LPC device on the Intel ICH10, which is supported by AppleLPC.kext (check info.plist inside the kext to see the IDs of all supported devices). My board has ICH10R, where the LPC device has device ID 3a16, which is unsupported by AppleLPC.kext - there are no Macs with ICH10R.

I don't know how important this is or if it's important at all but I picked that device ID because it's the closest to my real device ID. This is why I asked you for your LPC device's device ID. But since your mobo has the ICH10R as well, then you should be fine using my code example as it is.

 

It's odd you're getting that USB error, I don't have that error message in the logs and since USB is part of the ICH10R as well, your USB controller is the same as mine and there should be no difference.

Maybe it's a BIOS setting. Check that USB 2.0 is enabled and that it's set to run at max speed (480 mb/sec). Set "Legacy USB" to auto and enable USB handoff if your BIOS has that setting.

 

If nothing changes after changing settings in the BIOS (it should, though) try adding USBBusFix=y to your /Extra/com.apple.Boot.plist.

 

You made the mistake of extending credibility to the OP's diagnosis.

At no point in this thread did I do such a thing. All I did was provide information on how to find what he was looking for. He would still need this information regardless of where the video card is plugged in.

When doubt was raised, I told him to re-check the location of his video card and make sure that it is plugged into a x16 slot.

 

I agree with everything you've said, except your video card/Core i7 analogy. As far as I know, broken pins on a CPU would cause malfunction and loss of functionality while using a non x16 slot with a video card would merely cause it to "run slower" but otherwise fully work.

Link to comment
Share on other sites

QUOTE (mulcyber @ Dec 26 2010, 07:59 PM) *

"You made the mistake of extending credibility to the OP's diagnosis."

 

At no point in this thread did I do such a thing. All I did was provide information on how to find what he was looking for. He would still need this information regardless of where the video card is plugged in.

When doubt was raised, I told him to re-check the location of his video card and make sure that it is plugged into a x16 slot.

 

I agree with everything you've said, except your video card/Core i7 analogy. As far as I know, broken pins on a CPU would cause malfunction and loss of functionality while using a non x16 slot with a video card would merely cause it to "run slower" but otherwise fully work.

 

His first post contained a mistake, a contradiction. OP claimed that he had his 8800 in a PCIe-x8 slot on his motherboard. He even claimed to have looked it up in his mobo manual:

"I did also look in my mobo manual and its pluged into PCI-EX_8 which is slot 2!" ... "I know that (_ADR, 0x00010000) is PCI slot 1, im not doubting that."

 

Today efp informed me that he had looked at the mobo again and that it indeed had two pcie-x16 slots and apparently no dedicated pcie-8x slot; the 2 slot was throttled to 8x speed. The difference between a pcie-x16 slot and a pcie-8x slot, it the an pcie-x16 graphics card like his 8800 will not physically fit into the pcie-x8 slot, regardless of the speed issue. That has nothing to do with a pcie-x8 card being able to fit into a pcie-x16 mobo slot.

 

Once you can confirm that the 8800 is in the least useful slot, slot 2, then the first step in solving his problem is to move the 8800 to slot 1. Now I'm entering into your area of expertise, so perhaps my next statement is mistaken. The OP wanted to know how to obtain the address of the second slot; my view is that once the 8800 card is removed from slot 2 and moved to slot 1, then determining the address of a slot (2) which now has no card occupying it, is a waste of time. Moving the card to slot 1 is the first step in troubleshooting or fixing up his system. Running tools as you provided is a subsequent step with no time wasted looking for a piece of information which will turn out to be useless (the address of slot 2). So my criticism is that you gave him what he asked for rather than what he needed. At least not in the right sequence of steps, which did not prioritize fixing the hardware/slot problem first and then doing software tests. That is the correct order to fix a computer and at this point I don't see how a Hackintosh system changes that order. It is really a lot like buying Mac compatible hardware first, before building your system and then installing software. But maybe as a Hackintosh guru you can refute that reasoning.

Link to comment
Share on other sites

an pcie-x16 graphics card like his 8800 will not physically fit into the pcie-x8 slot

If you could, it will work fine but run at x8 bandwidth. The card edge connector is slotted, you can fit any PCI-E card in any link-width PCI-E slot, although you would have to tie the video card to something, otherwise it would probably fall out....all the required connections exist on PCI-E x1, as far as I know the rest only serve to up the bandwidth.

 

I know that you know this, just saying.

 

According to the test at Tom's Hardware (link on page one of this thread) not all motherboards can work with a video card at x1 speeds though. But once they found one that did, the video cards they tested worked fine. They used the x16 slot but put taped over the video card edge connector to test it at slower link speeds.

 

my criticism is that you gave him what he asked for rather than what he needed.

True, I didn't consider at all the location of the video card until you brought it up.

 

I don't disagree with you, it's just that I assumed from the start that there was a reason he was not using slot #1.

Link to comment
Share on other sites

According to the test at Tom's Hardware (link on page one of this thread) not all motherboards can work with a video card at x1 speeds though. But once they found one that did, the video cards they tested worked fine. They used the x16 slot but put taped over the video card edge connector to test it at slower link speeds.

 

True, I didn't consider at all the location of the video card until you brought it up.

 

I don't disagree with you, it's just that I assumed from the start that there was a reason he was not using slot #1.

 

efp first wrote: "Im trying to patch my DSDT so my GeForce 8800GT 512Mb graphics cardgrey_loader.gif would get recognised."

 

I spent 4 hours just learning how to edit/save a dsdt file without getting an error message, so I'm offering a bit of a surmise. When efp changed the card to slot 1, it was immediately recognized. That would seem to indicate that those simple generic DSDTs in the database are set up to recognize or to write a pcie-x16 card by default in slot 1 and not slot 2. Do you think so?

 

There was a new release of that automatic dsdt creator this month. I thought it would read the hardware first to create the dsdt, like the Ubuntu method. But after I renamed it to DSDT.aml

and put it on the Desktop and ran it again under Multiboot (userdsdt) the settings drastically reduced my resolution. I had to fix it by running kexts again next. I think the logic of DSDTs is hard to follow and more than a little arcane. efp impressed me with his intrepid plunge into what is for me the murky waters of the dread DSDT sea. :P Thanks for your responses, Happy New Year.

Link to comment
Share on other sites

I spent 4 hours just learning how to edit/save a dsdt file without getting an error message, so I'm offering a bit of a surmise.

 

I've spent two years and I still have to google/forum search every compile error/warning. :P

 

When efp changed the card to slot 1, it was immediately recognized. That would seem to indicate that those simple generic DSDTs in the database are set up to recognize or to write a pcie-x16 card by default in slot 1 and not slot 2. Do you think so?

Yeah probably.

I don't know much about it. I haven't spent a lot of time with injecting graphics via DSDT and I try to avoid using automatic-anything tools when I can.

 

There was a new release of that automatic dsdt creator this month. I thought it would read the hardware first to create the dsdt, like the Ubuntu method. But after I renamed it to DSDT.aml

and put it on the Desktop and ran it again under Multiboot (userdsdt) the settings drastically reduced my resolution. I had to fix it by running kexts again next.

 

This is why I try to avoid using this kind of tool. I'd rather read for days and research so I can do things manually than take my chances with automatic tools.

Heh, the problem is I usually forget most of what I've learned again after a short time. Sometimes when I come across one of my old forum posts from when I was knee-deep in researching something, I don't understand half of it. :P

 

Happy New Year to you and yours too, and kudos to efp for sticking with it.

Link to comment
Share on other sites

Looking good.

 

If you're satisfied that everything is working fine then there's no need to add your SSDT tables.

 

You can check how many P-states you've got with IORegistryExplorer, they're shown somewhere in the CPU branches.

 

AppleHDA and fakesmc errors are not important (the fakesmc error should go away if you use the latest version), but the "USB controller will be unloaded across sleep" can be taken care of. Some suggestions below.

 

There is a DSDT fix for the Firewire power conservation message as well.

 

 

Hehe, yes, according to LSPCI it is, but if you used my code example you have now patched it to 3a18. Confirm this with IORegistryExplorer. Anyway if AppleLPC.kext is loading now, then you did it right.

post-378074-1293420636_thumb.png

3a18 is the device ID for the LPC device on the Intel ICH10, which is supported by AppleLPC.kext (check info.plist inside the kext to see the IDs of all supported devices). My board has ICH10R, where the LPC device has device ID 3a16, which is unsupported by AppleLPC.kext - there are no Macs with ICH10R.

I don't know how important this is or if it's important at all but I picked that device ID because it's the closest to my real device ID. This is why I asked you for your LPC device's device ID. But since your mobo has the ICH10R as well, then you should be fine using my code example as it is.

 

It's odd you're getting that USB error, I don't have that error message in the logs and since USB is part of the ICH10R as well, your USB controller is the same as mine and there should be no difference.

Maybe it's a BIOS setting. Check that USB 2.0 is enabled and that it's set to run at max speed (480 mb/sec). Set "Legacy USB" to auto and enable USB handoff if your BIOS has that setting.

 

If nothing changes after changing settings in the BIOS (it should, though) try adding USBBusFix=y to your /Extra/com.apple.Boot.plist.

 

 

At no point in this thread did I do such a thing. All I did was provide information on how to find what he was looking for. He would still need this information regardless of where the video card is plugged in.

When doubt was raised, I told him to re-check the location of his video card and make sure that it is plugged into a x16 slot.

 

I agree with everything you've said, except your video card/Core i7 analogy. As far as I know, broken pins on a CPU would cause malfunction and loss of functionality while using a non x16 slot with a video card would merely cause it to "run slower" but otherwise fully work.

 

I cant manage to find the Pstates in IORegistryExplorer but in VooDooMonitor it shows:

post-163750-1293463665_thumb.png however looking at Status tab:post-163750-1293463714_thumb.png My temps seem high! last time i checked it was around 40.

Should i be worried? :(

 

I changed the fakesmc.kext to 2.5, which i believe is the latest one. Now it gives me a slightly different error

FakeSMC: key info not found MSDS, length - 6

 

In regards to the USB controller, i looked in the BIOS. I've got USB 2.0 but no option for running at different speeds.

I also dont have USB Handoff. I have a Legacy USB StorageDetect which i enabled but didnt make any difference.

I also tried by adding the entry to boot.plist but again, it hasn't made any difference.

I dont really put the computer to sleep so i gues its fine as it is.\

 

Regarding AppleLPC kext and the DSDT, i changed them to 3a16. So i think its fine. AppleLPC is running.

 

And FireWire is fine. I dont use it. If ever i need it, im sure ill figure out how to patch it.

Link to comment
Share on other sites

Regarding AppleLPC kext and the DSDT, i changed them to 3a16.

wtf, no dude, I told you in post #27, you have changed it to 3a18. 3a16 is the original ICH10R LPC device ID, which doesn't work.

You can clearly see in the plist from AppleLPC.kext that only 3a18 is supported, which is why it loads for you now.

Screen_shot_2010_12_27_at_4.11.15_PM.png

Location of CPU power states in ioreg:

Screen_shot_2010_12_27_at_4.06.56_PM.png

 

The latest version of Fakesmc is 3.0, which can be found at the ProjectOSX forums. It works from /Extra/Extensions now.

 

Your CPU temps do seem a bit high. My 2 cores (Core 2 Duo E8500 3.16GHz) are usually around 37 degrees celcius when idle. At full load they'll barely go above 50 degrees.

 

Try this:

 

Make sure you have ACPI 2.0, ACPI APIC and all "advanced CPU features" (except CPU ID Limit) enabled in the BIOS.

Use Everest under Windows to extract your SSDT tables, as shown in the screenshots here:

http://www.insanelymac.com/forum/index.php...p;#entry1468558

name the SSDT tables as described here:

http://www.insanelymac.com/forum/index.php?showtopic=225766

Place the SSDT tables in /Extra and add DropSSDT=y to your com.apple.Boot.plist.

Reboot and check temps.

Link to comment
Share on other sites

wtf, no dude, I told you in post #27, you have changed it to 3a18. 3a16 is the original ICH10R LPC device ID, which doesn't work.

You can clearly see in the plist from AppleLPC.kext that only 3a18 is supported, which is why it loads for you now.

post-378074-1293473574_thumb.png

Location of CPU power states in ioreg:

post-378074-1293473603_thumb.png

 

The latest version of Fakesmc is 3.0, which can be found at the ProjectOSX forums. It works from /Extra/Extensions now.

 

Your CPU temps do seem a bit high. My 2 cores (Core 2 Duo E8500 3.16GHz) are usually around 37 degrees celcius when idle. At full load they'll barely go above 50 degrees.

 

Try this:

 

Make sure you have ACPI 2.0, ACPI APIC and all "advanced CPU features" (except CPU ID Limit) enabled in the BIOS.

Use Everest under Windows to extract your SSDT tables, as shown in the screenshots here:

http://www.insanelymac.com/forum/index.php...p;#entry1468558

name the SSDT tables as described here:

http://www.insanelymac.com/forum/index.php?showtopic=225766

Place the SSDT tables in /Extra and add DropSSDT=y to your com.apple.Boot.plist.

Reboot and check temps.

 

Sorry i was in another world. Been doing loads of university work, i've just been real tired.

What got me confused was reading another thread which DID show changing the LPC to 3a16. But i donno maybe i missread that too...

 

I did extract the ACPI tables and added DropDDST. Perhaps it did help. My temps at idle are at around 39-40. But installing LittleSnitch has raised by 1 or 2.

The funny thing i dont understand is in my BIOS it shows CPU temp around 28-29C.

I enabled a CPU fan warning if the temps go above 60 so i think i should be alright.

 

I think thats it. Thank you very much for all the help! I learned alot! (at least in my book)

 

Happy New Year!!!!

Link to comment
Share on other sites

 Share

×
×
  • Create New...