Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

Yes, disabled.

I don't know why CGP is not working. What about manual compilation?

CGP is working. I haven't tried it with Yosemite. But it definitely works in El Capitan. However, you need Xcode 7 beta 5 & the corresponding Command Line Tools for that. I got the same error chris is mentioning above when compiling with Xcode 6.4 in El Capitan. But everything worked ok with Xcode 7 beta 5.

 

Update: compiled with CGP + Xcode 7 beta 5 + corresponding Command Line Tools, in El Capitan PB4.

 

post-1303722-0-87473400-1439964877_thumb.png post-1303722-0-84718800-1439964191_thumb.png

 

Thank you, Sergey, for the update.

  • Like 3
Link to comment
Share on other sites

Hi Slice

 
Currently, detecting what CSR state the system is set to is not possible (AFAIK), without testing each option and even then I can’t find a reliable method to read all bits. Having a simple way to read this value would help DarwinDumper and probably be very useful for the future.
 
It would be great for Apple to add this, but as they don’t can you please consider adding it to Clover’s bootlog? For ref, ErmaC has added it to Enoch and I don't see why this cannot be added to Clover also.
 
Thanks
Link to comment
Share on other sites

hi there.

 
i have used clover very well.
 
but i have a problem.
 
my notebook is old. 
 
core 2 duo p8400 + p45 + geforce 9200m gs + phoenix bios ( maybe pre uefi, efi 2.0??)
 
when os x is booting, i can't see boot logo or verbose msg.
 
i think that my notebook don't support GOP(graphics output protocol) or UGA(universal graphics adapter). 
 
only support console mode.
 
so can't i see that?
 
i use efi drivers that datahubdex,  hfsplus, osxaptiofix2drv, osxfatbinarydrv 
 
if i don't know a solution, anyone help me plz.
 
thank you.
Link to comment
Share on other sites

yes

 

example above is from ElCapitan

 

I have an another partition with 10.8.5…if I try to patch my kexts with 10.8.5, I have to change AMDRadeonX3000 to AMDRadeonAccelerator.

 

@wern apfel

 

share your config.plist, please   ^_^

 

thank you for clarification ... I feel reassured to know that it works for someone else   :D   ;)

 

I'll do more tests

Hi, this is my config.plist code

<dict>
				<key>Find</key>
				<data>
				cGNpMTRlNCwxNmJj
				</data>
				<key>InfoPlistPatch</key>
				<true/>
				<key>Name</key>
				<string>AppleSDXC</string>
				<key>Replace</key>
				<data>
				cGNpMTIxNyw4MjIx
				</data>
			</dict>

I've only converted the string to base64 and it works, but on my desktop i've followed  the same procedure without success

Here is the code

<dict>
				<key>Find</key>
				<data>
				PGtleT5DQUlMX0Rpc2FibGVHZnhDR1Bvd2VyR2F0aW5n
				PC9rZXk+PGludGVnZXI+MDwvaW50ZWdlcj4=
				</data>
				<key>InfoPlistPatch</key>
				<true/>
				<key>Name</key>
				<string>AMDRadeonX4000</string>
				<key>Replace</key>
				<data>
				PGtleT5DQUlMX0Rpc2FibGVHZnhDR1Bvd2VyR2F0aW5n
				PC9rZXk+PGludGVnZXI+MTwvaW50ZWdlcj4=
				</data>
			</dict>
Link to comment
Share on other sites

 

Hi Slice

 
Currently, detecting what CSR state the system is set to is not possible (AFAIK), without testing each option and even then I can’t find a reliable method to read all bits. Having a simple way to read this value would help DarwinDumper and probably be very useful for the future.
 
It would be great for Apple to add this, but as they don’t can you please consider adding it to Clover’s bootlog? For ref, ErmaC has added it to Enoch and I don't see why this cannot be added to Clover also.
 
Thanks

 

Hey blackosx,

Clover doesn't deal with CSR. Really. It sets NVRAM variable and boot.efi translates it into ioreg where kernel will find it and assign to CSR.

So, if you want I can dump nvram variables in boot.log (or they are already here?).

I can also duplicate config.plist settings, it is only place where user can change the value now.

 

 

 

hi there.

 
i have used clover very well.
 
but i have a problem.
 
my notebook is old. 
 
core 2 duo p8400 + p45 + geforce 9200m gs + phoenix bios ( maybe pre uefi, efi 2.0??)
 
when os x is booting, i can't see boot logo or verbose msg.
 
i think that my notebook don't support GOP(graphics output protocol) or UGA(universal graphics adapter). 
 
