Micky1979 Posted December 8, 2015 Share Posted December 8, 2015 Slice forgot to mention that for no-cache boot, kexts are loaded by Clover (it relocates parts of the Device Tree to make room) and added to the DataHub, where OS X picks up the addresses, loads and links them. Take into account that Clover doesn't load neither kernel not kernelcache not kexts. Clover is only load BOOT.EFI that do other works. To load kexts from Clover folder we have a file system driver FSInject.efi that catch loading requests for SLE and redirect them into Clover folder. Yes, that's why I said "the loader". So the "path" must exist in the fs and no chance to fake and register it and then call "InjectKexts" or a made a mod variant of it to do that? I was thinking of just add a new ""Driver-%x"" to the memory map (if I've understand what Download Fritz said). When I had time I want to try, for now Ieaving this... Link to comment Share on other sites More sharing options...
mhaeuser Posted December 8, 2015 Share Posted December 8, 2015 yeah, Driver-XXXX is what I meant. I think the kexts need to be loaded in a certain region of the DT and hence Clover relocates the stuff past the 'end' of that region... or the beginning, I don't remember. 1 Link to comment Share on other sites More sharing options...
ducati996 Posted December 8, 2015 Share Posted December 8, 2015 Why this happen sometimes from cold boot? Link to comment Share on other sites More sharing options...
Slice Posted December 8, 2015 Share Posted December 8, 2015 yeah, Driver-XXXX is what I meant. I think the kexts need to be loaded in a certain region of the DT and hence Clover relocates the stuff past the 'end' of that region... or the beginning, I don't remember. I also don't remember how it works. Something like loading kexts in the same place as boot.efi after it finished. 2 Link to comment Share on other sites More sharing options...
Micky1979 Posted December 8, 2015 Share Posted December 8, 2015 (edited) Why this happen sometimes from cold boot? Ther's no enough space apparently in the text field (lastInstalledRevision object) in the last rev 3030 in the xib of the prefpane project , is only 54 point of width. Also it take the revision from the com.projectosx.clover.installer.plist, so if you had manually copied the Efi folder... the revision cannot show up. Want you Guys take the revision from the IORegistry?? LastInstalledRevision is last installed package, booted revision is already taken from Ioreg Edited December 8, 2015 by Micky1979 Link to comment Share on other sites More sharing options...
ducati996 Posted December 8, 2015 Share Posted December 8, 2015 Ther's no enough space in the text field (lastInstalledRevision object) in the last rev 3030 in the xib of the prefpane project , is only 54 point of width. Also it take the revision from the com.projectosx.clover.installer.plist, so if you had manually copied the Efi folder... the revision cannot show up. Want you Guys take the revision from the IORegistry?? My system is a microsoft surface pro 1gen.after a restart clover shows the current booted revision and everything works.this happen the first time i boot the system.i didnt copy the efi folder manually.i have this glitch for some time now before rev 3030....really i dont know how to fix it Link to comment Share on other sites More sharing options...
davidm71 Posted December 9, 2015 Share Posted December 9, 2015 Hey Guys, Was wondering if its possible to push Clover into the bios chip on AMI bioses so it loads automatically without any efi partitions needed? Thanks Link to comment Share on other sites More sharing options...
mhaeuser Posted December 9, 2015 Share Posted December 9, 2015 Hey Guys, Was wondering if its possible to push Clover into the bios chip on AMI bioses so it loads automatically without any efi partitions needed? Thanks You can write a DXE driver to load and launch it from a Firmware Volume. Good luck with porting Clover's file loading to the Firmware Volume File System though. Link to comment Share on other sites More sharing options...
Slice Posted December 10, 2015 Share Posted December 10, 2015 Hey Guys, Was wondering if its possible to push Clover into the bios chip on AMI bioses so it loads automatically without any efi partitions needed? Thanks For a what? May be your question is How to speedup Clover boot? Link to comment Share on other sites More sharing options...
davidm71 Posted December 10, 2015 Share Posted December 10, 2015 For a what? May be your question is How to speedup Clover boot? I have a motherboard that has an incomplete UEFI implementation such that I can not boot an Intel NVME 750 SSD. I have modded the bios with NVME files from another motherboard allowing my bios to detect the drive. Just cant boot from it if I select it as the UEFI is too old but I can use Clover with an NVME Express driver that I have converted into an ffs bios file to boot the drive. Thing is clover has to reside on a SSD or usb key. Be really cool if Clover was loaded automatically without any hard drives attached and then be a seemless boot up of the Intel 750. Thanks Link to comment Share on other sites More sharing options...
Slice Posted December 10, 2015 Share Posted December 10, 2015 I have a motherboard that has an incomplete UEFI implementation such that I can not boot an Intel NVME 750 SSD. I have modded the bios with NVME files from another motherboard allowing my bios to detect the drive. Just cant boot from it if I select it as the UEFI is too old but I can use Clover with an NVME Express driver that I have converted into an ffs bios file to boot the drive. Thing is clover has to reside on a SSD or usb key. Be really cool if Clover was loaded automatically without any hard drives attached and then be a seemless boot up of the Intel 750. Thanks You may flash the driver into BIOS but keep Clover on the SSD. It is the same process, load Clover from BIOS or load the driver from BIOS. There is no need to keep whole Clover in BIOS. Link to comment Share on other sites More sharing options...
zxv Posted December 10, 2015 Share Posted December 10, 2015 Clover memory weirdness. System specs in signature (board has 2 physical DIMM slots): Excerpts from bdmesg: 0:100 0:000 Total Memory Slots Count = 4 0:100 0:000 Type 17 Index = 0 0:100 0:000 SmbiosTable.Type17->Speed = 3200MHz 0:100 0:000 SmbiosTable.Type17->Size = 8192MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 0 ChannelA-DIMM1 0:100 0:000 Type 17 Index = 1 0:100 0:000 Ignoring insane frequency value 0MHz 0:100 0:000 SmbiosTable.Type17->Speed = 0MHz 0:100 0:000 SmbiosTable.Type17->Size = 0MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 1 ChannelA-DIMM2 0:100 0:000 Type 17 Index = 2 0:100 0:000 SmbiosTable.Type17->Speed = 3200MHz 0:100 0:000 SmbiosTable.Type17->Size = 8192MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 2 ChannelB-DIMM1 0:100 0:000 Type 17 Index = 3 0:100 0:000 Ignoring insane frequency value 0MHz 0:100 0:000 SmbiosTable.Type17->Speed = 0MHz 0:100 0:000 SmbiosTable.Type17->Size = 0MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 3 ChannelB-DIMM2 … 2:208 0:000 ScanSPD() start 2:209 0:000 SMBus CmdReg: 0x3 2:209 0:000 Scanning SMBus [8086:A123], mmio: 0xDF44A004, ioport: 0xF040, hostc: 0x11 2:209 0:000 Slots to scan [8]... 2:235 0:026 SPD[0]: Type 12 @0x50 2:236 0:000 Sorry, DDR4 is not fully implemented! Use settings in config.plist 2:236 0:000 DDR speed 3200MHz 2:236 0:000 Slot: 0 Type 26 4096MB 3200MHz Vendor=NoName PartNo= SerialNo=0000020B000C020B 2:268 0:032 SPD[2]: Type 12 @0x52 2:268 0:000 Sorry, DDR4 is not fully implemented! Use settings in config.plist 2:268 0:000 DDR speed 3200MHz 2:268 0:000 Slot: 2 Type 26 4096MB 3200MHz Vendor=NoName PartNo= SerialNo=0000020B000C020B 2:299 0:030 ScanSPD() end … 22:024 0:000 Injecting user memory modules to SMBIOS 22:024 0:000 Channels: 2 22:024 0:000 Interleave: 0 2 1 3 4 6 5 7 8 10 9 11 12 14 13 15 16 18 17 19 20 22 21 23 22:024 0:000 BANK0 DIMM0 3200MHz 8192MB 22:024 0:000 mTotalSystemMemory = 8192 22:024 0:000 BANK1 DIMM0 3200MHz 8192MB 22:024 0:000 mTotalSystemMemory = 16384 22:024 0:000 BANK0 DIMM1 EMPTY 22:024 0:000 BANK1 DIMM1 EMPTY 22:024 0:000 NumberOfMemoryDevices = 4 22:024 0:000 Type20[0]->End = 0x7FFFFF, Type17[0] = 0x2000 22:024 0:000 Type20[1]->End = 0xFFFFFF, Type17[1] = 0x6000Added appropriate Memory configuration to config.plist SMBIOS section as described in the wiki, like so: <key>Memory</key> <dict> <key>Channels</key> <integer>2</integer> <key>SlotCount</key> <integer>4</integer> <key>Modules</key> <array> <dict> <key>Frequency</key> <integer>3200</integer> <key>Size</key> <integer>8192</integer> <key>Slot</key> <integer>0</integer> <key>Type</key> <string>DDR4</string> </dict> <dict> <key>Frequency</key> <integer>3200</integer> <key>Size</key> <integer>8192</integer> <key>Slot</key> <integer>2</integer> <key>Type</key> <string>DDR4</string> </dict> </array> </dict> Without these settings, OSX does correctly report memory type and speed (DDR4 3200MHz), but incorrectly reports size (4GB, or 8GB total). Number of slots is also claimed as 4. Link to comment Share on other sites More sharing options...
mhaeuser Posted December 10, 2015 Share Posted December 10, 2015 You may flash the driver into BIOS but keep Clover on the SSD. It is the same process, load Clover from BIOS or load the driver from BIOS. There is no need to keep whole Clover in BIOS. That's what I said a few posts before, what the hell are you doing, david? Link to comment Share on other sites More sharing options...
davidm71 Posted December 10, 2015 Share Posted December 10, 2015 A few posts back I explained what I was trying to do. Trying for kicks and giggles to get the Intel 750 boot on an older motherboard with broken Uefi implementation thanks to Asus not caring about older board. Clover has no trouble loading the Intel 750 Uefi driver though. You think the clover nvme driver is compatible with Oz? Maybe Oz will do the trick. Link to comment Share on other sites More sharing options...
mhaeuser Posted December 10, 2015 Share Posted December 10, 2015 It makes absolutely no sense that loading does not work from ROM, but with Clover... you must have done something wrong. Link to comment Share on other sites More sharing options...
Riley Freeman Posted December 10, 2015 Share Posted December 10, 2015 I think what davidm71 means is that the 750 driver requires a UEFI boot to work. My Z68 can't boot in pure UEFI mode as there's no way to disable CSM. So perhaps he wants Clover to UEFI boot the driver to make the SSD bootable. Link to comment Share on other sites More sharing options...
davidm71 Posted December 10, 2015 Share Posted December 10, 2015 Riley's right. The Uefi implementation on the Asus Z68 gen 1 boards was incomplete such that directly booting an NVME drive like the 750 is impossible even after modding the bios. So I thought wouldn't be cool if there was an open source module like Tianocore or Clover that adds latest Uefi spec to an older board? Such that newer devices can work and have efi shells, etc by modding the bios directly. Link to comment Share on other sites More sharing options...
chris1111 Posted December 10, 2015 Share Posted December 10, 2015 Riley's right. The Uefi implementation on the Asus Z68 gen 1 boards was incomplete such that directly booting an NVME drive like the 750 is impossible even after modding the bios. So I thought wouldn't be cool if there was an open source module like Tianocore or Clover that adds latest Uefi spec to an older board? Such that newer devices can work and have efi shells, etc by modding the bios directly. You can try this Package I have made Its Clover UEFI / Legacy Working both Config Try to USB for test and boot to the Z68 Link to comment Share on other sites More sharing options...
davidm71 Posted December 10, 2015 Share Posted December 10, 2015 Thank you for the package. I forgot to mention I have already successfully used clover to boot the 750. I want to find a way to make it into an FFS file you can add to your bios and flash. Thanks I'll try your version though to try it out. Thanks. Link to comment Share on other sites More sharing options...
chris1111 Posted December 10, 2015 Share Posted December 10, 2015 Thank you for the package. I forgot to mention I have already successfully used clover to boot the 750. I want to find a way to make it into an FFS file you can add to your bios and flash. Thanks I'll try your version though to try it out. Thanks. Ok send me PM if you need more info Link to comment Share on other sites More sharing options...
blackosx Posted December 10, 2015 Share Posted December 10, 2015 Thank you for the package. I forgot to mention I have already successfully used clover to boot the 750. I want to find a way to make it into an FFS file you can add to your bios and flash. Thanks I'll try your version though to try it out. Thanks. You can use GenFfs and GenSec which are part of edk2 BaseTools. Would be something like this: ./GenSec -s EFI_SECTION_PE32 -o CLOVERX64.pe32 CLOVERX64.efi ./GenFfs -t EFI_FV_FILETYPE_DRIVER -g 9F3A0016-AE55-4288-829D-D22FD344C347 -o CLOVERX64.ffs -i CLOVERX64.pe32 About Guid 9F3A0016-AE55-4288-829D-D22FD344C347 This need to be some number that does not already exist in your firmware! soo use this one provided and change some numbers at end. More info can be found here: http://web.archive.org/web/20141117164954/http://www.projectosx.com/forum/lofiversion/index.php/t3018.html 3 Link to comment Share on other sites More sharing options...
mhaeuser Posted December 10, 2015 Share Posted December 10, 2015 You can use GenFfs and GenSec which are part of edk2 BaseTools. Would be something like this: ./GenSec -s EFI_SECTION_PE32 -o CLOVERX64.pe32 CLOVERX64.efi ./GenFfs -t EFI_FV_FILETYPE_DRIVER -g 9F3A0016-AE55-4288-829D-D22FD344C347 -o CLOVERX64.ffs -i CLOVERX64.pe32 About Guid 9F3A0016-AE55-4288-829D-D22FD344C347 This need to be some number that does not already exist in your firmware! soo use this one provided and change some numbers at end. More info can be found here: http://web.archive.org/web/20141117164954/http://www.projectosx.com/forum/lofiversion/index.php/t3018.html Well, Clover is an UEFI Application, not an UEFI driver, and hence - to my best knowledge - it will not auto-launch on boot (otherwise every app would launch every boot, which would be nonsense). It would need an UEFI driver to locate and load Clover from the Firmware Volume, but when would you trigger it? You could trigger it on the EndOfDxe event, but that means Clover is the 'center of the universe' then, you won't get around it in any way. In my opinion, Clover was simply not designed for this purpose, especially as its file, including config, still must reside on a drive. But you CAN use that commands to turn the NVMe driver into a ffs. So, are you booting Clover in UEFI or DUET environment? There is no mish-mash, it's either UEFI, or it's legacy. If you are currently booting Clover via UEFI, the driver works loaded by Clover, but not from ROM, you probably made a mistake. If there was a bug in the firmware preventing devices from being connected, you wouldn't have mouse, keyboard, graphics and what-not support. Also make sure it's in the right firmware volume, along with the other DXE drivers. 1 Link to comment Share on other sites More sharing options...
Pluskat5000Schiffe Posted December 11, 2015 Share Posted December 11, 2015 First of all I like to thank all contributors of creating the clover bootloader for this fantastic master peace of software. I was reading the clover instructions written by Slice to do a combination of FakeID together with Kext To Patch. The situation. I have an Intel Nic which is working with the FakeID LAN option but I need to strip off this section in the info.plist <key>IOPCISecondaryMatch</key> <string>0x00008086 0x00000000</string> of kext IONetworkingFamily\Plugins\Intel82574L.kext to get FakeID working. I was wondering if its possible to patch this kext on the fly and how to do it. I also read that you need to do Text to hex to coded text but i don't have a clue how to do this and which conversation tools are needed. At this moment this kext is the only kext which needs modification every time osx gets updated. Any help really appreciated! Link to comment Share on other sites More sharing options...
davidm71 Posted December 11, 2015 Share Posted December 11, 2015 You can use GenFfs and GenSec which are part of edk2 BaseTools. Would be something like this: ./GenSec -s EFI_SECTION_PE32 -o CLOVERX64.pe32 CLOVERX64.efi ./GenFfs -t EFI_FV_FILETYPE_DRIVER -g 9F3A0016-AE55-4288-829D-D22FD344C347 -o CLOVERX64.ffs -i CLOVERX64.pe32 About Guid 9F3A0016-AE55-4288-829D-D22FD344C347 This need to be some number that does not already exist in your firmware! soo use this one provided and change some numbers at end. More info can be found here: http://web.archive.org/web/20141117164954/http://www.projectosx.com/forum/lofiversion/index.php/t3018.html Hi, Thanks for the instructions using GenFFS. I tried to convert the NVME Express efi driver last weekend to ffs but didn't use Gensec. Was thinking that for my purposes maybe I should try it on Refind or other boot manager for experimentation but should the EFI-FV-FILETYPE be APPLICATION and not driver for something like Clover or Refind instead of filetype driver? Hard part would be to make the dxe driver to load it like you said. Thanks. Link to comment Share on other sites More sharing options...
Slice Posted December 11, 2015 Share Posted December 11, 2015 Hi, Thanks for the instructions using GenFFS. I tried to convert the NVME Express efi driver last weekend to ffs but didn't use Gensec. Was thinking that for my purposes maybe I should try it on Refind or other boot manager for experimentation but should the EFI-FV-FILETYPE be APPLICATION and not driver for something like Clover or Refind instead of filetype driver? Hard part would be to make the dxe driver to load it like you said. Thanks. You didn't answer to Download-Fritz question: So, are you booting Clover in UEFI or DUET environment? This is the key to the discussion. If you started Clover in legacy mode through the file BOOT which is actually DUET then you must forget about flashing it into BIOS. Riley's right. The Uefi implementation on the Asus Z68 gen 1 boards was incomplete such that directly booting an NVME drive like the 750 is impossible even after modding the bios. So I thought wouldn't be cool if there was an open source module like Tianocore or Clover that adds latest Uefi spec to an older board? Such that newer devices can work and have efi shells, etc by modding the bios directly. So you told that the driver NMVE is incompatible with old UEFI implementation of your BIOS? In this case you have two opportunities: - rewrite NMVE driver to old UEFI. You should catch what is the problem; - reflash your UEFI BIOS to actual version 2.40. 1 Link to comment Share on other sites More sharing options...
Recommended Posts