xpamamadeus Posted June 27, 2014 Author Share Posted June 27, 2014 Hi xpamamamdeus, I followed your guide exactly, but as you can see dsdt2bios fails with "File has .ROM section. It can't be patched." However I can tell you additionally, that loading DSDT.aml from EFI partition is not working as it should. There are some parts of the existing DSDT merged with the patched DSDT, and that's why my audio still doesn't work. I remember we discussed DSDT patching at MDL so next step is to try it manually. What board/bios u use for this? Link to comment Share on other sites More sharing options...
truemac Posted June 27, 2014 Share Posted June 27, 2014 I tried to make a DSDT but there is no GFX0, PEGP with any reference to aty,framebuffer by using Maciasl and no one has done a DSDT for my board H87M-HD3 bios version F8. You need to edit your SSDT there are PEGP. and to get HDMI and DVI work you need Connectors patch lock here for example http://www.insanelymac.com/forum/topic/249642-editing-custom-personalities-for-ati-radeon-hd45xxx/ or check this Binary patch sudo perl -pi -e 's|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x01\x01\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x02\x01\x22\x05\x05\x02\x04\x00\x00\x00\x14\x02\x00\x00\x00\x01\x03\x00\x00\x00\x06\x06\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x04\x00\x11\x02\x01\x03|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x01\x01\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x02\x01\x22\x05\x05\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x04\x02\x03\x00\x02\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x10\x00\x03\x06|g' /System/Library/Extensions/AMD7000Controller.kext/Contents/MacOS/AMD7000Controller example for Framebuffer. Device (GFX0) { Name (_ADR, Zero) // _ADR: Address Name (_SUN, One) // _SUN: Slot User Number Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (Package (0x02) { 0x09, 0x04 }) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x48) { "@0,AAPL,boot-display", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, "@0,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@0,device_type", Buffer (0x08) { "display" }, "@0,display-type", Buffer (0x04) { "LCD" }, "@0,name", Buffer (0x0D) { "ATY,Futomaki" }, "@0,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 }, "@1,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@1,device_type", Buffer (0x08) { "display" }, "@1,display-type", Buffer (0x05) { "NONE" }, "@1,name", Buffer (0x0D) { "ATY,Futomaki" }, "@1,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "@2,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@2,device_type", Buffer (0x08) { "display" }, "@2,display-type", Buffer (0x05) { "NONE" }, "@2,name", Buffer (0x0D) { "ATY,Futomaki" }, "@2,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "@3,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@3,device_type", Buffer (0x08) { "display" }, "@3,display-type", Buffer (0x05) { "NONE" }, "@3,name", Buffer (0x19) { "ATY,Futomaki" }, "@3,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "ATY,EFIVersion", Buffer (0x09) { /* 0000 */ 0x30, 0x31, 0x2E, 0x30, 0x30, 0x2E, 0x36, 0x38, /* 0008 */ 0x37 }, "ATY,EFICompileDate", Buffer (0x0B) { /* 0000 */ 0x4F, 0x63, 0x74, 0x20, 0x32, 0x33, 0x20, 0x32, /* 0008 */ 0x30, 0x31, 0x33 }, "ATY,EFIDispConfig", Buffer (0x08) { 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, "ATY,EFIDriverType", Buffer (One) { 0x02 }, "ATY,EFIEnabledMode", Buffer (One) { 0x02 }, "ATY,EFIHWInitStatus", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, "ATY,EFIOrientation", Buffer (0x02) { 0x00, 0x02 }, "ATY,EFIVersionB", Buffer (0x0F) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x50, 0x42, 0x2D, 0x30, 0x30, 0x44 }, "ATY,EFIVersionE", Buffer (0x0E) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x46, 0x2D, 0x36, 0x38, 0x37 }, "ATY,Card#", Buffer (0x0E) { /* 0000 */ 0x31, 0x30, 0x39, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x50, 0x41, 0x2D, 0x30, 0x30 }, "device-id", Buffer (0x04) { 0x10, 0x68, 0x00, 0x00 }, "ATY,DeviceID", Buffer (0x02) { 0x10, 0x68 }, "ATY,Rom#", Buffer (0x0F) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x41, 0x43, 0x39, 0x32, /* 0008 */ 0x38, 0x30, 0x30, 0x2D, 0x31, 0x30, 0x32 }, "model", Buffer (0x13) { "AMD Radeon R9 280X" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-2" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } good luck Link to comment Share on other sites More sharing options...
Riley Freeman Posted June 27, 2014 Share Posted June 27, 2014 "File has .ROM section. It can't be patched." My Z68 has the same .ROM section. FredWst doesn't know how to handle this so the warning is to prevent getting a corrupt DSDT (happened here a couple of times but I have a USB programmer to reflash). Once you have a working DSDT you'll have to manually add it to the BIOS by overwriting the existing one. It will have to be the same size as the original (padding is allowed). So you might have to remove a device or two to get the size down. 1 Link to comment Share on other sites More sharing options...
THe KiNG Posted June 27, 2014 Share Posted June 27, 2014 You need to edit your SSDT there are PEGP. and to get HDMI and DVI work you need Connectors patch lock here for example http://www.insanelymac.com/forum/topic/249642-editing-custom-personalities-for-ati-radeon-hd45xxx/ or check this Binary patch sudo perl -pi -e 's|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x01\x01\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x02\x01\x22\x05\x05\x02\x04\x00\x00\x00\x14\x02\x00\x00\x00\x01\x03\x00\x00\x00\x06\x06\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x04\x00\x11\x02\x01\x03|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x01\x01\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x02\x01\x22\x05\x05\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x04\x02\x03\x00\x02\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x10\x00\x03\x06|g' /System/Library/Extensions/AMD7000Controller.kext/Contents/MacOS/AMD7000Controller example for Framebuffer. Device (GFX0) { Name (_ADR, Zero) // _ADR: Address Name (_SUN, One) // _SUN: Slot User Number Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (Package (0x02) { 0x09, 0x04 }) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x48) { "@0,AAPL,boot-display", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, "@0,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@0,device_type", Buffer (0x08) { "display" }, "@0,display-type", Buffer (0x04) { "LCD" }, "@0,name", Buffer (0x0D) { "ATY,Futomaki" }, "@0,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 }, "@1,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@1,device_type", Buffer (0x08) { "display" }, "@1,display-type", Buffer (0x05) { "NONE" }, "@1,name", Buffer (0x0D) { "ATY,Futomaki" }, "@1,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "@2,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@2,device_type", Buffer (0x08) { "display" }, "@2,display-type", Buffer (0x05) { "NONE" }, "@2,name", Buffer (0x0D) { "ATY,Futomaki" }, "@2,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "@3,compatible", Buffer (0x0D) { "ATY,Futomaki" }, "@3,device_type", Buffer (0x08) { "display" }, "@3,display-type", Buffer (0x05) { "NONE" }, "@3,name", Buffer (0x19) { "ATY,Futomaki" }, "@3,VRAM,memsize", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }, "ATY,EFIVersion", Buffer (0x09) { /* 0000 */ 0x30, 0x31, 0x2E, 0x30, 0x30, 0x2E, 0x36, 0x38, /* 0008 */ 0x37 }, "ATY,EFICompileDate", Buffer (0x0B) { /* 0000 */ 0x4F, 0x63, 0x74, 0x20, 0x32, 0x33, 0x20, 0x32, /* 0008 */ 0x30, 0x31, 0x33 }, "ATY,EFIDispConfig", Buffer (0x08) { 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, "ATY,EFIDriverType", Buffer (One) { 0x02 }, "ATY,EFIEnabledMode", Buffer (One) { 0x02 }, "ATY,EFIHWInitStatus", Buffer (0x08) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, "ATY,EFIOrientation", Buffer (0x02) { 0x00, 0x02 }, "ATY,EFIVersionB", Buffer (0x0F) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x50, 0x42, 0x2D, 0x30, 0x30, 0x44 }, "ATY,EFIVersionE", Buffer (0x0E) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x46, 0x2D, 0x36, 0x38, 0x37 }, "ATY,Card#", Buffer (0x0E) { /* 0000 */ 0x31, 0x30, 0x39, 0x2D, 0x43, 0x34, 0x30, 0x31, /* 0008 */ 0x32, 0x50, 0x41, 0x2D, 0x30, 0x30 }, "device-id", Buffer (0x04) { 0x10, 0x68, 0x00, 0x00 }, "ATY,DeviceID", Buffer (0x02) { 0x10, 0x68 }, "ATY,Rom#", Buffer (0x0F) { /* 0000 */ 0x31, 0x31, 0x33, 0x2D, 0x41, 0x43, 0x39, 0x32, /* 0008 */ 0x38, 0x30, 0x30, 0x2D, 0x31, 0x30, 0x32 }, "model", Buffer (0x13) { "AMD Radeon R9 280X" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-2" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } good luck Maybe connector perl patch to help him, basically he needs to disable Ozmosis ATI injector(that is what he does with Clover) and that, as I said is not possible at this moment. Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted June 27, 2014 Share Posted June 27, 2014 What board/bios u use for this? P8Z77-V LX UEFI v2403 (latest) My Z68 has the same .ROM section. FredWst doesn't know how to handle this so the warning is to prevent getting a corrupt DSDT (happened here a couple of times but I have a USB programmer to reflash). Once you have a working DSDT you'll have to manually add it to the BIOS by overwriting the existing one. It will have to be the same size as the original (padding is allowed). So you might have to remove a device or two to get the size down. yeah, me too, I replaced the DSDT section with patched one and zeroed out the rest of the unused, original range, but at reboot I got a blackscreen, could only restore my bios using spipgm Link to comment Share on other sites More sharing options...
Riley Freeman Posted June 27, 2014 Share Posted June 27, 2014 That happened here the first time too. Think I deleted/renamed something I shouldn't have. Since then I just apply the bare minimum patches and it's been good. 1 Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted June 29, 2014 Share Posted June 29, 2014 That happened here the first time too. Think I deleted/renamed something I shouldn't have. Since then I just apply the bare minimum patches and it's been good. thanks, you're right but I guess that's not ideal, I asked in the QUO section how to change the acpi loader mode for loading an untouched DSDT.aml with windows and a modified, optimized one with OS X. Link to comment Share on other sites More sharing options...
Riley Freeman Posted June 29, 2014 Share Posted June 29, 2014 Using Method OSDW you can make your patches conditional, so they only load under OS X. This is what Apple use and it's also in the Ozmosis DSDT. This way you can keep the Windows side largely untouched. Here's a snippet of my DSDT patch so you can see how it works. # ******************************************************************************** # Add method OSDW # ******************************************************************************** into method label OSDW remove_entry; into definitionblock code_regex . insert begin Method (OSDW, 0, NotSerialized)\n {\n If (LEqual (OSYS, 0x2710))\n {\n Return (One)\n }\n Else\n {\n Return (Zero)\n }\n } end; # ******************************************************************************** # Add Darwin to OS list # ******************************************************************************** into method label _INI replace_content begin Store (0x07D0, OSYS)\n If (CondRefOf (_OSI, Local0))\n {\n If (_OSI ("Darwin"))\n {\n Store (0x2710, OSYS)\n }\n If (_OSI ("Windows 2001"))\n {\n Store (0x07D1, OSYS)\n }\n If (_OSI ("Windows 2001 SP1"))\n {\n Store (0x07D1, OSYS)\n }\n If (_OSI ("Windows 2001 SP2"))\n {\n Store (0x07D2, OSYS)\n }\n If (_OSI ("Windows 2001.1"))\n {\n Store (0x07D3, OSYS)\n }\n If (_OSI ("Windows 2006"))\n {\n Store (0x07D6, OSYS)\n }\n If (_OSI ("Windows 2009"))\n {\n Store (0x07D9, OSYS)\n }\n }\n end; # ******************************************************************************** # Inject HDEF device (Layout ID 1) # ******************************************************************************** into method label _DSM parent_adr 0x001B0000 remove_entry; into device name_adr 0x001B0000 insert begin Method (_DSM, 4, NotSerialized)\n {\n Store (Package (0x04)\n {\n "layout-id",\n Buffer (0x04)\n {\n 0x01, 0x00, 0x00, 0x00\n },\n "PinConfigurations",\n Buffer (Zero) {}\n }, Local0)\n DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n If (OSDW ())\n {\n Return (Local0)\n }\n Else\n {\n Return (Zero)\n }\n } end; You just have to replace the "Return (Local0)" that's at the end of most of your patches with the "If (OSDW ())" section. 1 Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted June 29, 2014 Share Posted June 29, 2014 Using Method OSDW you can make your patches conditional, so they only load under OS X. This is what Apple use and it's also in the Ozmosis DSDT. This way you can keep the Windows side largely untouched. Here's a snippet of my DSDT patch so you can see how it works. # ******************************************************************************** # Add method OSDW # ******************************************************************************** into method label OSDW remove_entry; into definitionblock code_regex . insert begin Method (OSDW, 0, NotSerialized)\n {\n If (LEqual (OSYS, 0x2710))\n {\n Return (One)\n }\n Else\n {\n Return (Zero)\n }\n } end; # ******************************************************************************** # Add Darwin to OS list # ******************************************************************************** into method label _INI replace_content begin Store (0x07D0, OSYS)\n If (CondRefOf (_OSI, Local0))\n {\n If (_OSI ("Darwin"))\n {\n Store (0x2710, OSYS)\n }\n If (_OSI ("Windows 2001"))\n {\n Store (0x07D1, OSYS)\n }\n If (_OSI ("Windows 2001 SP1"))\n {\n Store (0x07D1, OSYS)\n }\n If (_OSI ("Windows 2001 SP2"))\n {\n Store (0x07D2, OSYS)\n }\n If (_OSI ("Windows 2001.1"))\n {\n Store (0x07D3, OSYS)\n }\n If (_OSI ("Windows 2006"))\n {\n Store (0x07D6, OSYS)\n }\n If (_OSI ("Windows 2009"))\n {\n Store (0x07D9, OSYS)\n }\n }\n end; # ******************************************************************************** # Inject HDEF device (Layout ID 1) # ******************************************************************************** into method label _DSM parent_adr 0x001B0000 remove_entry; into device name_adr 0x001B0000 insert begin Method (_DSM, 4, NotSerialized)\n {\n Store (Package (0x04)\n {\n "layout-id",\n Buffer (0x04)\n {\n 0x01, 0x00, 0x00, 0x00\n },\n "PinConfigurations",\n Buffer (Zero) {}\n }, Local0)\n DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n If (OSDW ())\n {\n Return (Local0)\n }\n Else\n {\n Return (Zero)\n }\n } end; You just have to replace the "Return (Local0)" that's at the end of most of your patches with the "If (OSDW ())" section. Thanks, very interesting, I wasn't aware of that, and how did you solve ssdt patching or did you leave it untouched? Link to comment Share on other sites More sharing options...
Riley Freeman Posted June 29, 2014 Share Posted June 29, 2014 I wasn't able to make the SSDT injection conditional but it hasn't had any side effects on Windows. Link to comment Share on other sites More sharing options...
xelanaiznac Posted July 2, 2014 Share Posted July 2, 2014 hi guys. someone here has problem in installing the new nvidia web driver? i just downloaded the webdriver-334.01.02f02.pkg (for 10.9.4) and it gives me always error at the end of the installation. i uninstalled the old driver first, then i installed the new, but it gives me error gtx 780 ti, imac14,2 as system definition Link to comment Share on other sites More sharing options...
Aigors Posted July 2, 2014 Share Posted July 2, 2014 hi guys. someone here has problem in installing the new nvidia web driver? i just downloaded the webdriver-334.01.02f02.pkg (for 10.9.4) and it gives me always error at the end of the installation. i uninstalled the old driver first, then i installed the new, but it gives me error gtx 780 ti, imac14,2 as system definition I dont think it's ozmosis related problem Link to comment Share on other sites More sharing options...
Riley Freeman Posted July 2, 2014 Share Posted July 2, 2014 I always get that error too. The drivers are installed, it's the nvidia menu that fails. You can just add nvda_drv=1 to your boot-args in nvram to enable the new drivers. Link to comment Share on other sites More sharing options...
xelanaiznac Posted July 2, 2014 Share Posted July 2, 2014 I always get that error too. The drivers are installed, it's the nvidia menu that fails. You can just add nvda_drv=1 to your boot-args in nvram to enable the new drivers. i had never that error with the previous installation, even using ozmosis with imac14,2 i have nvda_drv=1 in my ozmosisdefault. it works with the previous version, but no with this version of web driver. so i have a no working gtx780 ti for now edit: solved using fakesmc by slice instead of smcemulator Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted July 4, 2014 Share Posted July 4, 2014 I need a fix for iMessage, therefor I set 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:BaseBoardSerial C02140302CAFEBEEF (17 digits) and 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ROM %10%caHfebe%ef (hw mac adress, but which format is correct, it looks wrong?) also I saw 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:MLB is missing how are the values for BaseBoardSerial, Mac and MLB generated correctly for iMac13,2? best regards Link to comment Share on other sites More sharing options...
Kynyo Posted July 5, 2014 Share Posted July 5, 2014 sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB= sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM= sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:BaseBoardSerial=17digits Reboot. It will work. 1 Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted July 6, 2014 Share Posted July 6, 2014 sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB= sudo nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM= sudo nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:BaseBoardSerial=17digits Reboot. It will work. thanks a lot, looks good but maybe it's a bug on yosemite, the log shows: 06.07.14 11:39:27,239 com.apple.xpc.launchd[1]: (com.apple.imfoundation.IMRemoteURLConnectionAgent) The _DirtyJetsamMemoryLimit key is not available on this platform. it's just not logging in, anyway bdmesg shows: 28:042 00:000 Setting RS+BS 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB 17 bytes - Success oh, on mavericks 10.9.4 the same issue I guess Link to comment Share on other sites More sharing options...
blackosx Posted July 6, 2014 Share Posted July 6, 2014 Does anybody know how to use the nvram app, included in HermitShellX64, from the shell? I would like to think I could write nvram variables with it but I can't figure out how. I've tried using it like I would from OS X. nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ProductName=iMac12,2But I don't see any difference when running dmpstore. Otherwise, can Ozmosis read the OzmosisDefaults file from disk? Maybe load from some location inside ESP\EFI\Quo directory? If yes, does it need to be a .ffs file or can it just be a plain text xml file? Link to comment Share on other sites More sharing options...
StoneTemplePilots Posted July 6, 2014 Share Posted July 6, 2014 Does anybody know how to use the nvram app, included in HermitShellX64, from the shell? I would like to think I could write nvram variables with it but I can't figure out how. I've tried using it like I would from OS X. nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:ProductName=iMac12,2But I don't see any difference when running dmpstore. Otherwise, can Ozmosis read the OzmosisDefaults file from disk? Maybe load from some location inside ESP\EFI\Quo directory? If yes, does it need to be a .ffs file or can it just be a plain text xml file? Hi blackosx, tuxuser provided a solution using the setvar command from uefi shell. Link to comment Share on other sites More sharing options...
blackosx Posted July 6, 2014 Share Posted July 6, 2014 Thanks LightServer. I'd missed that post. I'll try using setvar EDIT: hermitShellX64.efi does not contain the setvar command. ? - Displays the EFI Shell command list or verbose command help alias - Displays, creates, or deletes EFI Shell aliases attrib - Displays or changes the attributes of files or directories bcfg - Manages the boot and driver options that are stored in NVRAM. bdmesg - Displays the booter message log. cd - Displays or changes the current directory cls - Clears standard output and optionally changes background color comp - Compares the contents of two files connect - Connects one or more EFI drivers to a device cp - Copies one or more files or directories to another location date - Displays or changes the current system date dblk - Displays one or more blocks from a block device devices - Displays the list of devices managed by EFI drivers devtree - Displays the EFI Driver Model compliant device tree dh - Displays EFI handle information disconnect - Disconnects one or more EFI drivers from a device diskpart - Start GPT disk partitioning program. dmem - Displays the contents of memory dmpstore - Displays all EFI NVRAM variables drivers - Displays the EFI driver list drvcfg - Invokes the Driver Configuration Protocol drvdiag - Invokes the Driver Diagnostics Protocol echo - Controls batch file command echoing or displays a message edit - Full screen editor for ASCII or UNICODE files eficompress - Compress a file efidecompress - Decompress a file err - Displays or changes the error level exit - Exits the EFI Shell environment for - Executes commands for each item in a set of items goto - Forces batch file execution to jump to specified location gptsync - GPT to MBR partition table synchronisation tool. guid - Displays all registered EFI GUIDs help - Displays the EFI Shell command list or verbose command help hexedit - Full screen hex editor if - Executes commands in specified conditions ifconfig - Modify the default IP address of UEFI network stack ipconfig - Displays or modifies the current IP configuration load - Loads and optionally connects one or more EFI drivers loadpcirom - Loads a PCI Option ROM ls - Displays a list of files and subdirectories in a directory map - Displays or defines mappings mem - Displays the contents of memory memmap - Displays the memory map mkdir - Creates one or more directories mm - Displays or modifies MEM/MMIO/IO/PCI/PCIE address space mode - Displays or changes the console output device mode mount - Mounts a file system on a block device mv - Moves one or more files or directories to another location nvram - Manipulates the booter NVRam settings. openinfo - Displays the protocols and agents associated with a handle pause - Prints a message and waits for keyboard input pci - Displays PCI device list or PCI function configuration space ping - Ping a target machine with UEFI network stack reconnect - Reconnects one or more EFI drivers to a device reset - Resets the system rm - Deletes one or more files or directories sermode - Sets serial port attributes set - Displays or modifies EFI Shell environment variables shift - Shifts batch file input parameter positions smbiosview - Displays SMBIOS information stall - Stalls the processor for the specified number of microseconds telnetmgmt - Change terminal type time - Displays or changes the current system time timezone - Displays or sets time zone information touch - Updates filename timestamp with current system date and time type - Displays file contents unload - Unloads a EFI driver ver - Displays EFI Firmware version information vol - Displays or changes a file system volume label Maybe I need to find, or build, a different version of shell app? Link to comment Share on other sites More sharing options...
bs0d Posted July 6, 2014 Share Posted July 6, 2014 you can place a Defaults.plist file in /EFI/Quo and it will take precedence of any found in firmware 1 Link to comment Share on other sites More sharing options...
bs0d Posted July 6, 2014 Share Posted July 6, 2014 Thanks LightServer. I'd missed that post. I'll try using setvar EDIT: hermitShellX64.efi does not contain the setvar command. ? - Displays the EFI Shell command list or verbose command help alias - Displays, creates, or deletes EFI Shell aliases attrib - Displays or changes the attributes of files or directories bcfg - Manages the boot and driver options that are stored in NVRAM. bdmesg - Displays the booter message log. cd - Displays or changes the current directory cls - Clears standard output and optionally changes background color comp - Compares the contents of two files connect - Connects one or more EFI drivers to a device cp - Copies one or more files or directories to another location date - Displays or changes the current system date dblk - Displays one or more blocks from a block device devices - Displays the list of devices managed by EFI drivers devtree - Displays the EFI Driver Model compliant device tree dh - Displays EFI handle information disconnect - Disconnects one or more EFI drivers from a device diskpart - Start GPT disk partitioning program. dmem - Displays the contents of memory dmpstore - Displays all EFI NVRAM variables drivers - Displays the EFI driver list drvcfg - Invokes the Driver Configuration Protocol drvdiag - Invokes the Driver Diagnostics Protocol echo - Controls batch file command echoing or displays a message edit - Full screen editor for ASCII or UNICODE files eficompress - Compress a file efidecompress - Decompress a file err - Displays or changes the error level exit - Exits the EFI Shell environment for - Executes commands for each item in a set of items goto - Forces batch file execution to jump to specified location gptsync - GPT to MBR partition table synchronisation tool. guid - Displays all registered EFI GUIDs help - Displays the EFI Shell command list or verbose command help hexedit - Full screen hex editor if - Executes commands in specified conditions ifconfig - Modify the default IP address of UEFI network stack ipconfig - Displays or modifies the current IP configuration load - Loads and optionally connects one or more EFI drivers loadpcirom - Loads a PCI Option ROM ls - Displays a list of files and subdirectories in a directory map - Displays or defines mappings mem - Displays the contents of memory memmap - Displays the memory map mkdir - Creates one or more directories mm - Displays or modifies MEM/MMIO/IO/PCI/PCIE address space mode - Displays or changes the console output device mode mount - Mounts a file system on a block device mv - Moves one or more files or directories to another location nvram - Manipulates the booter NVRam settings. openinfo - Displays the protocols and agents associated with a handle pause - Prints a message and waits for keyboard input pci - Displays PCI device list or PCI function configuration space ping - Ping a target machine with UEFI network stack reconnect - Reconnects one or more EFI drivers to a device reset - Resets the system rm - Deletes one or more files or directories sermode - Sets serial port attributes set - Displays or modifies EFI Shell environment variables shift - Shifts batch file input parameter positions smbiosview - Displays SMBIOS information stall - Stalls the processor for the specified number of microseconds telnetmgmt - Change terminal type time - Displays or changes the current system time timezone - Displays or sets time zone information touch - Updates filename timestamp with current system date and time type - Displays file contents unload - Unloads a EFI driver ver - Displays EFI Firmware version information vol - Displays or changes a file system volume label Maybe I need to find, or build, a different version of shell app? HermitShell is based on edkshell, which lacks the command. Setvar is available in the efishell which is part of edk2. Link to comment Share on other sites More sharing options...
blackosx Posted July 6, 2014 Share Posted July 6, 2014 you can place a Defaults.plist file in /EFI/Quo and it will take precedence of any found in firmware Wonderful. Thank you. Let me see if I can get it working. Setvar is available in the efishell which is part of edk2. Okay. Thanks again. Link to comment Share on other sites More sharing options...
blackosx Posted July 6, 2014 Share Posted July 6, 2014 You could use a shell script to load Ozmosis and HFSPlus and then start whatever app you like. e.g. rEFIt or boot.efi. Or recompile dbounce.c from rEFIt to make it load Ozmosis and Hfsplus and then start the app you like. You can add dbounce.efi as a boot option via bcfg and choose it from F12 menu. Then you have what you are looking for I have tried to see if I can recompile dbounce.c but have failed so far because my knowledge of how to is not there yet. I did set myself up with UDK2014 and Windows Visual Studio 2008 and try it that way but I found I was missing a .inf file, and also some headers which I found in gnu-efi. I had a go at creating a .inf file but think maybe I need to forget about that and try to compile it in Linux using gnu-efi and the dbounce.mak file. Instead I have looked at the EFI shell script route combined with rEFIt and found the only stumbling block was not being able to set the nvram variables from my platform from efi shell. Loading Defaults.plist from /EFI/Quo didn't seem to work so for now I booted in to OS X using clover, manually set the nvram vars then rebooted. From the EFI shell I then loaded Hfsplus, Ozmosis, rEFIt and finally booted in to Yosemite DP2. So at last I made it. Thanks for your suggestions. I will play more with an efishell from edkII as mentioned by bs0d so I can get to set the nvram vars using setvar. 1 Link to comment Share on other sites More sharing options...
truemac Posted July 6, 2014 Share Posted July 6, 2014 thanks a lot, looks good but maybe it's a bug on yosemite, the log shows: 06.07.14 11:39:27,239 com.apple.xpc.launchd[1]: (com.apple.imfoundation.IMRemoteURLConnectionAgent) The _DirtyJetsamMemoryLimit key is not available on this platform. it's just not logging in, anyway bdmesg shows: 28:042 00:000 Setting RS+BS 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB 17 bytes - Success Bildschirmfoto 2014-07-06 um 12.42.41.png oh, on mavericks 10.9.4 the same issue I guess what show ROM after restart? Link to comment Share on other sites More sharing options...
Recommended Posts