Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

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

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.

  • Like 2
Link to comment
Share on other sites

Why this happen sometimes from cold boot?

 

21df2f96b909c2bf7c2d731414d7e97f.jpg

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 by Micky1979
Link to comment
Share on other sites

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

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

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

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

Clover memory weirdness. System specs in signature (board has 2 physical DIMM slots):

10aplfx.pngilcHy5m.png

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] = 0x6000
Added 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

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

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

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

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

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

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

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:
  • Like 3
Link to comment
Share on other sites

 

​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:

 

 

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.

  • Like 1
Link to comment
Share on other sites

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

 

​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:

 

 

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

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.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...