netkas.org forum

General Category => PC EFI => Topic started by: MoDs on January 14, 2008, 09:12:41 PM



Title: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 14, 2008, 09:12:41 PM
Introduction (for noobs)

This tutorial is divided into three parts: Introduction, GFX, and SFX...

What's that?
I'm quite sure that EFI Emulation (PC EFI) has changed the whole OSx86 scene. It took the whole scene into a whole new level, now, we can have a PC running Mac OS X with stock kernel and kexts. And yet, the diverse combinations of components and configurations that happen to be the case in the PC world has lead to the creation of numerous fixes and howtos for graphics, audio, usb, ethernet, and many others.

How do these fixes work?
Almost all of them are kernel extensions (.kext) that are put in /System/Library/Extensions/.

Mac OS is using something called "Device Tree". This is a map used to guide the kernel load the right driver for each device. These kexts "plug" necessary data into the Device Tree during boot.

NVinject, Titan, and Nitat merely detect your graphics card model and plugs the right data into that map.
ALCinject does the same thing for audio.

This class of kexts are commonly called injectors.

PS: Injectors merely add "guiding data" into the device tree; Mac OS still has to have the appropriate kernel extensions (drivers) for every device. That means for any device X, even with the right data in the device tree, if no drivers are present, the device won't work.

PC EFI "Pluggable Strings"
Currently, PC EFI v8.0 supports what is called "pluggable strings". This can be used to add or plug data (properties) into the device tree during boot using an arbitrary "string" provided by the user.

The "string" is a very long number inserted into the file "/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"

Example string:
Code:
a20300000100000001000000960300001400000002010c00d041030a010000000101060000010101060000007fff040014000000400032002c006e0061006d00650000001100000073656e736f722d706172656e7436000000400032002c00680077006300740072006c002d0070006100720061006d0073002d00760065007200730069006f006e00000008000000000000021c0000006400650076006900630065005f0074007900700065000000100000004e5644412c4765466f7263650e0000006e0061006d00650000000f0000004e5644412c506172656e7422000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000006d006f00640065006c0000001a0000004e5649444941204765466f726365203736303020475322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c617912000000400032002c007200650067000000080000000000000222000000400032002c006400650076006900630065005f0074007900700065000000120000004e5644412c6770752d64696f646520000000400032002c0063006f006d00700061007400690062006c0065000000160000004e5644412c73656e736f722d706172656e7422000000400032002c002300730069007a0065002d00630065006c006c0073000000080000000000000020000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616314000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d413a000000400032002c0068007700730065006e0073006f0072002d0070006100720061006d0073002d00760065007200730069006f006e000000080000000000000226000000400032002c0023006100640072006500730073002d00630065006c006c0073000000080000000000000114000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d61631e00000072006f006d002d007200650076006900730069006f006e0000000800000033303232100000004e00560043004100500000001800000004000000000003000c00000000000007000000000e0000004e00560050004d0000002000000001000000000000000000000000000000000000000000000000000000

Initially, that file looks something like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string></string>
</dict>
</plist>

You add the "string" by adding a new key called "device-properties" as shown in the following example:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string></string>
<key>device-properties</key>
<string>c50400000100000002000000230100000700000002010c00d0...</string>
</dict>
</plist>

NOTE: You can't edit the file (com.apple.Boot.plist) while its in the path "/Library/Preferences/SystemConfiguration/". You will have to copy it to your desktop, modify it, then move it back replacing the old one.

But why use "pluggable strings" anyway? (more critique needed)
Current graphics injectors don't support all cards. For instance, nVidia's 8'th generation cards aren't supported by all injectors. This is so because initially, mac os didn't have drivers for these cards. But now, the 10.5.2 update has the drivers for these cards. Still, not all injectors support them.

Now, there are two options:
1- Wait for new versions of these injectors (bad idea).
2- Do what these injectors do ourselves using "pluggable strings"

The second approach has some advantages:
1- No need to wait.
2- Get rid of additional 3rd part kexts.
3- Get a more real-mac-like PC!

Ok, graphics done, what about audio?
As i said, ALCinject is used to modify the device tree for supporting ALCxxx audio cards (AZALIA). Using the same concept as above, we simply get rid of that kext and add the appropriate data to the device tree ourselves.

I read somewhere that the Ethernet is just another candidate
Why not? Maybe!

NOTE: The "String" we are talking about is also called HEX string, and may be downloaded as a hex file (*.hex)

SEE NEXT...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 14, 2008, 09:15:47 PM
Down to business

First get the latest version of gfxutil from http://forum.netkas.org/index.php/topic,64.0.html

EFI Graphics
1. Go get the appropriate hex files for your graphics card:
- for nVidia users: http://forum.netkas.org/index.php/topic,55.0.html
- for ATI users: http://forum.netkas.org/index.php/topic,61.0.html
- for Intel GMA users: http://forum.netkas.org/index.php/topic,58.0.html

If you've got a HEX file, be sure to remove all lines using TextEdit. A hex string should be in one line. Then use gfxutil to convert it to plist:
Code:
./gfxutil -s -n -v -i hex -o xml in.hex out.plist

* in.hex - input hex file you downloaded.
* out.plist - is the output file you want.

NOTE: If you're using a nVidia 8xxx card AND don't have your leopard upgraded to 10.5.2, be sure to have the 10.5.2 kexts and opengl... Just search for it.

This is an example plist for 7600GS:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>@2,#adress-cells</key>
<string>0x01000000</string>
<key>@2,#size-cells</key>
<string>0x00000000</string>
<key>@2,compatible</key>
<string>NVDA,sensor-parent</string>
<key>@2,device_type</key>
<string>NVDA,gpu-diode</string>
<key>@2,hwctrl-params-version</key>
<string>0x02000000</string>
<key>@2,hwsensor-params-version</key>
<string>0x02000000</string>
<key>@2,name</key>
<string>sensor-parent</string>
<key>@2,reg</key>
<string>0x02000000</string>
<key>NVCAP</key>
<data>
BAAAAAAAAwAMAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 7600 GS</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rom-revision</key>
<string>0x32323033</string>
</dict>
</dict>
</plist>

2. Now, you need to know your device path for your graphics card. The easiest way of these is to use gfxutil:
Code:
./gfxutil -f display

The output will be something similar to:
Code:
DevicePath = PciRoot(0x0)/Pci(0x1,0x0)Pci(0x0,0x0)
Here my device path is PciRoot(0x0)/Pci(0x1,0x0)Pci(0x0,0x0)

3. Put your device path in place of the old one in the plist file you got earlier.

4. Optional: If you are currently using NVinject or ATIinject:
    a. Open Console in Applications > Utilities
    b. Click "Show Log List" and highlight system.log
    c. In the Search field, write NVinject or ATIinject.
    d. Look at the current plist you got and see if values in the different keys are identical to what you see in the log. If not, modify the plist accordingly.

5. Convert plist to hex again
Code:
./gfxutil -i xml -o hex in.plist out.hex

6. Add the output hex string into com.apple.Boot.plist as shown in the Introduction part.

7. Remove any injectors you may have for you graphics card: NVinject.kext, ATIinject.kext, Titan.kext, Nitat.kext, ... etc.

8. Delete then rebuild kext cache:
Code:
sudo rm -rf /System/Library/Extensions.mkext
sudo kextcache -k /System/Library/Extensions

9. Reboot and cross your fingers!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 14, 2008, 09:16:51 PM
EFI Audio

Known to be supported: ALCxxx and Sigmatel (thanks to macgirl). Not sure about the others. However, this guide is mainly for ALCxxx users!

Thanks to tom3q, now we can add support for ALCxxx audio cards (and others!) without using ALCinject.kext. However, you still have to use modified AppleHDA.kext.

In brief, you will have to have a working sound before switching to the EFI method. For best results, use Taruga's AppleHDA patcher to get AppleHDA.kext modified the right way. Refer to the main topic dedicated to that patcher: http://forum.insanelymac.com/index.php?showtopic=32859

NOTE: Refer to the "Graphics" section if you got stuck at some point as i won't repeat details i said there here again (laziness rule!!) -- sorry ;D

I already have a GFX string
No problem, additional keys and data necessary for your SFX will be added to your current working gfx plist file.

Open GFX plist file and add the following italic lines in the right place after the gfx part.
--------------------------------------------------------
...
...
      <key>rom-revision</key>
      <string>0x32323033</string>
   </dict>

<key>PciRoot(0x1)/Pci(0x1b,0x0)</key>
   <dict>
      <key>PinConfigurations</key>
      <string></string>
      <key>built-in</key>
      <string>0x00</string>
      <key>layout-id</key>
      <string>0x0000000c</string>
      <key>revision-id</key>
      <string>0x00000001</string>
      <key>subsystem-id</key>
      <string>0x0000a002</string>
      <key>subsystem-vendor-id</key>
      <string>0x00001458</string>
      <key>vendor-id</key>
      <string>0x00008086</string>
   </dict>


</dict>
</plist>
--------------------------------------------------------

I don't have a GFX hex yet
Open TextEdit and write the following (without the --- lines)
--------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1b,0x0)</key>
   <dict>
      <key>PinConfigurations</key>
      <string></string>
      <key>built-in</key>
      <string>0x00</string>
      <key>layout-id</key>
      <string>0x0000000c</string>
      <key>revision-id</key>
      <string>0x00000001</string>
      <key>subsystem-id</key>
      <string>0x0000a002</string>
      <key>subsystem-vendor-id</key>
      <string>0x00001458</string>
      <key>vendor-id</key>
      <string>0x00008086</string>
   </dict>
</dict>
</plist>
--------------------------------------------------------

VERY IMPORTANT: Make sure you use "Plain Text" in TextEdit. Format -> Make Plain Text

Continue for both cases

Now the entries in bold are the ones that you will have to change.

1. For the device path PciRoot(0x1)/Pci(0x1b,0x0), get your own using gfxutil: -- see NOTE**
Code:
./gfxutil -f AZAL

2. Now open IORegistryExplorer from /Developer/Applications/Utilities/
  - If you don't have it, download url can be found in Links section.

3. Choose "IODeviceTree" and browse to node "AZAL" as shown in the following picture: -- see NOTE**

