Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

It's effectively like loading a kext from the terminal, which are checked when linked just as when prelinked.

Is this fully accurate? I've been booting with SIP enabled for a while now (on another machine), and haven't had any issues with kext injection working. FakeSMC/etc are still loading (with kext injection and with SIP enabled).

  • Like 3
Link to comment
Share on other sites

Hello, after installed 10.13.1 Beta 2 (17B35a) with APFS I always get this messages on verbose logs:

1. "considerRebuildOfPrelinkedKernel org.netkas.FakeSMC triggered rebuild (I placed FakeSMC v3.5.0 on /kexts/10.13 dir)

2. "kextd stall(0), (60s): 'NVDAHal', 'NVDAgl', 'NVDA,Display-A' (I patched my DSDT - GFX0 using this)

3. (this one appears before verbose; I'm not sure related to Clover or not, sorry):

RegisterRestartDataProtocol called. 0x12345678
RestartData protocol installed successfully.
++++++++++++++++++++++++++++++++++++++++++++++

FYi, I'm using Legacy r4244 (with @cecekpawon patch). Thanks.

bootlog.log_a43sj_r4244.txt.zip

EFI_r4244_boot7.zip

Link to comment
Share on other sites

Hi guys, can we fix this:

 

https://www.youtube.com/watch?v=tf4HkjaiOi8

 

look at second 2... there are messages...

 

Happens on all my Hackintoshes with apfs...

 

Im hoping its not already answered :-)

 

Cheers :-)

It's just a debug log of such for apfs. There is a modded apfs floating around from cecekpawon that gets rid of / reduces the lines that you see.

 

Sent from my SM-G930F using Tapatalk

  • Like 1
Link to comment
Share on other sites

Hi Allan, good morning :)

 

I have a rig with dual booting Windows 10 and macOS (El Cap, Sierra, High Sierra) and I don't use NTFS.efi, So I guess having it is not mandatory. I never used it.

Thank you buddy.  ;)

  • Like 1
Link to comment
Share on other sites

tbh, that's a bug, isn't it? Checked the Memory Maps of both? Maybe restoring the kernel to its original position on entry is what screws it up?

 

They just behave differently, but AptioFix breaking NVRAM is why AptioFix2 exists. AptioFix2 however is not as reliable for some reason... The memory maps are similar but obviously different, I've done a ton of debugging using both those drivers, I can't figure out why... And yes I think probably the relocation is what messes it up, or what I finally resigned to believe....

 

Is this fully accurate? I've been booting with SIP enabled for a while now (on another machine), and haven't had any issues with kext injection working. FakeSMC/etc are still loading (with kext injection and with SIP enabled).

 

I'm pretty sure, I cannot boot if I have a value of 0x0, the lowest value I can boot with is 0x3. I know that it checks the kext just like loading it because if you don't have a prerequisite kext loaded it drops the kext without attempting to do anything, like initialize it or load the other kexts.... I'm willing to admit that's not right if someone sets 0x0, reboots twice and still boots while injecting FakeSMC. You can't inject it and have it installed in /L/E as the already installed prelinked version will be used and the injected dropped.

 

EDIT: You know I'm not sure I have ever actually tried just 0x1....

Thank you buddy.  ;)

 

Windows boots from the FAT32 EFI partition, there is no need to read the NTFS volume.

  • Like 2
Link to comment
Share on other sites

Without proper knowledge, I have done some test regarding SIP while ago, within these 2 ways:
(1) With NVRAM "csr-active-config" already used by Clover for long time.
(2) To set bootargs->csrActiveConfig when boot.efi loaded (like macosxbootloader).
They are both work/result differently. We can test it with CSR_ALLOW_APPLE_INTERNAL & check its value after reaching the desktop.

 

In contrary, boot.efi seems preferred to read NVRAM "boot-args" instead of LoadOptions. So storing LoadOptions to loaded boot.efi get ignored because its too late?

  • Like 2
Link to comment
Share on other sites

Without proper knowledge, I have done some test regarding SIP while ago, within these 2 ways:

(1) With NVRAM "csr-active-config" already used by Clover for long time.

(2) To set bootargs->csrActiveConfig when boot.efi loaded (like macosxbootloader).

They are both work/result differently. We can test it with CSR_ALLOW_APPLE_INTERNAL & check its value after reaching the desktop.

 

In contrary, boot.efi seems preferred to read NVRAM "boot-args" instead of LoadOptions. So storing LoadOptions to loaded boot.efi get ignored because its too late?

Some years ago other clover developers excluded boot-args from NVRAM because of some issues.

I think the question should be revised.

  • Like 1
Link to comment
Share on other sites

 

 

Yeah, don't change SIP restrictions. Change it back to 0x67.

.

What would be the problem with keeping SIP enabled?

It's seems that everything working fine and you don't need NVWebDriverLibValFix for nvidia drivers.

 

Sent from my ONEPLUS A5000 using Tapatalk

Link to comment
Share on other sites

What would be the problem with keeping SIP enabled?

It's seems that everything working fine and you don't need NVWebDriverLibValFix for nvidia drivers.

 

Sent from my ONEPLUS A5000 using Tapatalk

 

He couldn't boot anymore.......