only support console mode.
 
so can't i see that?
 
i use efi drivers that datahubdex,  hfsplus, osxaptiofix2drv, osxfatbinarydrv 
 
if i don't know a solution, anyone help me plz.
 
thank you.

 

 

Something is not clear.

Core2Duo platform never used UEFI. This is legacy BIOS computer.

So you can boot only with legacy Clover that creates GOP by itself.

I think the problem will be more clear if you provide DarwinDumper report.

Link to comment
Share on other sites

Thank you for reply.

 
I provide darwin dumper report.
 
 
I'm not sure, I think that my notebook is initial version of efi.
 
I want know why i can't see boot logo and progress bar or verbose msg between clover and os x login gui.
 
Because my notebook is too old, it doesn't support GOP, so i think that i can't see boot logo. right?
Link to comment
Share on other sites

@slice - thanks for reply on InfoPlistPatch clarifying how to create the find/replace items on the recent builds.  will test and re-implement when i am back home tomorrow and can test. will share results as there are not very many good examples on Info.plist patching vs binary kext patch. but maybe there is a better place to put examples?

 

@arsradu et al - perhaps you all know this, CGP continues to work on Yosemite using gcc4.9 (vs Xcode) ... there are build scripts in edk2/Clover folder to create the newer tools. good to know Xcode also can be used. will test on el cap soon as I don't run in production yet and continue to all dev on Yosemite and just do some basic functional tests on El Cap.

$ ls -l edk2/Clover/buildg*

-rwxrwxr-x  1 tluck  staff  22677 Jul 28 14:01 edk2/Clover/buildgcc-4.9.sh
Link to comment
Share on other sites

Hey blackosx,

Clover doesn't deal with CSR. Really. It sets NVRAM variable and boot.efi translates it into ioreg where kernel will find it and assign to CSR.

So, if you want I can dump nvram variables in boot.log (or they are already here?).

I can also duplicate config.plist settings, it is only place where user can change the value now.

Hi Slice

 

Sorry. Ignore me. I got myself in a pickle!

 

Looking back I knew Clover wrote the nvram variables when I wrote this but then for some reason became confused and thought Clover didn't, where in fact my query was with Enoch. I've just tested Clover again, both legacy and uefi, and yes the nvram vars are written.

 

I understand boot.efi is the loader when choosing uefi boot, but for legacy boot does Clover still not do anything for CSR?

 

The only difference I see with Clover when comparing against my iMac is with Clover, when there are no RtVariables -> CsrActiveConfig & BooterConfig entries in the config.plist, Clover still writes bootercfg and csr-active-config nvram vars with a value of zero. In comparison, when the iMac has security enabled, then no csr-active-config nvram var is present and El Capitan defaults to engaging security.

 

Either way - no issue as my latest version of DarwinDumper is detecting the csr settings and working fine with my real Mac and my hack booted with Clover. I just now have to tweak it for latest Enoch.

Link to comment
Share on other sites

 

Thank you for reply.

 
I provide darwin dumper report.
 
 
I'm not sure, I think that my notebook is initial version of efi.
 
I want know why i can't see boot logo and progress bar or verbose msg between clover and os x login gui.
 
Because my notebook is too old, it doesn't support GOP, so i think that i can't see boot logo. right?

 

Yes, this is really UEFI boot. Phoenix made it long time ago!  :o

I think you should try CsmVideoDxe.efi

and I see Clover can't get embedded EDID. You have to define EDID through config.plist. You can get it from Windows or some other way.

Link to comment
Share on other sites

I understand boot.efi is the loader when choosing uefi boot, but for legacy boot does Clover still not do anything for CSR?

The same. NVRAM variables exists with legacy Clover. Just not written into real NVRAM. They are emulated.

The only difference I see with Clover when comparing against my iMac is with Clover, when there are no RtVariables -> CsrActiveConfig & BooterConfig entries in the config.plist, Clover still writes bootercfg and csr-active-config nvram vars with a value of zero. In comparison, when the iMac has security enabled, then no csr-active-config nvram var is present and El Capitan defaults to engaging security.

There is a special value CsrActiveConfig=0xFFFF that means the var will NOT BE present. But I don't know what is happen if the variable is already present. I forgot to make DeleteVar.

any one knows???????

Why not try?

Link to comment
Share on other sites

OK, I remember what is the problem with info.plist patching.

The patching is occurred in kernelcache. But if you want to change DeviceID then assumed that the kext.info.plist doesn't contain your numbers.