(http://img167.imagevenue.com/loc1108/th_40696_screen_122_1108lo.jpg) (http://img167.imagevenue.com/img.php?image=40696_screen_122_1108lo.jpg)

4. Correct bold values in plist from properties you get in IORegistryExplorer (in the right hand side)

NOTE: Data values such as <d8 27 00 00> is converted to 0x000027d8. That is, add 0x, then read the data value from right to left.

5. After modifying the plist, save it, create hex file.

6. Put the result hex string into com.apple.Boot.plist. If you already have one there, just replace it.

7. Delete injectors: AppleAzaliaAudio.kext, ALCinject.kext, ...

8. Delete and rebuild caches, then reboot.


** NOTE: If you don't have AZAL, then maybe you can get your sound card device id from windows or using "lspci" command (it's a linux command, but there's a ported mac os version. see download url in Links section). After you get dev id for sound card, find it in IORegistryExplorer and know its name then use the following command to get device path:
Code:
./gfxutil -f <name>
* Make sure to change <name>.
** If <name> contains "@xxxx" then remove everything after "@" and remove the "@" too! EX: "AZAL@1b" --> "AZAL"

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Links

* IORegistryExplorer: http://www.mediafire.com/?4b2ap1lagzh or http://www.megaupload.com/?d=976F0NH5 or http://rapidshare.com/files/83950719/ioreg.zip.html

* lspci for mac os (courtesy of frantisheq): http://www.mediafire.com/?dqnwm2nxr03

* Property List Editor: http://www.mediafire.com/?39xeet39mwg

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Well, i guess that's it for now... Comments and corrections are always welcomed.
I hope it helped you all :)

Last Updated: 01/15/2008 1:39 PM GMT

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: macgirl on January 14, 2008, 11:13:11 PM
EFI Audio

Currently, only ALCxxx audio chips are supported. Not sure about the others.
Not true, my Soundcard is not ALCxxx but Sigmatel and I succesfuly created gfx string with my sound "properties", I removed ALCinject and it works.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on January 14, 2008, 11:18:21 PM

Thank You very much MoDs

Your guide is very complete and well done.Very easy for reading even.

Thumbs Up.

p.s. I got GFX string working on my laptop, now it's time to get a shot with the faboulous SFX one!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 14, 2008, 11:19:08 PM
EFI Audio

Currently, only ALCxxx audio chips are supported. Not sure about the others.
Not true, my Soundcard is not ALCxxx but Sigmatel and I succesfuly created gfx string with my sound "properties", I removed ALCinject and it works.

Corrected. Thanks.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: frantisheq on January 14, 2008, 11:20:32 PM
EFI Audio

Currently, only ALCxxx audio chips are supported. Not sure about the others.
Not true, my Soundcard is not ALCxxx but Sigmatel and I succesfuly created gfx string with my sound "properties", I removed ALCinject and it works.

i can confirm that my Sigmatel 9227 is working


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 14, 2008, 11:43:57 PM
Guide is updated. Improvements mainly done for the EFI Audio section.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bs0d on January 15, 2008, 12:11:51 AM
Top Guide.

We are blessed on this forum with great people .. many thanks to you all.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: wig72 on January 15, 2008, 01:33:29 AM
ioreg Link is broken ?!? Pls. reupload. Thanks & rgds., Wig


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: B666 on January 15, 2008, 02:46:33 AM
ALC883 = PERFECT!!!!!!
MoDs, THANX A LOT for your atitude, this tutorial is perfect!!!!!!!
This Forum is perfect, thanx for everyone here!!!!!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: BladeRunner on January 15, 2008, 03:03:34 AM
Has anyone attempted to get USB audio to work using gfx strings?

I have a small set of speakers that connect via a usb port. They are amplified and draw power from the usb bus. They show in the system profiler, but I can't locate them in the ioreg device tree. The reason for asking is that I need to keep an old apple usb audio kext to make them work.

Code:
USB Bus:

  Host Controller Location: Expansion Slot
  Host Controller Driver: AppleUSBOHCI
  PCI Device ID: 0x0035
  PCI Revision ID: 0x0043
  PCI Vendor ID: 0x1033
  Bus Number: 0x01

USB Audio:

  Version: 0.10
  Bus Power (mA): 500
  Speed: Up to 12 Mb/sec
  Manufacturer: C-Media INC.
  Product ID: 0x0001
  Vendor ID: 0x0d8c

Does anyone think it is possible to correct this using the gfx strings?

bladeRunner


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: mcmatrix on January 15, 2008, 09:51:10 AM
Has anyone attempted to get USB audio to work using gfx strings?

I have a small set of speakers that connect via a usb port. They are amplified and draw power from the usb bus. They show in the system profiler, but I can't locate them in the ioreg device tree. The reason for asking is that I need to keep an old apple usb audio kext to make them work.

Code:
USB Bus:

  Host Controller Location: Expansion Slot
  Host Controller Driver: AppleUSBOHCI
  PCI Device ID: 0x0035
  PCI Revision ID: 0x0043
  PCI Vendor ID: 0x1033
  Bus Number: 0x01

USB Audio:

  Version: 0.10
  Bus Power (mA): 500
  Speed: Up to 12 Mb/sec
  Manufacturer: C-Media INC.
  Product ID: 0x0001
  Vendor ID: 0x0d8c

Does anyone think it is possible to correct this using the gfx strings?

bladeRunner

I think configuring usb connected devices is a little bit tricky at moment.
You can add settings to USB controller which is pci device.
But right now gfxutil doesnt support devices connected to USB.
Maybe sometime i will add full efi device path support to util.

 


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: gotoh on January 15, 2008, 11:11:05 AM
But why use "pluggable strings" anyway?
Current graphics injectors don't support all cards. For instance, nVidia's 8'th generation cards aren't supported. This is so because initially, mac os didn't have drivers for these cards. But now, the 10.5.2 update has the drivers for these cards. Still, injectors don't support them.
that's not true... GeForce 8 are supported by natit or nvinject...
GFX string is useful and a quite proper way to have your card working when you don't need to swap hardware often. Injecter method is a bit more flexible. But still there are things which has to be modded to get full support like correct display detection etc...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 15, 2008, 11:21:34 AM
Minor corrections to the Introduction part and mirrors of IORegistryExplorer has been added. Look at the tutorial.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on January 15, 2008, 12:44:09 PM

How about posting PList Editor as well....


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 15, 2008, 02:41:21 PM

How about posting PList Editor as well....

