Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 Slice look the header posted here: #8953 What do you think? Link to comment Share on other sites More sharing options...
Slice Posted December 6, 2015 Share Posted December 6, 2015 Should be easy to embed a kext in the bootloader, tried in Enoch, but the problem initially was the size limit of the boot file (no place for FakeSMC, even if compressed with lzvn/lzss) then to thin the binary (solved trying a smaller kext), idea abandoned... But for Clover I think that there is no problem to load kexts in this way: There is a much smaller kext AppleDecrypt that can be a replacement of FakeSMC for first start. 1 Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 I have a strange idea that your kext RealtekALC is really FakeSMC That would be strange indeed. But it doesn't look like it's the case here... Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 There is a much smaller kext AppleDecrypt that can be a replacement of FakeSMC for first start. Cool, but HW sensor plugins can be loaded as well with it? Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 Ok. Disregard my initial post. I found FakeSMC.kext in S/L/E. Must have copied it there by mistake and forgot about it. Sorry about that. Still...if it could be somehow "embedded" in Clover, that would be really cool. Thanks so much for your support. And again, sorry. 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 Sorry about that. Still...if it could be somehow "embedded" in Clover, that would be really cool. can/should be done... Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 can/should be done... Apparently there is a FakeSMC.kext compiled/downloaded alongside Clover... It's being added in edk2/Clover/CloverPackage/CloverV2/ThirdParty/kexts/Other/FakeSMC.kext Is this being used in any way? Link to comment Share on other sites More sharing options...
WinstonAce Posted December 6, 2015 Share Posted December 6, 2015 Only if you put it on appropriate place Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 Only if you put it on appropriate place Got it. So it's not automatically added in /Other for example upon installation. Cause...that would be cool. ) I mean, since it's being compiled anyway, I'm sure most people won't even know about it. So, why not add it? Now that Clover looks under /Other first, then under /10.11 or /10.10 or what have you. Why not actually use it upon installation? Ooor...as we discussed since now, embed it, or embed some sort of FakeSMC so that the user can always have a bootable system, for as far as FakeSMC is concerned. Link to comment Share on other sites More sharing options...
chris1111 Posted December 6, 2015 Share Posted December 6, 2015 Got it. So it's not automatically added in /Other for example upon installation. Cause...that would be cool. ) I mean, since it's being compiled there, I'm sure most people won't even know about it. So, why not add it? Now that Clover looks under /Other first, then under /10.11 or /10.10 or what have you. Why not actually use it upon installation? Ooor...as we discussed since now, embed it, or embed some sort of FakeSMC so that the user can always have a bootable system, for as far as FakeSMC is concerned. Clover Special Edition do this; since the first release Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 Clover Special Edition do this; since the first release Cool. Now let's see if the Standard Edition can do it too. Link to comment Share on other sites More sharing options...
chris1111 Posted December 6, 2015 Share Posted December 6, 2015 Cool. Now let's see if the Standard Edition can do it too. Put you kext inside EFI Before create your PKG with your Compiller Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 Put you kext inside EFI Before create your PKG with your Compiller I guess that would be one way to do it. Still....I'm looking for a way of Clover doing this automatically. Cause most users won't know how to do that. And fixing it for myself only is not really the point here. The point is creating a better app for everyone. Link to comment Share on other sites More sharing options...
chris1111 Posted December 6, 2015 Share Posted December 6, 2015 I guess that would be one way to do it. Still....I'm looking for a way of Clover doing this automatically. Cause most users won't know how to do that. And fixing it for myself only is not really the point here. The point is creating a better app for everyone. I have done this with My app Your only to ad curl Like this Exemple with Insanelymac Link curl -o /tmp/src.zip http://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page-449?do=findComment&comment=2194561 ditto -x -k --sequesterRsrc --rsrc /tmp/src.zip ~/ Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 Apparently there is a FakeSMC.kext compiled/downloaded alongside Clover... It's being added in edk2/Clover/CloverPackage/CloverV2/ThirdParty/kexts/Other/FakeSMC.kext Is this being used in any way? This was done to build the iso image...otherwise after burning a cd/DVD, and you realize that you have no kexts..... is late If you compile it from the source you can add all the kexts you want, but this can't be done if users use the OEM folder for multiple configurations (like me and many others), the result will be an unwanted FakeSMC.kext where user does not want 1 Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 This was done to build the iso image...otherwise after burning a cd/DVD, and you realize that you have no kexts..... is late If you compile it from the source you can add all the kexts you want, but this can't be done if users use the OEM folder for multiple configurations (like me and many others), the result will be an unwanted FakeSMC.kext where user does not want You are correct. I don't use that OEM folder. But you are definitely right. Others may use it. But...what if...we embed it? Just like you said. So users won't have to even think about it. Or move it anywhere. It's a mandatory kext for hackintoshes, right? And, as experience showed (LMAO), there is no way to boot without it. Or at least I couldn't find it. You have to have it. Somewhere. So, why not embed it somewhere, in a single place, from where it can do its job, no matter which configuration you want to load and which other 3rd party kexts you want to load. Why not make it a mandatory and embedded component of Clover? Like: you're using Clover, you don't need to worry about adding FakeSMC. Period. You can add you other kexts wherever you want, but you will never get stuck outside your OS cause you forgot to add it to the proper place, for example. Or removed it by mistake, or stuff like that. It will always be there. Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 You have to ask to devs, but probably they have already thought and decide about this (the current method) EDIT me too I like the idea to have it embedded, all my Hacks are able to boot w/o DSDT .. just the Fake is needed ok, no audio, Ethernet..wifi etc... but can boot into the Desktop/Installer, So should be a good resque boot! Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 You have to ask to devs, but probably they have already thought and decide about this (the current method) EDIT me too I like the idea to have it embedded, all my Hacks are able to boot w/o DSDT .. just the Fake is needed ok, no audio, Ethernet..wifi etc... but can boot into the Desktop/Installer, So should be a good resque boot! Well...I thought the devs are here. And, for as far as I know, reading the posts, as well. Anyway, Slice, we would really appreciate your opinion on this. What do you think about it? Could it/should it be done this way, so that people can enjoy their systems without worrying about this particular kext anymore? Sure, it's not gonna be backwards compatible. Meaning that people with older versions won't be able to beneficiate from this until they upgrade their Clover version. But sometimes you need to take bold decisions to achieve better quality. Apple does that every time. Most of the times, the decisions are inspired and prove to be good over time. Sometimes, not so much. But you won't know until you try. People with older versions won't be affected. And with newer versions, there will be already a kext embedded, so they can simply remove the one they have, from wherever they have it. Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 just add a new node in the config (disabled by default, but activabled in the GUI): <dict> <key>EmbeddedExtensions</key> <dict> <key>FakeSMC</key> <false/> </dict> <key>ACPI</key> ..... <dict/> ..... (in the true Clover already check for the FakeSMC presence.. so can be automatic also..) ok, for me is a closed discussion, let see if they want 1 Link to comment Share on other sites More sharing options...
arsradu Posted December 6, 2015 Share Posted December 6, 2015 just add a new node in the config (disabled by default, but activabled in the GUI): <dict> <key>EmbeddedExtensions</key> <dict> <key>FakeSMC</key> <true/> </dict> <key>ACPI</key> ..... <dict/> ..... Ok...but where will it get it from? The app is already installed, right? So....no matter what you add in config, it needs to be done before you install the app. Oherwise, it doesn't really work. Does it...? So...how does this work exactly? I update my config, then reinstall Clover so I can get the embedded FakeSMC? What if it's the first installation? Link to comment Share on other sites More sharing options...
Micky1979 Posted December 6, 2015 Share Posted December 6, 2015 Ok...but where will it get it from? The app is already installed, right? So....no matter what you add in config, it needs to be done before you install the app. Oherwise, it doesn't really work. Does it...? So...how does this work exactly? I update my config, then reinstall Clover so I can get the embedded FakeSMC? What if it's the first installation? ok, for me is a closed discussion, let see if they want Ok, one last. A bootloader run the prelinkedkernel or kernelcache (a kernel with linked kexts), or run the kernel + scan /S/L/E and /L/E. In the second, but also for /EFI/CLOVER/kexts (in congiunction with a kernel patch that allow reading kexts outside the standard repos), the loader read the Info.plist and the binary in memory from the filesystem... so then It's just data in memory: the same if you read it from an Header (.h file) compiled among the entire bootloader's source. Than just call or adjust existing functions to acquire embedded data instead of from the filesystem. I assure you that is the same ..and if you want to boot an installer, offcourse you need to have an installer, and adding my example at #8979 to the config.plist is not enough, need new code Link to comment Share on other sites More sharing options...
Micky1979 Posted December 7, 2015 Share Posted December 7, 2015 Clover wiki appear to be offline here.. Link to comment Share on other sites More sharing options...
Slice Posted December 8, 2015 Share Posted December 8, 2015 Ok, one last. A bootloader run the prelinkedkernel or kernelcache (a kernel with linked kexts), or run the kernel + scan /S/L/E and /L/E. In the second, but also for /EFI/CLOVER/kexts (in congiunction with a kernel patch that allow reading kexts outside the standard repos), the loader read the Info.plist and the binary in memory from the filesystem... so then It's just data in memory: the same if you read it from an Header (.h file) compiled among the entire bootloader's source. Than just call or adjust existing functions to acquire embedded data instead of from the filesystem. I assure you that is the same ..and if you want to boot an installer, offcourse you need to have an installer, and adding my example at #8979 to the config.plist is not enough, need new code 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. 2 Link to comment Share on other sites More sharing options...
cecekpawon Posted December 8, 2015 Share Posted December 8, 2015 Checking my log and found 2 same calls below, i dont know since when, is this ok slice? ... 7:514 0:000 Beginning FSInjection FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: B9F40418 FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: B9F40418 7:527 0:013 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other ... Link to comment Share on other sites More sharing options...
mhaeuser 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. 2 Link to comment Share on other sites More sharing options...
Recommended Posts