So this kext will not loaded into kernelcache and consequently there is no to patch. Because the kext initially is not matching to your device!

 

As a workaround dmazar proposed to boot twice. First time without cache and force load this kext. It will be patched and included into kernel cache for the next restart. Being in system delete old kernel cache.

Second time you may boot with new kernelcache.

 

I think FakeID is the better procedure but your DSDT should have correct entry for the device. Usually Clover's DSDT patching will be enough for that.

 

These instructions are already in Clover v2 Instructions thread.             #48            

Link to comment
Share on other sites

Slice, I just noticed that, if you activate the proprietary Nvidia driver, the nvda_drv=1 boot flag will be added. Twice.

 

I know you don't use Nvidia GPU, but maybe it's worth taking a look at it? It looks like Clover adds an extra boot flag for this case. You can only see it in verbose mode. It doesn't show up in boot flags in options (you will only see one flag there). But when you boot in verbose mode, you will get to a line saying something like "Boot args: .... nvda_drv=1 nvda_drv=1 -v slide=0".

 

Maybe it's just me though. I'm still trying to figure out why my computer goes into bootloop after KP,  if I am trying to boot with nvda_drv=1 flag added manually to config, and stock OSX graphics driver (as I did with PB4), but it doesn't go into bootloop and it boots normally if I remove all boot flags and boot in single-user verbose mode. This didn't happen with PB4. Anyway, that probably doesn't have anything to do with Clover. So I think only the nvda_drv=1 boot flag being added/loaded twice might be of interest to you.

Link to comment
Share on other sites

Slice, I just noticed that, if you activate the proprietary Nvidia driver, the nvda_drv=1 boot flag will be added. Twice.

 

I know you don't use Nvidia GPU, but maybe it's worth taking a look at it? It looks like Clover adds an extra boot flag for this case. You can only see it in verbose mode. It doesn't show up in boot flags in options (you will only see one flag there). But when you boot in verbose mode, you will get to a line saying something like "Boot args: .... nvda_drv=1 nvda_drv=1 -v slide=0".

 

Maybe it's just me though. I'm still trying to figure out why my computer goes into bootloop after KP,  if I am trying to boot with nvda_drv=1 flag added manually to config, and stock OSX graphics driver (as I did with PB4), but it doesn't go into bootloop and it boots normally if I remove all boot flags and boot in single-user verbose mode. This didn't happen with PB4. Anyway, that probably doesn't have anything to do with Clover. So I think only the nvda_drv=1 boot flag being added/loaded twice might be of interest to you.

 

I may be wrong but you should check what's inside nvram.plist. I've noticed that the NVIDIA Driver Manager automatically adds the nvda_drv=1 bootflag in it if you select NVIDIA Webdrivers in the menu bar. So no matter what you set in config.plist, the boot-flag remains.

 

I use custom entries to avoid this and it seems to do the trick. I don't think Clover is responsible of that anyway.

 

Only thing I'm not sure about is that the El Capitan partition doesn't use the nvram.plist of the Yosemite one since I have no nvram.plist at the root of it… :unsure:

Link to comment
Share on other sites

I may be wrong but you should check what's inside nvram.plist. I've noticed that the NVIDIA Driver Manager automatically adds the nvda_drv=1 bootflag in it if you select NVIDIA Webdrivers in the menu bar. So no matter what you set in config.plist, the boot-flag remains.

 

I use custom entries to avoid this and it seems to do the trick. I don't think Clover is responsible of that anyway.

 

Only thing I'm not sure about is that the El Capitan partition doesn't use the nvram.plist of the Yosemite one since I have no nvram.plist at the root of it… :unsure:

I know it adds it automatically. But loading it twice doesn't seem normal. :P That was the point I was trying to make. But I get your point. You're thinking it might be still present in the nvram. And since no one is checking for duplicate flags, it shows them both. Might be the case... I'll try it.

 

Also, about your nvram problem....I'm not sure your system can use the nvram.plist from another partition. For as far as I know, each should have its own nvram.plist. But I might be wrong.

Link to comment
Share on other sites

OK sorry, I was totally wrong :P.

 

I just tried it and yes, Clover adds it even if you specifically tell him not do to so. Worse, it adds it even if you delete the bootflag in the Option menu. No matter what I do, it adds it again and again…

 

But :

 

One thing is for sure : if I choose OS X Default drivers in Yosemite and reboot back on El Capitan, the bootflag disappear and I can boot just fine. But of course, back in Yosemite, I have to revert to NVIDIA Web drivers and reboot once again.

 