Created a "Links" section and added plist editor as well...

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: eberts on January 15, 2008, 10:00:53 PM
Hmm, there seem to be even more boards that don't work with PC_EFI. I tried several strings and I followed the tutorial step-by-step: My Gigabyte 8i945GMF-RH does neither work with any gfx-string nor with a sound string.  :'( which is really strange cause I thought it was very compatible...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 16, 2008, 11:46:40 AM
Hmm, there seem to be even more boards that don't work with PC_EFI. I tried several strings and I followed the tutorial step-by-step: My Gigabyte 8i945GMF-RH does neither work with any gfx-string nor with a sound string.  :'( which is really strange cause I thought it was very compatible...

Are you saying that your mobo doesn't work with PC_EFI? Because if PC_EFI v8.0 isn't installed, non of this EFI GFX/SFX will work.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: eberts on January 16, 2008, 02:51:34 PM
I installed ver 8.0 correctly. I can see changes in IORegistryExplorer (btw: is it right to have two configuration-tables under efi in IODeviceTree? I saw a screenshot from netkas having just one). I also downgraded to version 6 because I read about the problems with EFI 8 with Gigabyte P35...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 16, 2008, 11:09:36 PM
I installed ver 8.0 correctly. I can see changes in IORegistryExplorer (btw: is it right to have two configuration-tables under efi in IODeviceTree? I saw a screenshot from netkas having just one). I also downgraded to version 6 because I read about the problems with EFI 8 with Gigabyte P35...

I'm not sure whether v6 supports efi strings. Sorry!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MeAngry on January 18, 2008, 04:03:40 PM
Thank you so much for this tutorial MoDs, and netkas ofcourse for all the great work on PC-EFI!

I've got the following hardware perfectly working due to a GFXstring made following this tutorial:

ASUS P5WDH Deluxe
+ Realtek ALC882M
+ Marvel Yukon 2 Gbit LAN (TimeMachine fix)
+ NVIDIA GeForce 8800GTS

These all work great now without the use of any EFI injectors. :D


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: eberts on January 19, 2008, 02:28:14 PM
Hmm, there seem to be even more boards that don't work with PC_EFI. I tried several strings and I followed the tutorial step-by-step: My Gigabyte 8i945GMF-RH does neither work with any gfx-string nor with a sound string.  :'( which is really strange cause I thought it was very compatible...

Solved, it works now! My com.apple.Boot.plist was messed. Couldn't open it with Property List Editor. I used to edit it in terminal with nano before. Now graphics and sound work perfectly. Thanks a lot for your help!  :D Special thanks to fassl for your hints to check IOregistryExplorer for device-properties entries.  ;)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 19, 2008, 04:03:32 PM
Hmm, there seem to be even more boards that don't work with PC_EFI. I tried several strings and I followed the tutorial step-by-step: My Gigabyte 8i945GMF-RH does neither work with any gfx-string nor with a sound string.  :'( which is really strange cause I thought it was very compatible...

Solved, it works now! My com.apple.Boot.plist was messed. Couldn't open it with Property List Editor. I used to edit it in terminal with nano before. Now graphics and sound work perfectly. Thanks a lot for your help!  :D Special thanks to fassl for your hints to check IOregistryExplorer for device-properties entries.  ;)

Great :)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: conan on January 20, 2008, 05:12:40 PM
Editing com.boot.apple.plist and inserting hex string etc. with textedit doesnt seem to work
for me, OSX gives me plist errors, and shows the "hold down your powerbutton"
message (Leopard 10.5.1).

i used a plist editor and so far no errors anymore, but still no change in resolution or
qi/qe   ???

hp530/gma950 


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bulyot on January 22, 2008, 01:42:29 PM
i have a question:
the gfx-string included in pc_efi v8 of netkas...is that the hex file to be converted to plist using gfxutil?.....or its the one that will put in com.apple.boot.plist??


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 22, 2008, 03:38:00 PM
i have a question:
the gfx-string included in pc_efi v8 of netkas...is that the hex file to be converted to plist using gfxutil?.....or its the one that will put in com.apple.boot.plist??

These are indeed hex strings, but you will have to convert them to plist first to tweak some properties (device-path, ...), then convert them back to hex to use in com.apple.Boot.plist.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bulyot on January 22, 2008, 04:17:00 PM
tnx MoDs

btw..its *.txt extension not .hex....wat will i do? just run the command and the input file ill use is the filename (880gts320mb.txt?)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 23, 2008, 01:30:14 PM
tnx MoDs

btw..its *.txt extension not .hex....wat will i do? just run the command and the input file ill use is the filename (880gts320mb.txt?)

Extensions are not important, just make sure to pass the right name of file to the gfxutil while converting.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bulyot on January 23, 2008, 02:19:22 PM
is this right:

./gfxutil -s -n -v -i hex -o xml 8800gts320.txt out.plist?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on January 24, 2008, 12:42:01 AM
is this right:

./gfxutil -s -n -v -i hex -o xml 8800gts320.txt out.plist?

Yes, it should be.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: westwaerts on January 26, 2008, 08:34:43 PM
apprechiating everyones work for this
but for my understanding 2 questions:

how to check the efi version ( i have one running, but simply dont know which)?

the theory of string appendices i got, but whats the effort ?
will the graphic errors, that appear randomly in preview be gone ( or is it a beta drivers fact)?






Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: countercraft on January 31, 2008, 06:13:07 AM
Hi guys, I've followed this guide, but when I reboot the PC, the system hangs up before start the GUI. I read somewhere this work only for mobo with Intel chipset. My chipset is VIA, but I'm running PC_EFI v8 perfectly. My processor is a Celeron 420.

So, it's true that only works with Intel mobos?

thanks


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on January 31, 2008, 02:10:32 PM
Hi Mods,

I am so excited to learn about this. I have some questions tho. I have a ACER M5630 quad core, with  Kalyway installed, GUID and pc_efi_v80. I am dying to get the ATI HD2400pro to work. (tried Triakis' package without luck) So I follow the guide to the letter twice without success. I boot up the machine, it makes absolute no different. I am still getting only one resolution 1024x768. Is version 8 efi the right one to use or is there a newer one I don't know of?

Some other questions in general, where did these string come from in the first place? When I downloaded from the link for ATI, there are two files, one is R2400.hst and the other is R2400.bst, what is the .bst file for? I also need a string for the ALC888 ICH7 for the sound. And could this method be apply to WiFi cards as well.

Thank you so much.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on January 31, 2008, 07:09:15 PM

I assume you verified your device path(s) and modified downloaded strings accordingly?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: 0xdeadbeef on January 31, 2008, 10:52:47 PM
I am dying to get the ATI HD2400pro to work. (tried Triakis' package without luck) So

I don't think anyone has had success with the 2400. I would like to know what exactly was done to the power-management of Triakis to see if we can do the same with Iago, but since i don't have an original Triakis, I can't compare


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on January 31, 2008, 11:15:01 PM
Hum, that's very disappointing. I did get the ATI HD2400 Pro to response after I put the hex of the plist in com.apple.Boot.plist. It gets as far as the a blue screen then it hangs there. But I guess it's good that at least it was responding. Here is the plist I have, funny that the dev path is the same as in the tutorial. Does this look right? I wonder why the 2400 is such a PITA? Is there another card any of you gurus can recommend ? Does the 2600 have a great chance of success?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
   <dict>
      <key>@0,compatible</key>
      <string>ATY,Iago</string>
      <key>@0,device_type</key>
      <string>display</string>
      <key>@0,display-connect-flags</key>
      <string>0x34323031</string>
      <key>@0,name</key>
      <string>ATY,Display-A</string>
      <key>@1,compatible</key>
      <string>ATY,Iago</string>
      <key>@1,device_type</key>
      <string>display</string>
      <key>@1,display-connect-flags</key>
      <string>0x34323031</string>
      <key>@1,name</key>
      <string>ATY,Display-B</string>
      <key>ATY,EFIVersion</key>
      <string>01.00.207</string>
      <key>ATY,EFIVersionBios</key>
      <string>113-B22501-X22B</string>
      <key>ATY,Rom#</key>
      <string>113-B2250F-207</string>
      <key>ATY,memsize</key>
      <string>268435456</string>
      <key>ATY_EFIEnabledMode</key>
      <string>0x32</string>
      <key>VRAM,totalsize</key>
      <string>268435456</string>
      <key>device_type</key>
      <string>ATY,IagoParent</string>
      <key>model</key>
      <string>ATI,RadeonHD2400</string>
      <key>name</key>
      <string>ATI Radeon HD 2400 EFI</string>
   </dict>
</dict>
</plist>

A dump question,

is this the whole thing I should put in the com.apple.Boot.plist? It's LONG!
3d0300000100000001000000310300001100000002010c00d041030a000000000101060000010101060000007fff04000e0000006e0061006d00650000001a00000041544920526164656f6e204844203234303020454649220000005600520041004d002c0074006f00740061006c00730069007a00650000000d0000003236383433353435361c0000006400650076006900630065005f0074007900700065000000120000004154592c4961676f506172656e742a0000004100540059005f0045004600490045006e00610062006c00650064004d006f0064006500000005000000322a0000004100540059002c00450046004900560065007200730069006f006e00420069006f0073000000130000003131332d4232323530312d58323242220000004100540059002c00450046004900560065007200730069006f006e0000000d00000030312e30302e32303736000000400031002c0064006900730070006c00610079002d0063006f006e006e006500630074002d0066006c006100670073000000080000003130323422000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000006d006f00640065006c000000140000004154492c526164656f6e48443234303022000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000004100540059002c006d0065006d00730069007a00650000000d00000032363834333534353620000000400031002c0063006f006d00700061007400690062006c00650000000c0000004154592c4961676f14000000400030002c006e0061006d0065000000110000004154592c446973706c61792d41160000004100540059002c0052006f006d0023000000120000003131332d4232323530462d32303736000000400030002c0064006900730070006c00610079002d0063006f006e006e006500630074002d0066006c006100670073000000080000003130323414000000400031002c006e0061006d0065000000110000004154592c446973706c61792d4220000000400030002c0063006f006d00700061007400690062006c00650000000c0000004154592c4961676f

Sorry for the long post. I am just learning. Thanks again for the tutorial, I learn a lot. ::)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: brywalker on February 02, 2008, 03:39:00 AM
I don't understand why I am having so much trouble here. I really really don't. I am very technically inclined, but this just never ever works.

When I try to convert my hex:

Code:
6c0200000100000001000000600200000d00000002010c00d041030a010000000101060000010101060000007fff04001e0000004100540059002c00560065006e0064006f0072004900440000000600000002101c0000006400650076006900630065005f00740079007000650000000f0000004154592c416c6f70696173220000004100540059002c00450046004900560065007200730069006f006e0000000e00000030312e30302e323139001e0000004100540059002c004400650076006900630065004900440000000600000080720e0000006e0061006d0065000000150000004154592c416c6f70696173506172656e7422000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c617922000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000006d006f00640065006c000000130000004154492c526164656f6e583139353020000000400031002c0063006f006d00700061007400690062006c00650000000f0000004154592c416c6f7069617314000000400030002c006e0061006d00650000000f0000004154592c416c6f7069617314000000400031002c006e0061006d00650000000f0000004154592c416c6f70696173200000004100540059002c0043006f007000790072006900670068007400000035000000436f7079726967687420414d4420496e632e20416c6c205269676874732052657365727665642e20323030352d3230303820000000400030002c0063006f006d00700061007400690062006c00650000000f0000004154592c416c6f70696173

To plist via:

Code:
./gfxutil -s -n -v -i hex -o xml in.hex out.plist

I get:

Code:
./gfxutil: cannot convert from hex to bin, invalid hex inputfile 'in.hex'!

Fantastic.

Well I have another plist that I can convert back to test (taken directly from this forum)...

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>@2,#adress-cells</key>
<string>0x01000000</string>
<key>@2,#size-cells</key>
<string>0x00000000</string>
<key>@2,compatible</key>
<string>NVDA,sensor-parent</string>
<key>@2,device_type</key>
<string>NVDA,gpu-diode</string>
<key>@2,hwctrl-params-version</key>
<string>0x02000000</string>
<key>@2,hwsensor-params-version</key>
<string>0x02000000</string>
<key>@2,name</key>
<string>sensor-parent</string>
<key>@2,reg</key>
<string>0x02000000</string>
<key>NVCAP</key>
<data>
BAAAAAAAAwAMAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 7600 GS</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rom-revision</key>
<string>0x32323033</string>
</dict>
</dict>
</plist>

I get:
Code:
./gfxutil: invalid property list xml inputfile 'in.plist.rtf'!

Bollocks.

What could be going wrong here?????





Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 02, 2008, 04:23:02 AM
Did you type exactly as this:
./gfxutil -s -n -v -i hex -o xml in.hex out.plist

If so the in.hex sould be YourFileName.hex


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 02, 2008, 02:39:52 PM
Did you type exactly as this:
./gfxutil -s -n -v -i hex -o xml in.hex out.plist

If so the in.hex sould be YourFileName.hex

You are correct, sir....


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: brywalker on February 02, 2008, 05:21:11 PM
Did you type exactly as this:
./gfxutil -s -n -v -i hex -o xml in.hex out.plist

If so the in.hex sould be YourFileName.hex

Yes. In fact, I copied and pasted directly into terminal. I also renamed the file to in.hex (via mv) to insure that it wasn't something on my end.

I have no idea what could be going wrong unless textedit is playing tricks on me. Maybe I do it all on notepad on the PC and transfer it over.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: mtrr on February 02, 2008, 05:24:44 PM
do a "file yourinfile" in terminal, I bet you're not using a plaintext file as input. textedit defaults to rtf (AFAIR).

cheers


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 02, 2008, 06:31:38 PM
Hi,

Is there a vid card that works for sure with any of these strings or even the inject method? I don't care whether it's a nVidia or Radeon, as long as it's PCIe 16 and  works in dual head 1680x1050 and 1280x1024, I prefer to have one DVI and one VGA, two VGAs  is ok as well. Any recommendation? I don't understand why the ATIRadeon2400Pro is such a PITA as I have read so many posts and there are very few mention about this card

TIA


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 02, 2008, 09:45:24 PM
Yes. In fact, I copied and pasted directly into terminal. I also renamed the file to in.hex (via mv) to insure that it wasn't something on my end.

I have no idea what could be going wrong unless textedit is playing tricks on me. Maybe I do it all on notepad on the PC and transfer it over.

cheers

Just a thought, I don't know for sure since I didn't write the gfxutil, it may be using some frameworks from the library, if so then you will need to have xcode installed, d/l free from Appe. One way or the other, it you like to play with OS X, always nice to have xcode handy cause it contains lotta goodies. :)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: 0xdeadbeef on February 03, 2008, 12:33:18 AM
I have no idea what could be going wrong unless textedit is playing tricks on me. Maybe I do it all on notepad on the PC and transfer it over.

Textedit is a complete fuckup. Use pico or vi in a terminal. Pico is easier.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 03, 2008, 12:34:24 AM
Is there a vid card that works for sure with any of these strings or even the inject method? I don't care whether it's a nVidia or Radeon, as long as it's PCIe 16 and  works in dual head 1680x1050 and 1280x1024

I have XFX Nvidia 7600gt 256Mb that works perfectly with strings. Dual DVI out, PCIe 16, full resolution...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 03, 2008, 04:02:35 AM
I have XFX Nvidia 7600gt 256Mb that works perfectly with strings. Dual DVI out, PCIe 16, full resolution...

Thanks Time ed, So you have CI/QE full res, all the good stuffs? Is the string one of them in the d/l? I will check it out.

Textedit is a complete fuckup. Use pico or vi in a terminal. Pico is easier

It is indeed annoying that TextEdit make rtf as default. But you can make txt as default in the preferences tho. I actually use Smultron. It's a really nice editor.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 03, 2008, 02:11:51 PM
Yes, all the QE/CI goodies as well. I have posted my strings and plists in this thread and nvidia thread....

I prefer vi, but its the only editor I know how to use.

We're not gonna have a vi/emacs/pico/nano flame war are we? :)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 03, 2008, 03:48:04 PM
Thanks time ed, In the BIOS of my machine, the APIC mode was enabled by default, I had to disable it otherwise Leopard won't boot. I am wondering if this APIC mode thing has anything to do with the vid card?

I am still trying to get the ATI Radeon2400Pro to work. I am so tending to rush out to buy the nVidia but I feel like I am cheating if I take the easy rout so I think I am going to exhaust every possibility first. If I can ever get it to work other ppl can use my string without string attached. :)

The set up: ATI card, VGA output to a LCD 1280x1024, DVI output to a LCD 1680x1050. There's only one resolution for both monitor in Display Preference 1024x768 and it's in mirror mode. No way to set xinerama mode.

Symtom:
After making sure the devPath is correct, I put in the string I created in com.apple.Boot.plist, reboot. The  VGA turns  blue, no cursor, just stuck there and the DVI is completely cut off. No Signal.

Seeking cure:

Here is my plist:
......
<dict>
      <key>@0,compatible</key>
      <string>ATY,Iago</string>
      <key>@0,device_type</key>
      <string>display</string>
      <key>@0,display-connect-flags</key>
      <string>0x34323031</string>
      <key>@0,name</key>
      <string>ATY,Display-A</string>
      <key>@1,compatible</key>
      <string>ATY,Iago</string>
      <key>@1,device_type</key>
      <string>display</string>
      <key>@1,display-connect-flags</key>
      <string>0x34323031</string>
      <key>@1,name</key>
      <string>ATY,Display-B</string>
      <key>ATY,EFIVersion</key>
      <string>01.00.207</string>
      <key>ATY,EFIVersionBios</key>
      <string>113-B22501-X22B</string>
      <key>ATY,Rom#</key>
      <string>113-B2250F-207</string>
      <key>ATY,memsize</key>
      <string>268435456</string>
      <key>ATY_EFIEnabledMode</key>
      <string>0x32</string>
      <key>VRAM,totalsize</key>
      <string>268435456</string>
                <key>device_type</key>
      <string>ATY,IagoParent</string>
      <key>model</key>
      <string>ATI,RadeonHD2400</string>
      <key>name</key>
      <string>ATI Radeon HD 2400 EFI</string>
   </dict>
...

I did a step by step trace of the cause of the problem, at the point <key>device_type</key> <string>ATY,IagoParent</string>, the problem starts. Before then, it didn't make any improvement but it it didn't cuase the screen to go blue and the other gone dead. So apparently ATY is not a parent, How can I make it the parent? Viagra?

I am not quite understanding everthing in the plist either, like:
1. <key>@0,compatible</key> compatible to what?
2.<key>@0,display-connect-flags</key> <string>0x34323031</string> Does this mean the display resolution and depth?
3. All that about EFI version, EFI bios version, , I assume I use the the right version since I installed pc_efi_v8, am I correct?
4. What about the ATY rom? How can I find out whether it is the right one?

Whew! long post and thanks for reading.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 03, 2008, 07:26:18 PM
Not sure about APIC.

Pc-efi version is correct.

Do plist enties match properties for device found in your IOReg?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: pnoytechie on February 07, 2008, 06:40:25 PM
Please help... i'm totally lost.

Please see attached files...

This is my command for building hex for my ALC888:
Code:
./gfxutil -i xml -o hex in.plist out.hex

but what I get is all...
Code:
./gfxutil: invalid property list xml inputfile 'in.plist'!

what's wrong?

This is my command to convert the gfxstring from PC_EFI_V80 package (8800gts320mb):
Code:
./gfxutil -i hex -o xml vid.hex vid.plist

and it gives me:
Code:
./gfxutil: cannot parse gfx data from hex input file 'vid.hex'!

so now i don't know what to do, and totally lost.

what's wrong? could someone enlighten me? please.

thanks in advance.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: pnoytechie on February 07, 2008, 06:55:20 PM
actually i tried all nvidia gfxstrings included in pc_efi_v80 package, and all gave me

Code:
./gfxutil: input file '[filename]' cannot be open for reading hex data

Radeon strings, no problem


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: pnoytechie on February 07, 2008, 07:39:52 PM
even this file http://forum.netkas.org/index.php?action=dlattach;topic=55.0;attach=123

gives me:
Code:
./gfxutil: cannot parse gfx data from hex input file 'x1.txt'!

desperately need help...  :'( :'( :'( :'( :'(


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 08, 2008, 02:24:59 AM
This is my command for building hex for my ALC888:
what's wrong?

Try this plist for your audio.

This 8800 hex works. Probably need to edit vram and model name.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: pnoytechie on February 09, 2008, 05:55:47 AM
This is my command for building hex for my ALC888:
what's wrong?

Try this plist for your audio.

This 8800 hex works. Probably need to edit vram and model name.

alrighty! thanks a lot time ed!  :)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 12, 2008, 03:40:05 PM
i'm totally lost..reading everything I 'm not understandig how I can get my hex considering I'm using a qx 3500 nviddia!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 12, 2008, 04:25:49 PM

Where are you getting lost?

Does the card work with nvinject or the like?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 12, 2008, 09:10:30 PM
thanks god time ed exists !!  :-*
Yes I got the nvinect perfectly working but I want to move on the gfx wagon u know..
I don't now where I can get the hex file for mine!?
Thanks for your time!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 12, 2008, 10:55:26 PM

Lets start with your device tree and card properties.

Please post result of ioreg -w0 -l IODeviceTree > regdump.txt

Also, post portion of system.log right after restart where you should see something like this for NVInject:
NVinject: Probing.
NVinject: Setting NVPM=<data not shown>
...etc...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 12, 2008, 11:49:47 PM
ok.
Thanks Time Ed as always.let me know if i posted correctly.

regdump http://www.divshare.com/download/3765960-dfd (http://www.divshare.com/download/3765960-dfd)
nvinjectlog http://www.divshare.com/download/3765961-4f9 (http://www.divshare.com/download/3765961-4f9)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 13, 2008, 12:54:23 AM

FavleX -

Try this hex. Its really bare-bones, but it *might* work.



Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 13, 2008, 08:56:15 AM
yes it does works. :-*
what does u mean whaen say it is bare-bones?
Now Can I add the other string for time machine and audio?
Thanks man u rocks! :o

- FavleX -


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 13, 2008, 01:13:28 PM
what does u mean whaen say it is bare-bones?
Now Can I add the other string for time machine and audio?

By bare-bones, I meant that I added the very minimum of property values I thought might get your card working. IOW, I guessed :-)

Try this hex...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 13, 2008, 02:11:09 PM
just take the plist and trasformed in hex, i notice there is the ethernet device too, or it's my ignorance??
Obvoiusly it does work like a charm. ;)
Now I can reinstal the ionetworkingfamily vanilla?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 13, 2008, 03:44:23 PM

Yes, your NIC is included, along with audio. Eth portion of string/plist should fix TM plus a few other things, plus allow you to restore stock (vanilla) IONetworkingFamily.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 13, 2008, 09:03:18 PM
..unfortunately , I got some probs with IONetworkingFamily.kext:
- first I dont' know why but it's "impossible"   copy the kext from install dvd retail 10.5.0 to extensions folder..
- second i 've tried to replace with the old one, the patched contained in the pcefi 8 but..

.. Now when I reboot the system says "system extension cannnot be used" where am I so wrong?
earlier, before to start with replacing the IONet.. with the vanilla one everything was going well..  :'(


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 13, 2008, 09:26:50 PM

Sounds like you have permissions problems.

Extract from DVD to some location other than /S/L/E, such as / or /System, su to root, then:
chown/chmod ionetworkingfamily; then:
mv ionetworkingfamily /S/L/E/IONetworkingFamily.kext/Contents/MacOS/
 - or -
extract to some location, chown/chmod, boot -s, and perform switch in single user mode.
 - or -
if you have binary you want in place, verify/restore permissions


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 14, 2008, 10:47:33 AM
..ok, i must take spare time and try that...
Is there any difference between 10.5.0 dvd vanilla kext and the 10.5.2 vanilla?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 14, 2008, 12:38:37 PM

not on my machine...

Anyone?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: FavleX on February 14, 2008, 06:01:50 PM
replaced the Contents folder inside IONet....kext, it works.(retail 10.5.0)
after all I haven't noticed any improvements on launching apps speed as stated from others like Stellarola, otherwise I'm pretty happy about my config on this amachine.
Time Ed do you think I must modify anything else to get a better clone Mac?  :P


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: memphis2k on February 16, 2008, 08:27:33 AM
Hey all,

Once I boot into Leopard, my display gets put to a really odd resolution. HALF of the horizontal resolution but the vertical is right on.  840 by 1050!?!!!   Natively, it should be 1680 by 1050.  I can fix the issue by going into the Displays and clicking on Detect Displays, this will set the resolution back to 1680 by 1050.  Or putting it to sleep right away, then it will correct itself.  I was using NVinject in Leopard 10.5.1 (last install) and that worked fine.  Any ideas?

-BrazilMac Patch 10.5.2, EFI 8.0, Vanillia
-Asus P5B Deluxe
-Geforce 8800 GTS 320MB PCI-E Video card
-DVI-D connected to a Samsung 225BW LCD @ 1680 by 1050
-GFX string from pc_EFI_v80.zip in the gfx_strings folder for my 8800 GTS 320MB
-Added that to the com.apple.boot.list


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bmwkk on February 16, 2008, 09:02:06 AM
iv got my dell d630 working without nvinject/alcinject.  wanna say your guides helping me so much.
btw, found if you are borring with the unknown NVcap,nvrm,rog, you can get them from the nvinject you are using.
so u can make your gfx string by yourself according mod's guide unless you cant use nvinject.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 16, 2008, 11:35:20 AM
Found this really helpful: http://nvinject.free.fr/forums/viewtopic.php?t=214 about NVCAP


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 16, 2008, 02:25:58 PM
Time Ed do you think I must modify anything else to get a better clone Mac?  :P

If everything is working, I'd say you're off to the races...


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: time ed on February 16, 2008, 02:27:53 PM
Once I boot into Leopard, my display gets put to a really odd resolution. HALF of the horizontal resolution but the vertical is right on.  840 by 1050!?!!!   Natively, it should be 1680 by 1050.  I can fix the issue by going into the Displays and clicking on Detect Displays, this will set the resolution back to 1680 by 1050.  Or putting it to sleep right away, then it will correct itself.  I was using NVinject in Leopard 10.5.1 (last install) and that worked fine.  Any ideas?

Post your IOreg and plist...

All -- please come to IRC #efi-gfx...I'm there most mornings early or when I have extra time


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: frantisheq on February 16, 2008, 05:30:16 PM

* lspci for mac os (courtesy of frantisheq): http://www.mediafire.com/?dqnwm2nxr03

i'm not sure what word courtesy really means :) but i didn't port this thing to mac os i just saw link to this file on IRC. don't remember from who


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MacPaq on February 16, 2008, 06:37:53 PM

* lspci for mac os (courtesy of frantisheq): http://www.mediafire.com/?dqnwm2nxr03

i'm not sure what word courtesy really means :) but i didn't port this thing to mac os i just saw link to this file on IRC. don't remember from who

Buy and read this book "Mac OS X Internals" by Amit Singh, Amazon.com it. :) Mostly writtten on Mac PPC but the invaluable knowledge can be applied to i386! (code for lspci is in the book)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: frantisheq on February 16, 2008, 07:35:20 PM
:) i just wanted to say that i'm in no way involved with this super proggie


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on February 17, 2008, 09:58:13 PM
:) i just wanted to say that i'm in no way involved with this super proggie

