~pcwiz Posted July 6, 2008 Share Posted July 6, 2008 Well I didn't see this explained anywhere else so here goes. NO guarantee that this will work!: 1) Download gfxutil from here 2) Place the gfxutil executable on your desktop, open Terminal and run the following commands to copy gfxutil to the bin folder: sudo -s [enter password] cp -R ~/Desktop/gfxutil /bin/ 3) Run the following command in Terminal: gfxutil -f ethernet You get an output something like: DevicePath = PciRoot(0x1)/Pci(0x1c,0x5)/Pci(0x0,0x0) Just drop the "DevicePath = " part and copy the "PciRoot(0x1)/Pci(0x1c,0x5)/Pci(0x0,0x0)" part to the clipboard. Note that the PciRoot path changes depending on your configuration. 4) Copy this plist file to a text editor (TextEdit, etc.): <?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>##-your-path-here-##</key> <dict> <key>built-in</key> <string>0x01</string> </dict> </dict> </plist> Now replace the "##-your-path-here-##" with the PciRoot path you copied to the clipboard. The final plist looks something like this: <?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(0x1c,0x5)/Pci(0x0,0x0)</key> <dict> <key>built-in</key> <string>0x01</string> </dict> </dict> </plist> Now you have to make sure that this is in plain text. In TextEdit, go to the format menu and click "Make Plain Text". Now save it as "ethernet.plist" on your Desktop, if it asks you whether you are sure you want to save it with that extension, just accept and use .plist. 5) Open Terminal again and run the following commands: cd ~/Desktop gfxutil -i xml -o hex ethernet.plist ethernet.hex mv ~/Desktop/ethernet.hex ethernet.txt 6) There will be a file called "ethernet.txt" on the desktop now. Open this file and you will see a hex string something like this: 4b00000001000000010000003f0000000100000002010c00d041030a0100000001010600051c0101 60000007fff0400160000006200750069006c0074002d0069006e0000000500000001 Of course your string may be different. Copy this long string to the clipboard. Now, run the following command from Terminal: cp -R /Library/Preferences/SystemConfiguration/com.apple.Boot.plist ~/Desktop/ 7) Now there will be com.apple.Boot.plist on your desktop. Open the plist with a text editor. It will show something like this: <?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>Timeout</key> <string>5</string> </dict> </plist> Your plist may differ from this one, don't worry about it. Now, right before the "" line, add these two lines: <key>device-properties</key> <string>##your-hex-string</string> Replace "##your-hex-string" with the hexadecimal string you copied earlier. The plist should now look something like: <?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>Timeout</key> <string>5</string> <key>device-properties</key> <string>4b00000001000000010000003f0000000100000002010c00d041030a0100000001010600051c 101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001</string> </dict> </plist> OK now save the plist. 8) Now we have to copy the plist back. Open Terminal and type in: sudo -s cp -R /Library/Preferences/SystemConfiguration/com.apple.Boot.plist /Library/Preferences/SystemConfiguration/efibackup.plist cp -R ~/Desktop/com.apple.Boot.plist /Library/Preferences/SystemConfiguration/ Thats it! Repair permissions, cross your fingers, and reboot Link to comment Share on other sites More sharing options...
Winters75 Posted October 23, 2008 Share Posted October 23, 2008 Hi! Is it the same procedure for a graphics card? Link to comment Share on other sites More sharing options...
dankasfuk Posted October 27, 2008 Share Posted October 27, 2008 Hi pcwiz, thanks for the how to! Everything works fine until I try to convert my .plist file to hex, then I get the dreaded "gfxutil: invalid property list xml inputfile 'ethernet.plist'!" error. Any suggestions? Thanks! Mike Link to comment Share on other sites More sharing options...
~pcwiz Posted October 27, 2008 Author Share Posted October 27, 2008 Well its almost the same for a graphics card, but the device path and the majority of the plist will be different so its a bit harder. As for the problem with ethernet.plist, maybe you made a typo somewhere? One common issue is that you used saved it in some formatted format (e.g. RTF, which TextEdit saves to automatically). Make SURE that if you are using TextEdit its in "Plain Text" mode. If it still doesn't work OSx86Tools can do this automatically for you Link to comment Share on other sites More sharing options...
cipz Posted February 17, 2009 Share Posted February 17, 2009 how if i want to use 2 kind of efi strings? 1 for vga string 1 for ethernet string how do i set those in com.apple.Boot.plist? <key>device-properties</key> <string>vgastring+ethernetstring</string> --> filled with 2 strings in one field or <key>device-properties</key> <string>vgastring</string> <key>device-properties</key> <string>ethernetstring</string> --> filled each string in one field thanks in advanced.. Link to comment Share on other sites More sharing options...
Bit Shoveler Posted February 17, 2009 Share Posted February 17, 2009 how if i want to use 2 kind of efi strings? 1 for vga string 1 for ethernet string how do i set those in com.apple.Boot.plist? See the file that gets generated in step 4 of ~pcwiz's first post? You have a couple of files that look like this Time Machine Ethernet fix: <?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(0x1c,0x5)/Pci(0x0,0x0)</key> <dict> <key>built-in</key> <string>0x01</string> </dict> </dict> </plist> And this graphics card description (this example is for my GeForce 9600 GT card): <?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>NVCAP</key> <data> BAAAAAAAAwAMAAAAAAAABwAAAAA= </data> <key>NVPM</key> <data> AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== </data> <key>VRAM,totalsize</key> <string>0x20000000</string> <key>device_type</key> <string>NVDA,Parent</string> <key>model</key> <string>PNY Verto GeForce 9600GT</string> <key>name</key> <string>display</string> <key>rom-revision</key> <string>PNY Verto GeForce 9600GT OpenGL Engine [EFI]</string> </dict> </dict> </plist> You need to merge the contents of the two files. Take the inner key-dict pairs and splice them together like this: <?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(0x1c,0x5)/Pci(0x0,0x0)</key> <dict> <key>built-in</key> <string>0x01</string> </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>NVCAP</key> <data> BAAAAAAAAwAMAAAAAAAABwAAAAA= </data> <key>NVPM</key> <data> AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== </data> <key>VRAM,totalsize</key> <string>0x20000000</string> <key>device_type</key> <string>NVDA,Parent</string> <key>model</key> <string>PNY Verto GeForce 9600GT</string> <key>name</key> <string>display</string> <key>rom-revision</key> <string>PNY Verto GeForce 9600GT OpenGL Engine [EFI]</string> </dict> </dict> </plist> Then continue from step 5 - use gfxutil to encode this plist into hex and insert that as the device-properties string in com.apple.Boot.plist. Link to comment Share on other sites More sharing options...
Scumble B Posted March 24, 2009 Share Posted March 24, 2009 Hey, Great guide, thanks for posting this info PCWIZ, and Bit Shovler for the combo string clarifiacation!I was able to get my GeForce 9600GT working properly on retail 10.5.6 on Asus P5Q. I attempted to get my Intel Ethernet Pro 100 PCI card working with efi, I combined the keys and generated the hex as I did when I got the GFX straightened out. There was good news, and bad news. The good news was that I am still able to boot, and my GFX card is stiill working properly. The bad, ethernet did not work still. If anyone can point me in the right direction on getting either my intel ethernet pro 100 card, or my p5q boards built in attansic L1e ethernet working, then I would be really set. I will be trying the same steps for the onboard LAN next, but that seems like a dead end. EDIT Well things got a little strange. I managed to trick OSX into picking up the intel pci nic, by re enabling the onboard lan. I was able to reach my network and internet like a charm, but strangely and unfortunately this stops working after the following reboot. At first I though I screwed something up by being impatient and adding changes to the strings but I repeated the original steps and same thing happened. What I did was, with onboard LAN disabled in BIOS, ran gfxutil and got my devicepath for ethernet, so I'm assuming it is only dealing with the Intel Pro 100 PCI card. I use the path and combine the keys with my working gfx string, generate the hex, back up my boot.plist, replace with new edited one. Reboot, LAN not working, no MAC listed, no go, now I reboot, enable onboard LAN in BIOS, boot into OSX, check network pane, NIC IS WORKING!, the cable is in the secondary PCI intel card. reboot again, now NIC is back to showing no MAC. I'm lost as to how to fix this. When I plug rj45 to the onboard nic the status never changed, only the intel PCI card ever did. LSPCI info: 02:00.0 Ethernet controller [0200]: Attansic Technology Corp. L1 Gigabit Ethernet Adapter [1969:1026] (rev b0) 04:01.0 Ethernet controller [0200]: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 [8086:1229] (rev 0c) Link to comment Share on other sites More sharing options...
Warren21 Posted September 11, 2009 Share Posted September 11, 2009 Thanks for the instruction...I will now reboot the pc for the result...I hope i will not encounter errors. Regards Albert _____ Pret immobilier Link to comment Share on other sites More sharing options...
Recommended Posts