So I think there's something with the NVIDIA Driver Manager that I do not get. It does something but I don't know where. My guess was this had to do with nvram.plist. Obviously, there's something more and it could be Clover related…

 

I don't use drivers64UEFI such as EmuVariableUefi.efi and maybe that's the point for my nvram.plist strange behaviors… :unsure:

 

Finally, I ended up by uninstalling webdrivers :P.

Link to comment
Share on other sites

Finally, I ended up by uninstalling webdrivers :P.

Well, to be honest, I haven't seen much improvement between using the default drivers and the proprietary ones over the years. Probably because I'm not a gamer. So there wasn't much of an improvement to be seen in day-to-day use. And I feel like some animations (at least in Yosemite), load better, smoother, with the default driver than the proprietary one. It used to help with some issue I had with the reboots in Yosemite. But I'm not sure that's the case anymore with the latest updates. I will probably try and see if disabling the driver in Yosemite brings back the issues or not.

 

Anyway, uninstalling the actual driver in El Capitan won't do any good for me in terms of bootloops, since I don't use it anyway, for now. But anyway, right now I'm still trying to find a way to boot in normal mode in PB5, and maybe keeping kext-dev-mode=1 as boot flag, as well. For Yosemite. So far, it seems to boot only if I remove all of them and boot in single-user. Otherwise, kp and reboot.

Link to comment
Share on other sites

It used to help with some issue I had with the reboots in Yosemite. But I'm not sure that's the case anymore with the latest updates. I will probably try and see if disabling the driver in Yosemite brings back the issues or not.

So do I. No issue so far with default OS X drivers so I guess this is old stuff ;).

 

Anyway, uninstalling the actual driver in El Capitan won't do any good for me in terms of bootloops, since I don't use it anyway, for now. But anyway, right now I'm still trying to find a way to boot in normal mode in DP5, and maybe keeping kext-dev-mode=1 as boot flag, as well. For Yosemite. So far, it seems to boot only if I remove all of them and boot in single-user. Otherwise, kp and reboot.

Removing kext-dev-mode=1 for El Capitan (still in place for Yosemite) and leaved rootless=0 solved some issues for me. Now webdrivers are uninstalled, I have no issue anymore booting El Capitan.

  • Like 1
Link to comment
Share on other sites

OK, I remember what is the problem with info.plist patching.

The patching is occurred in kernelcache. But if you want to change DeviceID then assumed that the kext.info.plist doesn't contain your numbers.

So this kext will not loaded into kernelcache and consequently there is no to patch. Because the kext initially is not matching to your device!

 

As a workaround dmazar proposed to boot twice. First time without cache and force load this kext. It will be patched and included into kernel cache for the next restart. Being in system delete old kernel cache.

Second time you may boot with new kernelcache.

 

I think FakeID is the better procedure but your DSDT should have correct entry for the device. Usually Clover's DSDT patching will be enough for that.

 

These instructions are already in Clover v2 Instructions thread.             #48            

i am trying to add my borad-id in AppleGraphicsdevicecontrol.kext and i know fake id injects device id but can it add board it???

any one have a IOgraphics flag 0x43 in verbose boot in yosemite????

i dont know what thats mean can any one light me pls my hardware detail in my sig and i can give darwin dump if any body want it.....

Link to comment
Share on other sites

Duplicate flags will not arise any issue because kernel will read only first occurrence. 

 

So where the hell does this nvda_drv=1 comes from ? I don't get it.

 

I have no arguments in Boot section. I set all of them in custom entries for each OS X version like this :

For Mavericks :

<key>AddArguments</key>
<string>nvda_drv=1</string>
<key>Disabled</key>
<false/>
<key>FullTitle</key>
<string>OS X Mavericks</string>
<key>Ignore</key>
<false/>
<key>InjectKexts</key>
<true/>
…

For Yosemite :

<key>AddArguments</key>
<string>kext-dev-mode=1 nvda_drv=1</string>
<key>Disabled</key>
<false/>
<key>FullTitle</key>
<string>OS X Yosemite</string>
<key>Ignore</key>
<false/>
<key>InjectKexts</key>
<true/>
…

For El Capitan :

<key>AddArguments</key>
<string>rootless=0</string>
<key>Disabled</key>
<false/>
<key>FullTitle</key>
<string>OS X El Capitan</string>
<key>Ignore</key>
<false/>
…

And still, if NVIDIA Web drivers is selected, nvda_drv=1 is added (twice for Mavericks & Yosemite) on next reboot whatever the OS I choose causing issues with OS X 10.11. :wacko:

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...