lol!! what i mean with courtesy, is that you were the one who uploaded the file and shared it with all of us, or at least that's what i thought!!

Cheers!

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: frantisheq on February 17, 2008, 11:12:27 PM
:) i just wanted to say that i'm in no way involved with this super proggie

lol!! what i mean with courtesy, is that you were the one who uploaded the file and shared it with all of us, or at least that's what i thought!!

Cheers!

MoDs
:D ok then. sure you can share it


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: witokeren on February 21, 2008, 05:31:03 AM
my audio card is showed as HDEF@18 in IORegistryExplorer... but the strange thing is the subsystem value reports as "o@". How to convert this to hex value?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: enb141 on February 22, 2008, 07:55:39 PM
So guys basically if I want audio + gfx I have to add a huge HEX dump within

<key>device-properties</key>
<string>VIDEOAUDIO</string>

Right?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Headrush69 on February 23, 2008, 12:35:07 AM
So guys basically if I want audio + gfx I have to add a huge HEX dump within

<key>device-properties</key>
<string>VIDEOAUDIO</string>

Right?
Yes


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Aikidoka on March 05, 2008, 05:31:03 AM
I'm running 10.5.2 on an Abit IP35-PRO.  It has a Realtek ALC888.  When I look in IORegistry Explorer, I see all the values I need to replace except built-in and layout-id.  Is there some other way to get these?  Should I just remove them from the plist before making the hex?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on March 05, 2008, 10:39:09 AM
I'm running 10.5.2 on an Abit IP35-PRO.  It has a Realtek ALC888.  When I look in IORegistry Explorer, I see all the values I need to replace except built-in and layout-id.  Is there some other way to get these?  Should I just remove them from the plist before making the hex?

