Jump to content

Shub

Members
  • Content count

    2
  • Joined

  • Last visited

About Shub

  • Rank
    InsanelyMac Protégé

Profile Information

  • Gender
    Male
  1. Hi all! I have an Asus P8Z68-V Pro board with an I5-2500K CPU (HD3000 integrated GPU) and an AMD 7870. The problem: MacOs Mountain Lion does not support my 7870, but does support the HD3000 GPU, and accelerated. I'm using Chimera as bootloader. Chimera can inject EFI string for HD3000, and it works great, but only if you don't have a second UNSUPPORTED graphics card, like me. In my case, even if i set from the bios the HD3000 GPU as default and so on, and attach the DVI cable to the mobo, Chimera finds an AMD GPU and injects the EFI framebuffer infos, which are WRONG from the 7870. The system hangs. On the other side, if I tell Chimera not to inject anything (GraphicsEnabler=No in org.chameleon.Boot.plist), I have no acceleration. My solution is to create an ad hoc EFI string to be put into org.chameleon.Boot.plist and injected by Chimera at boot time. So, I created a plist file, converted it into hex using gfxutil and inserted the hex string into org.chameleon.Boot.plist: it worked! 1) use gfxutil to find the PCI path to the HD3000: i used the GFX0 name, it may be different on other pc (IGPU for example) localhost:~ shub$ gfxutil -f GFX0 DevicePath = PciRoot(0x0)/Pci(0x2,0x0) localhost:~ shub$ 2) start Property List Editor and create something like this: put the DevicePath, the part after the "=", as below: 3) Now we have to add some entries. I copied these ones from my pc booted without the 7870 (physically removed) and with the Chimera injector active (GraphicsEnabler=Yes). I have to mess up a little with data type and string types. If I used the string type, some options were interpreted as data type, so I had to convert each char of the strings into corrisponding hex ASCII value. You can find some of this values in Chimera source (gma.c). Here they are. name, compatible, model, and hda-gfx are strings (null terminated). compatible are three strings null terminated. "name"=<646973706c617900> "AAPL,os-info"=<30490112121208000001f01f0100000010070000> "compatible"=<706369313034332c3834346400706369383038362c31323600706369636c6173732c30333030303000> "model"=<496e74656c204844204772617068696373203330303000> "hda-gfx"=<6f6e626f6172642d3100> "AAPL,tbl-info"=<304402020202000000000202020201010101> "AAPL,iokit-ndrv"=<206d99807fffffff> "class-code"=0x00030000 "reg"=<0010000000000000000000000000000000000000101000020000000000000000000000000000400018100042000000000000000000000000000000102010000100000000000000000000000040000000> "pcidebug"='0:2:0' "built-in"=0x00 "AAPL,gray-page"=0x00000001 "AAPL,gray-value"=0x00648cc3 "device-id"=0x00000126 The result in ioreg: as you can see, data turned into strings. 4) Anyway, after you created the plist as above, save it like let's say hd3000.plist and create the hex string with this command: localhost:~ shub$ gfxutil -v -i xml -o hex hd3000.plist hd3000.hex o device-properties <size=678, children=1> | +-o PciRoot(0x0)/Pci(0x2,0x0) <size=666, records=14> { "name"=<646973706c617900> "AAPL,os-info"=<30490112121208000001f01f0100000010070000> "compatible"=<706369313034332c3834346400706369383038362c31323600706369636c6173732c30333030303000> "model"=<496e74656c204844204772617068696373203330303000> "hda-gfx"=<6f6e626f6172642d3100> "AAPL,tbl-info"=<304402020202000000000202020201010101> "AAPL,iokit-ndrv"=<206d99807fffffff> "class-code"=<00000300> "reg"=<0010000000000000000000000000000000000000101000020000000000000000000000000000400018100042000000000000000000000000000000102010000100000000000000000000000040000000> "pcidebug"='0:2:0' "built-in"=<00> "AAPL,gray-page"=<01000000> "AAPL,gray-value"=<c38c6400> "device-id"=<26010000> } localhost:~ shub$ 5) Now you have the EFI string into hd3000.hex file. To tell Chimera to inject it, open your org.chameleon.Boot.plist and insert something like this: <key>device-properties</key <string>a602000001000000010000009a0200000e00000002010c00d041030a000000000101060000027fff04000e0000006e0061006d00650000000c000000646973706c6179001e0000004100410050004c002c006f0073002d0069006e0066006f0000001800000030490112121208000001f01f01000000100700001a00000063006f006d00700061007400690062006c00650000002d000000706369313034332c3834346400706369383038362c31323600706369636c6173732c30333030303000100000006d006f00640065006c0000001b000000496e74656c204844204772617068696373203330303000140000006800640061002d0067006600780000000e0000006f6e626f6172642d3100200000004100410050004c002c00740062006c002d0069006e0066006f00000016000000304402020202000000000202020201010101240000004100410050004c002c0069006f006b00690074002d006e0064007200760000000c000000206d99807fffffff1a00000063006c006100730073002d0063006f0064006500000008000000000003000c00000072006500670000005400000000100000000000000000000000000000000000001010000200000000000000000000000000004000181000420000000000000000000000000000001020100001000000000000000000000000400000001600000070006300690064006500620075006700000009000000303a323a30160000006200750069006c0074002d0069006e0000000500000000220000004100410050004c002c0067007200610079002d00700061006700650000000800000001000000240000004100410050004c002c0067007200610079002d00760061006c0075006500000008000000c38c6400180000006400650076006900630065002d006900640000000800000026010000</string> where the neverending string is the hd3000.hex file content. Just ONE line. 6) Disable Chimera auto injection (GraphicsEnabler=No in org.chameleon.Boot.plist) and reboot. It SHOULD work. Note: I think most of the strings in the plist file can be omitted: the most important ones are: AAPL,os-info AAPL,tbl-info built-in class-code device-id hda-gfx model name reg If you have problems, try to delete the others, cause they may be specific for my machine. Result: Have fun! Shub
  2. L'ho cercato sull'enciclopedia. Certo che gli anglofoni amano davvero le sigle. =================================== http://en.wikipedia.org/wiki/SMBIOS SMBIOS From Wikipedia, the free encyclopedia In computing, the System Management BIOS (SMBIOS) specification defines data structures (and access methods) in a BIOS which allows a user or application to store and retrieve information specifically about the computer in question. Circa 1999, it became part of the domain of the Distributed Management Task Force (DMTF). Before this integration, SMBIOS functionality had the name DMIBIOS, since it interacted with Desktop Management Interface (DMI). At approximately the same time Microsoft started to require that OEMs and BIOS vendors support the interface/data-set in order to have Microsoft certification. The DMTF released the current version of the specification, version 2.6.1, on March 17, 2009.
×