Link to comment
Share on other sites

Hi WinstonAce

I was curious about your post..and in my system I can't boot with system parameters set to 0x0 for both

I discovered a way with some try

I have memory allocation error and I can solve this with OsxAptioFix2Drv-free2000.efi in drivers64uefi

 

adding this deleting the old one I was using from Sierra old installation I can boot without memory allocation error and with 0x0 for system parameters

 

I can also enter recovery partition and boot from there..

before it was impossible

 

Thank you for some inspiration!

which OsxAptioFixDrv do you use? If I use OsxAptioFix2Drv I can set 0x0 and system can boot normally (IvyBridge) but it won't work on OsxAptioFixDrv.  

Link to comment
Share on other sites

this in attachment 

Sorry what I meant is beside this OsxAptioFix2-free2000.efi. OsxAptioFixDrv.efi in combination with CsrActiveConfig=0x0 will end up with memory allocation errors.

 

It works with OsxAptioFix2Drv for me, but not with OsxAptioFixDrv.

Exactly, this is how @apianti explained it here which made things much more clear for me.

Link to comment
Share on other sites

OMG. Do not use that driver. That driver is not for production use, it was only meant as a diagnostic tool to determine why the memory allocation was failing, it literally frees like all your firmware's allocations.... But, X99 is terrible so you probably have no choice... 0x28?? That's unrestricted dtrace and kernel debugger... That doesn't really make sense unless the problem is with dtrace as that's the only one that's disabled in both those values....

  • Like 4
Link to comment
Share on other sites

I'm not sure, why is it failing to boot recovery? I don't understand what change to VESA mode means. If the driver doesn't work, then you aren't going to have graphics because the vendor/device ids are used to load that driver...

Link to comment
Share on other sites

RegisterRestartDataProtocol called. 0x12345678
RestartData protocol installed successfully.
FYi, I'm using Legacy r4244 (with @cecekpawon patch). Thanks.

 

 

I also have this message but only since I installed 10.13.1 beta 2 - I'm using Clover r4207 so it is maybe something related to macos and not to Clover?

  • Like 1
Link to comment
Share on other sites

@fabiosun,

 

Once you get to the prompt you are the root user, type this to mount the root filesystem read/write:

fsck –fy
mount –uw /

Then you can run any commands like you would in the terminal, such as removing or fixing kexts. You can't use things like diskutil though, and you are already root so don't use sudo.

Link to comment
Share on other sites

I cant see "kext inject management" bug fixes in (specific to) r4244, if so your problem could be randomly happen.. again :)

 

i just can't see "++++++++++++++++++" with failed boot on r4244. this problem happen

and i can't use kext inject management on 4243. because always failed after kext inject management.

i'm not sure other kext inject management issue. i tested basic feature.

 

my test

1. only used 10.13 folder with kexts. emtpy Others folder. injectkexts=detect. not tested usb installer. only installed HS disk.

2. in gui, select 10.13 installed HS disk with space bar, go kext inject management, enter 10.13, check kexts list, exit 10.13, enter other folder, check empty list, exit other folder, exit kext inject management. then boot without -v.

 

my test is failed boot with "++++++++++++++++++" line and apple logo on r4243

my test passed on r4244

 

sorry for my bad english

Link to comment
Share on other sites

In contrary, boot.efi seems preferred to read NVRAM "boot-args" instead of LoadOptions. So storing LoadOptions to loaded boot.efi get ignored because its too late?

 

Just guessing:

 

(1) You have "-v" NVRAM "boot-args".

(2) Switch off "-v" from GUI.

(3) Boot.efi will read your NVRAM "boot-args" with "-v" (still), but Clover already switching to graphic mode. So resulting in black screen.

  • Like 3
Link to comment
Share on other sites

@Slice: how about using the XCLANG compiler profile? It's present in tools_def.txt as a profile for building edk2 for OS X/macOS. AFAIK, clang/llvm can be found in two places:

1. /usr/bin

2. /Library/Developer/CommandLineTools/usr/bin

The second path requires the Xcode command line tools to be installed with xcode-select --install, but think about it, that's more than enough for the ordinary user and no 7GB Xcode download would be needed. I wonder why nobody has seen that part of that file yet, except maybe Micky1979, that's his idea.

 

In order the XCLANG profile to be used, the following paths should be changed:

#
# Change to the location clang was built
#
#DEFINE CLANG_BIN = /usr/bin/
#DEFINE CLANG_BIN = /opt/local/libexec/llvm-3.6/bin/

DEFINE LLVM_BIN = ENV(HOME)/src/llvm-build/Release/bin/
DEFINE CLANG_BIN = ENV(HOME)/src/llvm-build/Release/bin/

to something like

# clang and llvm are in the clt directory

DEFINE LLVM_BIN = /Library/Developer/CommandLineTools/usr/bin/
DEFINE CLANG_BIN = /Library/Developer/CommandLineTools/usr/bin/

or even configurable with variable:

# clang and llvm can be anywhere, just set the env var

DEFINE LLVM_BIN = ENV(LLVM_PREFIX)/
DEFINE CLANG_BIN = ENV(CLANG_PREFIX)/
Link to comment
Share on other sites

×
×
  • Create New...