Give it a try. Not all keys are mandatory after all.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Aikidoka on March 05, 2008, 09:53:09 PM
Give it a try. Not all keys are mandatory after all.

MoDs

Will do.  Thanks!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: McLovin50 on March 24, 2008, 03:01:27 AM
This is my command for building hex for my ALC888:
what's wrong?

Try this plist for your audio.

This 8800 hex works. Probably need to edit vram and model name.

Does the model name really matter?  I thought it could be anything.

I can't get my 8800GTS 320MB to work on my EVGA 680i mobo. I have the correct path I believe for the PCI (Did -f with gfxutil).

Can anyone help me on this. Maybe upload there hex or plist please on the same card and mobo.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Goron on March 28, 2008, 03:13:03 PM
Dumb question:

The files provided here:

for nVidia users: http://forum.netkas.org/index.php/topic,55.0.html

are named .bst and .hst. Taking the string out of the .hst, removing the spaces and cr´s, so that all characters are in one line and running:

./gfxutil -s -n -v -i hex -o xml in.hex out.plist

gives me a:

bash-3.2# ./gfxutil -s -n -v -i hex -o xml in.hex out.plist
Segmentation fault


So i´m quiet stuck here. Can so please tell me how to proceed??


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: metalchaos on April 28, 2008, 01:41:20 PM
Hi,

Could someone please attach the hex for the 8800GTS 320MB ??
PLEASE, I cannot find it anywhere.
The one from the netkas package gives me ./gfxutil: cannot parse gfx data from hex input file

Or please tell me what to modify in the 8800gts640MB plist attached in the first post on this thread


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: TheMarine on May 10, 2008, 04:10:01 PM
Hey,
I just made some bash script, to make the task easier for sfx strings. If anyone wants to try it, go on.

You just have to put it next to the gfxutil file (in the same folder), give 755 permissions and try it.

It just gets your properties (instead of searching for them manually) and then generates the hex file (sfx.hex).

Well, i hope some of you find this useful. If not, just delete my post  :D


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bobloadmire on May 14, 2008, 05:24:01 AM
Ok i got the graphics card down pat, OS X is seeing it EFI. Now i am trying to get my ALC sound to be efi, but im getting a bit confused with the instructions. I have IORegistryExplorer open to the right section and i can see all of the numbers and what not. I am confused on which file i edit to replace these numbers into the hex strings. it said the Graphics card Plist, but which one? is it the com.apple.boot.plist? could some one please clarify?
mine looks like this:
Code:
acpi-device IOACPIPlatformDevice is not serializable
acpi-path IOACPIPlane:/_SB/PCI0@0/AZAL@1b0000
assigned-addresses: <10 d8 00 82 00 00 00 00 00 00 10 f2 00 00 00 00 00 40 00 00>
class-code: <00 03 04 00>
compatable: <"pci1458,a002", "pci8086,284b", "pciclass,040300">
IOName pci8086,284b
layout-id <0c 00 00 00>
reg: <00 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 d8 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00>
revision-id: <02 00 00 00>
subsystem-id: <02 a0 00 00>
subsystem-vendor-id: <58 14 00 00>
vendor-id: <86 80 00 00>




also im a bit confused as to where you insert the audio driver strings sand keys when you merge it with the graphics one. He says past it after all of graphics strings, but in not quite sure where that is in the plist file.

here is the 8800GTS plist file i believe that i am suppose to put it in:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<data>
TlZEQSxOVk1hYwA=
</data>
<key>@0,device_type</key>
<data>
ZGlzcGxheQA=
</data>
<key>@0,name</key>
<data>
TlZEQSxEaXNwbGF5LUEA
</data>
<key>@1,compatible</key>
<data>
TlZEQSxOVk1hYwA=
</data>
<key>@1,device_type</key>
<data>
ZGlzcGxheQA=
</data>
<key>@1,name</key>
<data>
TlZEQSxEaXNwbGF5LUIA
</data>
<key>NVCAP</key>
<data>
BAAAAAAAAwAMAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>VRAM,totalsize</key>
<string>0x28000000</string>
<key>device_type</key>
<data>
TlZEQSxQYXJlbnQA
</data>
<key>model</key>
<data>
WEZYIEdlZm9yY2UgODgwMCBHVFMgQWxwaGEgRG9nIEVkaXRpb24gRUZJAA==
</data>
<key>name</key>
<data>
ZGlzcGxheQA=
</data>
<key>reg</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>rom-revision</key>
<data>
R0Y4eHh4LTdjMjItMQA=
</data>
</dict>
</dict>
</plist>
^^^^ where exactly do i insert it?
thanks a lot guys, im a tad confused


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bigpoppa on May 17, 2008, 12:27:52 AM
This guide seems pretty straight-forward.  My question is, what if you cannot find the Audio in IORegistryExplorer?  I searched and have nothing that says AZAL in it.  I do have sound working already, but I think it was from ALCinject.kext.  Any info would help, thanks.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on May 17, 2008, 08:06:28 AM
This guide seems pretty straight-forward.  My question is, what if you cannot find the Audio in IORegistryExplorer?  I searched and have nothing that says AZAL in it.  I do have sound working already, but I think it was from ALCinject.kext.  Any info would help, thanks.

that's why you have to find the vendor name of your sound and look it up in IORegistryExplorer. In the tutorial, you'll find how to do that in different ways.

Regards.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: coincoin on May 22, 2008, 09:24:53 AM
Hello all,

Thanks for this guide ! I try to have both my Nvidia 8600GT and my Audio ALC883 working. For now, just my Nvidia is working. When I add the sound, it doesn't work !

I've got this :
lspci -nn
Code:
00:10.1 Audio device [0403]: nVidia Corporation MCP51 High Definition Audio [10de:026c] (rev a2)

And :
(http://rvm.free.fr/temp/Image%201.png)
(http://rvm.free.fr/temp/Image%202.png)

My plist :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>@2,#adress-cells</key>
<string>0x01000000</string>
<key>@2,#size-cells</key>
<string>0x00000000</string>
<key>@2,compatible</key>
<string>NVDA,sensor-parent</string>
<key>@2,device_type</key>
<string>NVDA,gpu-diode</string>
<key>@2,hwctrl-params-version</key>
<string>0x02000000</string>
<key>@2,hwsensor-params-version</key>
<string>0x02000000</string>
<key>@2,name</key>
<string>sensor-parent</string>
<key>@2,reg</key>
<string>0x02000000</string>
<key>NVCAP</key>
<data>
BAAAAAAAAwAMAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 8600GT</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rom-revision</key>
<string>0xa1000000</string>
<key>rom-revision</key>
      <string>0x32323033</string>
    </dict>
<key>PciRoot(0x1)/Pci(0x10,0x1)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x000000a2</string>
<key>subsystem-id</key>
<string>0x00008249</string>
<key>subsystem-vendor-id</key>
<string>0x00001043</string>
<key>vendor-id</key>
<string>0x000010de</string>

</dict>
</dict>
</plist>

Any ideas ? Thanks a lot  :P


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on May 22, 2008, 01:20:32 PM
Hello all,

Thanks for this guide ! I try to have both my Nvidia 8600GT and my Audio ALC883 working. For now, just my Nvidia is working. When I add the sound, it doesn't work !

I've got this :
lspci -nn
Code:
00:10.1 Audio device [0403]: nVidia Corporation MCP51 High Definition Audio [10de:026c] (rev a2)

And :
(http://rvm.free.fr/temp/Image%201.png)
(http://rvm.free.fr/temp/Image%202.png)

My plist :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>@2,#adress-cells</key>
<string>0x01000000</string>
<key>@2,#size-cells</key>
<string>0x00000000</string>
<key>@2,compatible</key>
<string>NVDA,sensor-parent</string>
<key>@2,device_type</key>
<string>NVDA,gpu-diode</string>
<key>@2,hwctrl-params-version</key>
<string>0x02000000</string>
<key>@2,hwsensor-params-version</key>
<string>0x02000000</string>
<key>@2,name</key>
<string>sensor-parent</string>
<key>@2,reg</key>
<string>0x02000000</string>
<key>NVCAP</key>
<data>
BAAAAAAAAwAMAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 8600GT</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rom-revision</key>
<string>0xa1000000</string>
<key>rom-revision</key>
      <string>0x32323033</string>
    </dict>
<key>PciRoot(0x1)/Pci(0x10,0x1)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x000000a2</string>
<key>subsystem-id</key>
<string>0x00008249</string>
<key>subsystem-vendor-id</key>
<string>0x00001043</string>
<key>vendor-id</key>
<string>0x000010de</string>

</dict>
</dict>
</plist>

Any ideas ? Thanks a lot  :P


Your audio ALC883 should be called "AZAL". What i see from your post is that you misunderstood what you saw. "AZAD" isn't a vendor, try looking for "AZAL" instead.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: coincoin on May 22, 2008, 01:40:37 PM
Your audio ALC883 should be called "AZAL". What i see from your post is that you misunderstood what you saw. "AZAD" isn't a vendor, try looking for "AZAL" instead.

MoDs
Hello,

Thanks for your answer.
I tried AZAL in first, but gfxutil doesn't find anything with this name.
And if I'm looking for [10de:026c] in IODeviceTree, I see AZAD in the left columns.
Thanks for your help and sorry for my bad english  :P


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on May 22, 2008, 05:01:42 PM
Your audio ALC883 should be called "AZAL". What i see from your post is that you misunderstood what you saw. "AZAD" isn't a vendor, try looking for "AZAL" instead.

MoDs
Hello,

Thanks for your answer.
I tried AZAL in first, but gfxutil doesn't find anything with this name.
And if I'm looking for [10de:026c] in IODeviceTree, I see AZAD in the left columns.
Thanks for your help and sorry for my bad english  :P

I need you to run "lspci -v" in terminal and post the results here. You can download the utility "lspci" from the downloads section of my guide. That way, i may be able to identify your audio vendor.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: coincoin on May 22, 2008, 05:43:20 PM
Thanks for your help  ;)

My lspci output :
Code:
00:00.0 Host bridge: nVidia Corporation C55 Host Bridge (rev a2)
Flags: bus master, 66MHz, fast devsel, latency 0
Capabilities: [40] HyperTransport: Host or Secondary Interface

00:00.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:00.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:00.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a2)
Flags: bus master, 66MHz, fast devsel, latency 0

00:00.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.7 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:01.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:02.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:02.1 RAM memory: nVidia Corporation Unknown device 03bc (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:02.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:03.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f8000000-fbffffff
Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0c55
Capabilities: [48] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=1/1 Enable-
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] #10de
Capabilities: [03b] #ff00
Capabilities: [080] #10

00:07.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fdc00000-fdcfffff
Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0c55
Capabilities: [48] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=1/1 Enable-
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] #10de
Capabilities: [03b] #ff00

00:09.0 RAM memory: nVidia Corporation MCP51 Host Bridge (rev a2)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255
Capabilities: [44] HyperTransport: Slave or Primary Interface
Capabilities: [e0] HyperTransport: MSI Mapping Enable- Fixed-

00:0a.0 ISA bridge: nVidia Corporation MCP51 LPC Bridge (rev a3)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:0a.1 SMBus: nVidia Corporation MCP51 SMBus (rev a3)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: 66MHz, fast devsel, IRQ 23
I/O ports at 1c00
I/O ports at 1c80
Capabilities: [44] Power Management version 2

00:0a.2 RAM memory: nVidia Corporation MCP51 Memory Controller 0 (rev a3)
Subsystem: ASUSTeK Computer Inc. Unknown device 81bc
Flags: 66MHz, fast devsel

00:0b.0 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe02f000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2

00:0b.1 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe02e000 (32-bit, non-prefetchable)
Capabilities: [44] Debug port: BAR=1 offset=0098
Capabilities: [80] Power Management version 2

00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1) (prog-if 8a [Master SecP PriP])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0
I/O ports at fd00
Capabilities: [44] Power Management version 2

00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
I/O ports at 09f0
I/O ports at 0bf0
I/O ports at 0970
I/O ports at 0b70
I/O ports at f800
Memory at fe02d000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=2/2 Enable-
Capabilities: [cc] HyperTransport: MSI Mapping Enable- Fixed+

00:0f.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
I/O ports at 09e0
I/O ports at 0be0
I/O ports at 0960
I/O ports at 0b60
I/O ports at f300
Memory at fe02c000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=2/2 Enable-
Capabilities: [cc] HyperTransport: MSI Mapping Enable- Fixed+

00:10.0 PCI bridge: nVidia Corporation MCP51 PCI Bridge (rev a2) (prog-if 01 [Subtractive decode])
Flags: bus master, 66MHz, fast devsel, latency 0
Bus: primary=00, secondary=03, subordinate=03, sec-latency=128
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: fde00000-fdefffff
Prefetchable memory behind bridge: fdd00000-fddfffff
Capabilities: [b8] Subsystem: nVidia Corporation Unknown device cb84
Capabilities: [8c] HyperTransport: MSI Mapping Enable- Fixed-

00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2)
Subsystem: ASUSTeK Computer Inc. Unknown device 8249
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe028000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/0 Enable-
Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0402 (rev a1) (prog-if 00 [VGA controller])
Subsystem: nVidia Corporation Unknown device 0439
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fa000000 (32-bit, non-prefetchable)
Memory at e0000000 (64-bit, prefetchable)
Memory at f8000000 (64-bit, non-prefetchable)
I/O ports at df00
Capabilities: [60] Power Management version 2
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [100] #10de
Capabilities: [040] #10de
Capabilities: [043] Power Budgeting <?>

02:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) (prog-if 01 [AHCI 1.0])
Subsystem: ASUSTeK Computer Inc. Unknown device 8208
Flags: bus master, fast devsel, latency 0, IRQ 16
I/O ports at ef00
I/O ports at ee00
I/O ports at ed00
I/O ports at ec00
I/O ports at eb00
Memory at fdcfe000 (32-bit, non-prefetchable)
Capabilities: [68] Power Management version 2
Capabilities: [50] Express Legacy Endpoint, MSI 01
Capabilities: [100] #197b
Capabilities: [236] #68

Thanks !


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on May 22, 2008, 11:22:08 PM
Thanks for your help  ;)

My lspci output :
Code:
00:00.0 Host bridge: nVidia Corporation C55 Host Bridge (rev a2)
Flags: bus master, 66MHz, fast devsel, latency 0
Capabilities: [40] HyperTransport: Host or Secondary Interface

00:00.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:00.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:00.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a2)
Flags: bus master, 66MHz, fast devsel, latency 0

00:00.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:00.7 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel

00:01.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:01.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:02.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:02.1 RAM memory: nVidia Corporation Unknown device 03bc (rev a1)
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:02.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
Flags: 66MHz, fast devsel, IRQ 255

00:03.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f8000000-fbffffff
Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0c55
Capabilities: [48] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=1/1 Enable-
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] #10de
Capabilities: [03b] #ff00
Capabilities: [080] #10

00:07.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fdc00000-fdcfffff
Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0c55
Capabilities: [48] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=1/1 Enable-
Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
Capabilities: [80] Express Root Port (Slot+), MSI 00
Capabilities: [100] #10de
Capabilities: [03b] #ff00

00:09.0 RAM memory: nVidia Corporation MCP51 Host Bridge (rev a2)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255
Capabilities: [44] HyperTransport: Slave or Primary Interface
Capabilities: [e0] HyperTransport: MSI Mapping Enable- Fixed-

00:0a.0 ISA bridge: nVidia Corporation MCP51 LPC Bridge (rev a3)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 255

00:0a.1 SMBus: nVidia Corporation MCP51 SMBus (rev a3)
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: 66MHz, fast devsel, IRQ 23
I/O ports at 1c00
I/O ports at 1c80
Capabilities: [44] Power Management version 2

00:0a.2 RAM memory: nVidia Corporation MCP51 Memory Controller 0 (rev a3)
Subsystem: ASUSTeK Computer Inc. Unknown device 81bc
Flags: 66MHz, fast devsel

00:0b.0 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) (prog-if 10 [OHCI])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe02f000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2

00:0b.1 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe02e000 (32-bit, non-prefetchable)
Capabilities: [44] Debug port: BAR=1 offset=0098
Capabilities: [80] Power Management version 2

00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1) (prog-if 8a [Master SecP PriP])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0
I/O ports at fd00
Capabilities: [44] Power Management version 2

00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
I/O ports at 09f0
I/O ports at 0bf0
I/O ports at 0970
I/O ports at 0b70
I/O ports at f800
Memory at fe02d000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=2/2 Enable-
Capabilities: [cc] HyperTransport: MSI Mapping Enable- Fixed+

00:0f.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1) (prog-if 85 [Master SecO PriO])
Subsystem: ASUSTeK Computer Inc. A8N-VM CSM Mainboard
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
I/O ports at 09e0
I/O ports at 0be0
I/O ports at 0960
I/O ports at 0b60
I/O ports at f300
Memory at fe02c000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=2/2 Enable-
Capabilities: [cc] HyperTransport: MSI Mapping Enable- Fixed+

00:10.0 PCI bridge: nVidia Corporation MCP51 PCI Bridge (rev a2) (prog-if 01 [Subtractive decode])
Flags: bus master, 66MHz, fast devsel, latency 0
Bus: primary=00, secondary=03, subordinate=03, sec-latency=128
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: fde00000-fdefffff
Prefetchable memory behind bridge: fdd00000-fddfffff
Capabilities: [b8] Subsystem: nVidia Corporation Unknown device cb84
Capabilities: [8c] HyperTransport: MSI Mapping Enable- Fixed-

00:10.1 Audio device: nVidia Corporation MCP51 High Definition Audio (rev a2)
Subsystem: ASUSTeK Computer Inc. Unknown device 8249
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
Memory at fe028000 (32-bit, non-prefetchable)
Capabilities: [44] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/0 Enable-
Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0402 (rev a1) (prog-if 00 [VGA controller])
Subsystem: nVidia Corporation Unknown device 0439
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fa000000 (32-bit, non-prefetchable)
Memory at e0000000 (64-bit, prefetchable)
Memory at f8000000 (64-bit, non-prefetchable)
I/O ports at df00
Capabilities: [60] Power Management version 2
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [100] #10de
Capabilities: [040] #10de
Capabilities: [043] Power Budgeting <?>

02:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) (prog-if 01 [AHCI 1.0])
Subsystem: ASUSTeK Computer Inc. Unknown device 8208
Flags: bus master, fast devsel, latency 0, IRQ 16
I/O ports at ef00
I/O ports at ee00
I/O ports at ed00
I/O ports at ec00
I/O ports at eb00
Memory at fdcfe000 (32-bit, non-prefetchable)
Capabilities: [68] Power Management version 2
Capabilities: [50] Express Legacy Endpoint, MSI 01
Capabilities: [100] #197b
Capabilities: [236] #68

Thanks !




But that's "nVidia Corporation MCP51 High Definition Audio" not ALCxxx or Sigmatel!

I'm sorry but i don't know how to help you with that chipset.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Krule on May 23, 2008, 01:21:29 AM
Hello all. This tutorial is just great.

I have modified com.apple.Boot with hex for 8600GT and it worked perfectly (Got rid of NVInject). Thank you.

However, when I have tried described procedure for ALC883 (on ABIT IP35-V Mainboard) and added a string I got from plist, there was no result whatsoever (Except for loosing of sound capability after removing ALCinject.kext).

Below is in.plist data I have used.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1b,0x0)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x00000001</string>
<key>subsystem-id</key>
<string>0x0000108e</string>
<key>subsystem-vendor-id</key>
<string>0x0000147b</string>
<key>vendor-id</key>
<string>0x00008086</string>
</dict>
</dict>
</plist>

To produce string:
Code:
2f0100000100000001000000230100000700000002010c00d041030a0100000001010600001b7fff04001c0000007200650076006900730069006f006e002d00690064000000080000000100000028000000500069006e0043006f006e00660069006700750072006100740069006f006e00730000000400000018000000760065006e0064006f0072002d0069006400000008000000868000002c000000730075006200730079007300740065006d002d00760065006e0064006f0072002d00690064000000080000007b1400001e000000730075006200730079007300740065006d002d00690064000000080000008e100000180000006c00610079006f00750074002d00690064000000080000000c000000160000006200750069006c0074002d0069006e0000000500000000

And finally added it to com.apple.Boot that looked like this:
Quote
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Kernel</key>
   <string>mach_kernel</string>
   <key>Kernel Flags</key>
   <string>MemSpeed=800 MemType=DDR2</string>
   <key>device-properties</key>
   <string>8d0200000100000001000000810200000e00000002010c00d041030a010000000101060000010101060000007fff04000e0000004e00560050004d00000020000000010000000000000000000000000000000000000000000000000000000c00000072006500670000002000000001000000000000000000000000000000000000000000000000000000220000005600520041004d002c0074006f00740061006c00730069007a006500000008000000000000101c0000006400650076006900630065005f0074007900700065000000100000004e5644412c506172656e74000e0000006e0061006d00650000000c000000646973706c61790022000000400030002c006400650076006900630065005f00740079007000650000000c000000646973706c61790022000000400031002c006400650076006900630065005f00740079007000650000000c000000646973706c617900100000006d006f00640065006c000000180000004765466f7263652038363030204754204546490020000000400031002c0063006f006d00700061007400690062006c00650000000f0000004e5644412c4e564d61630014000000400030002c006e0061006d0065000000130000004e5644412c446973706c61792d410014000000400031002c006e0061006d0065000000130000004e5644412c446973706c61792d420020000000400030002c0063006f006d00700061007400690062006c00650000000f0000004e5644412c4e564d616300100000004e00560043004100500000001800000004000000000003000c00000000000007000000001e00000072006f006d002d007200650076006900730069006f006e0000001d0000004746387878782d376332322d31203235364d42205672616d002f0100000100000001000000230100000700000002010c00d041030a0100000001010600001b7fff04001c0000007200650076006900730069006f006e002d00690064000000080000000100000028000000500069006e0043006f006e00660069006700750072006100740069006f006e00730000000400000018000000760065006e0064006f0072002d0069006400000008000000868000002c000000730075006200730079007300740065006d002d00760065006e0064006f0072002d00690064000000080000007b1400001e000000730075006200730079007300740065006d002d00690064000000080000008e100000180000006c00610079006f00750074002d00690064000000080000000c000000160000006200750069006c0074002d0069006e0000000500000000</string>
</dict>
</plist>

I have marked ALC883 string in red color in quote above, just so it can be differentiated.

Any chance I have made some mistake and this can be fixed? I mean, sound does work (5.1+Headphones+MicIn+LineIn) with ALCinject, but this methos just feels better.

I am also interested in learning more on how this stuff works. Any references?


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: coincoin on May 23, 2008, 07:47:56 AM
But that's "nVidia Corporation MCP51 High Definition Audio" not ALCxxx or Sigmatel!

I'm sorry but i don't know how to help you with that chipset.

MoDs
Yes. I'm wrong because of Asustek's specification of my motherboard : http://www.asus.com/products.aspx?l1=3&l2=11&l3=473&model=1474&modelmenu=2.
In fact, it seems that my driver is ADI 1988B (Azilia on OSX).

Sorry  :P


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on May 23, 2008, 10:07:50 AM
Hello all. This tutorial is just great.

I have modified com.apple.Boot with hex for 8600GT and it worked perfectly (Got rid of NVInject). Thank you.

However, when I have tried described procedure for ALC883 (on ABIT IP35-V Mainboard) and added a string I got from plist, there was no result whatsoever (Except for loosing of sound capability after removing ALCinject.kext).

Below is in.plist data I have used.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x1)/Pci(0x1b,0x0)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x00000001</string>
<key>subsystem-id</key>
<string>0x0000108e</string>
<key>subsystem-vendor-id</key>
<string>0x0000147b</string>
<key>vendor-id</key>
<string>0x00008086</string>
</dict>
</dict>
</plist>

To produce string:
Code:
2f01000001000000010000...

And finally added it to com.apple.Boot that looked like this:
Quote
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Kernel</key>
   <string>mach_kernel</string>
   <key>Kernel Flags</key>
   <string>MemSpeed=800 MemType=DDR2</string>
   <key>device-properties</key>
   <string>8d0200000100000001000000810200000...0[/color]</string>
</dict>
</plist>

I have marked ALC883 string in red color in quote above, just so it can be differentiated.

Any chance I have made some mistake and this can be fixed? I mean, sound does work (5.1+Headphones+MicIn+LineIn) with ALCinject, but this methos just feels better.

I am also interested in learning more on how this stuff works. Any references?

No, you don't just create two separate "in.hex" and then concatenate the two hex strings results in boot.plist. You have to create ONE .hex file the will hold both, gfx and sfx, then put the result hex string in boot.plist.

Besides, i see there are a "[/color]" after the hex string in boot.plist, what's that? It shouldn't be there.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: Krule on May 23, 2008, 10:50:44 AM
No, you don't just create two separate "in.hex" and then concatenate the two hex strings results in boot.plist. You have to create ONE .hex file the will hold both, gfx and sfx, then put the result hex string in boot.plist.

Besides, i see there are a "[/color]" after the hex string in boot.plist, what's that? It shouldn't be there.

MoDs

Thank you very much.  ;D

Oh, I have somehow completely missed that part and used method two (the one where you don't have GFX) already, and when I have tried, to find how to place "string" into Boot.plist, ran into this:

So guys basically if I want audio + gfx I have to add a huge HEX dump within

<key>device-properties</key>
<string>VIDEOAUDIO</string>

Right?
Yes

That was misleading.  :(

I will test it this way as soon as get home. Thank you again for pointing me in the right direction.  ;D

P.S. [/color] was there in order to illustrate, for forum purposes only, SFX string i have joined with GFX string in Bot.plist


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sWORDs on June 04, 2008, 10:45:23 AM
Working, moved it to nVidia +EFI


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: milanca on June 05, 2008, 01:06:12 AM
Quote
metalchaos:
Could someone please attach the hex for the 8800GTS 320MB ??
PLEASE, I cannot find it anywhere.
The one from the netkas package gives me ./gfxutil: cannot parse gfx data from hex input file

Or please tell me what to modify in the 8800gts640MB plist attached in the first post on this thread

Here it is.. 8800GTS 320MB from my 10.5.3, I excluded my audio (alc889a) and network strings so you can have your working GFX string to start from. Please do not forget to replace device_path PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0) with your own.
Find it with:
Code:
./gfxutil -f display

Had to do a quick edit;-)
5 Stars to MoDs for all his effort in making this extraordinary howto. Cheers!


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sWORDs on June 05, 2008, 10:35:29 AM
Asus P5K ALC883:
Code:
<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
<dict>
<key>PinConfigurations</key>
<string></string>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x00000002</string>
<key>subsystem-id</key>
<string>0x0000829f</string>
<key>subsystem-vendor-id</key>
<string>0x00001043</string>
<key>vendor-id</key>
<string>0x00008086</string>
</dict>


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sama7896 on June 05, 2008, 10:09:40 PM
Can someone help me please, can't get the location right, i'm on p5k (flashed to p5kr), have a alc883 audio, attached is the ioreg, but can't figure what my plist should look like :( Tried the plist from sWords but it does not work....

also, as you can see there is no mention of azalia ..


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sWORDs on June 06, 2008, 02:52:21 AM
Can someone help me please, can't get the location right, i'm on p5k (flashed to p5kr), have a alc883 audio, attached is the ioreg, but can't figure what my plist should look like :( Tried the plist from sWords but it does not work....

also, as you can see there is no mention of azalia ..
It's identical to mine.

Edit:
I've just crossflashed to p5kr aswell, it still works. Are you sure you didn't mess up with your graphics string? And are you using a modified AppleHDA.kext (required)?

There is no mention of azalia for me aswell. I use PCI8086,293e.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sama7896 on June 06, 2008, 05:16:49 AM
i think i am ... i do have sound as provided by alcinjector. How can i have sound without the modified applehda ?
Thanks for your reply


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: bigpoppa on June 06, 2008, 07:38:21 AM
i think i am ... i do have sound as provided by alcinjector. How can i have sound without the modified applehda ?
Thanks for your reply
Actually, you will need the modified AppleHDA.kext with the EFI string if I have read this thread correctly.


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on June 06, 2008, 10:40:36 AM
i think i am ... i do have sound as provided by alcinjector. How can i have sound without the modified applehda ?
Thanks for your reply
Actually, you will need the modified AppleHDA.kext with the EFI string if I have read this thread correctly.

Not necessarily! I mentioned the AppleHDA Patcher as an example of how you may enable sound on your computer, if you don't have sound! You just have to have a working sound before switching to the  efi method.

MoDs


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sWORDs on June 06, 2008, 12:41:32 PM
i think i am ... i do have sound as provided by alcinjector. How can i have sound without the modified applehda ?
Thanks for your reply
Actually, you will need the modified AppleHDA.kext with the EFI string if I have read this thread correctly.

Not necessarily! I mentioned the AppleHDA Patcher as an example of how you may enable sound on your computer, if you don't have sound! You just have to have a working sound before switching to the  efi method.

MoDs
I don't need alcinject anymore, but I do need a modified AppleHDA.kext. Could this be because it's not seen as AZAL?
When using alcinject or EFi it comes up as PCI8086,293e, when using HDEnabler it comes up as HDEF.

Working:
- alcinject
- HDEnabler
- EFI + modified AppleHDA.kext

Not Working:
- OOTB
- Only EFI
- Only modified AppleHDA.kext


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sama7896 on June 06, 2008, 04:13:15 PM
weird thing is i changed the applehda to the one included in ALC882 AppleHDA v0.4b.mpkg, and now it works ! Thanks sWORDs for putting me on the right track. I would still want to know why did it not work with the first one, i had sound enabled than too ...
Here is a sshot of the ioreg with this kext. Looks pretty much the same to me..

One other question, is there any way for the card to be shown in profiler? Now says no built-in audio card



Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sWORDs on June 06, 2008, 05:17:03 PM
weird thing is i changed the applehda to the one included in ALC882 AppleHDA v0.4b.mpkg, and now it works ! Thanks sWORDs for putting me on the right track. I would still want to know why did it not work with the first one, i had sound enabled than too ...
Here is a sshot of the ioreg with this kext. Looks pretty much the same to me..

One other question, is there any way for the card to be shown in profiler? Now says no built-in audio card


You can trick it by modifying no_info_found in /System/Library/SystemProfiler/SPAudioReporter.spreporter/Contents/Resources/[LANGUAGE].lproj/Localizable.strings. With

Code:
no_info_found = "ASUS P5K Realtek ALC883 High Definition Audio:

 Avaliable Devices:
 Line Out:
 Connection:   1/8 Jack
 Headphones:
 Connection:   1/8 Jack 
 Mic in:
 Connection:   1/8 Jack
 Line in:
 Connection:    1/8 Jack
 Speakers:
 Connection:    1/8 Jack
 S/P-Dif out:
 Connection:    Optical
 S/P-Dif in:
 Connection:    Optical";

With HDAenabler it's PCI0@0 -> HDEF@1B ->
(http://img384.imageshack.us/img384/2328/afbeelding1bk5.png)

Profiler:
Intel High Definition Audio:

  Apparaatcode:   0x1043829F
  Audiocode:   12
  Beschikbare apparaten:
   
With HDAenabler it shows up in the profiler aswell, but I'm not sure how they do it.
Maybe we could drop the modified kext/Localizable.strings if we modify something in the plist. However the only thing different is PCI0@0 -> HDEF@1B instead of pci8086,293e and the credits (which must be useless).

Modified kext pci8086,293e@1b->
(http://img167.imageshack.us/img167/2174/afbeelding4gd0.png)

Best working (3 line outs) AppleHDA.kext (http://wiki.taruga.net/tiki-download_file.php?fileId=68)


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: sama7896 on June 07, 2008, 07:09:10 PM
thanks for the tweak on the profiler


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: pcwiz on July 09, 2008, 05:51:57 PM
Maybe you should mention that you don't necessarily need IORegistryExplorer. You can get the same info using the ioreg command built into OS X:

Code:
$ ioreg -p IODeviceTree -n AZAL@1B -r
+-o AZAL@1B  <class IOPCIDevice, registered, matched, active, busy 1, retain 8>
    {
      "IOPCIResourced" = Yes
      "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController$
      "IOName" = "pci8086,293e"
      "subsystem-id" = <02a00000>
      "IOPCIExpressLinkCapabilities" = 0
      "IODeviceMemory" = (({"address"=18446744073594208256,"length"=16384}))
      "layout-id" = <0c000000>
      "class-code" = <00030400>
      "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
      "revision-id" = <02000000>
      "IOInterruptSpecifiers" = (<1600000007000000>,<0300000000000100>)
      "assigned-addresses" = <10d8008200000000000020f90000000000400000>
      "built-in" = <00>
      "acpi-device" = "IOACPIPlatformDevice is not serializable"
      "device-id" = <3e290000>
      "vendor-id" = <86800000>
      "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AZAL@1b0000"
      "subsystem-vendor-id" = <58140000>
      "name" = "pci8086,293e"
      "IOPCIExpressLinkStatus" = 0
      "reg" = <00d800000000000000000000000000000000000010d800020000000000000000$
      "compatible" = <"pci1458,a002","pci8086,293e","pciclass,040300">
      "PinConfigurations" = <104011011220010111600101141001013099a1013f90a10231$
    }
   

$


Title: Re: How To: EFI GFX+Audio Introduction & Tutorial
Post by: MoDs on July 09, 2008, 10:11:01 PM
Maybe you should mention that you don't necessarily need IORegistryExplorer. You can get the same info using the ioreg command built into OS X:

Code:
$ ioreg -p IODeviceTree -n AZAL@1B -r
+-o AZAL@1B  <class IOPCIDevice, registered, matched, active, busy 1, retain 8>
    {
      "IOPCIResourced" = Yes
      "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController$
      "IOName" = "pci8086,293e"
      "subsystem-id" = <02a00000>
      "IOPCIExpressLinkCapabilities" = 0
      "IODeviceMemory" = (({"address"=18446744073594208256,"length"=16384}))
      "layout-id" = <0c000000>
      "class-code" = <00030400>
      "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}
      "revision-id" = <02000000>
      "IOInterruptSpecifiers" = (<1600000007000000>,<0300000000000100>)
      "assigned-addresses" = <10d8008200000000000020f90000000000400000>
      "built-in" = <00>
      "acpi-device" = "IOACPIPlatformDevice is not serializable"
      "device-id" = <3e290000>
      "vendor-id" = <86800000>
      "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AZAL@1b0000"
      "subsystem-vendor-id" = <58140000>
      "name" = "pci8086,293e"
      "IOPCIExpressLinkStatus" = 0
      "reg" = <00d800000000000000000000000000000000000010d800020000000000000000$
      "compatible" = <"pci1458,a002","pci8086,293e","pciclass,040300">
      "PinConfigurations" = <104011011220010111600101141001013099a1013f90a10231$
    }
   

$

True, but this tutorial was targeted for experts *and* beginners. I think the IORegistryExplorer approach is easier than using the ioreg command line.

Anyways, I appreciate  your help :)

MoDs