Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

I think you've read this question tons of times, but...does mouse work in Clover boot screen?

On my main system (the one with Asus P8Z77-v LX2 with UEFI bios), a optical Logitech USB wired mouse is stuck on the Clover boot screen. It moves only if I click on the left button!!!

 

Now I have it connected to a USB 3.0 port, but I've tried it also on a USB 2.0 port without success...

Link to comment
Share on other sites

I think you've read this question tons of times, but...does mouse work in Clover boot screen?

 

On my main system (the one with Asus P8Z77-v LX2 with UEFI bios), a optical Logitech USB wired mouse is stuck on the Clover boot screen. It moves only if I click on the left button!!!

 

Now I have it connected to a USB 3.0 port, but I've tried it also on a USB 2.0 port without success...

config.plist

 

<key>Mouse</key>

<dict>
<key>DoubleClick</key>
<integer>500</integer>
<key>Enabled</key>
<true/>
<key>Mirror</key>
<false/>
<key>Speed</key>
<integer>8</integer>
</dict>
  • Like 1
Link to comment
Share on other sites

It might be in your ESP.

 

I think your correct, I was using apfs mode.  I was able to finally get a decent prelinkedkernel generated with a fresh install and I didn't sign into Apple during install.   I'm in HFS+J and its working well with several reboots and no more error.   APFS wants to load all your preferences for safari etc and photos etc.. it must have been in the ESp and transferred to the prelim ned kernel.   I'm happily in 13.4 beta 2 with my Ryzen 1700 thanks for the reply about the ESP.    The odd thing is that it doesn't happen in 13.3 just 13.4 with the new kernel security measures and file sharing.

 

post-1753549-0-52632500-1518579189_thumb.png

Link to comment
Share on other sites

 

If you couldn't understand what I meant, then run it by your self :)

This is the diff patch, try changing the LazyClover variable:

Index: CloverPkg.dec
===================================================================
--- CloverPkg.dec	(revision 4415)
+++ CloverPkg.dec	(working copy)
@@ -70,6 +70,8 @@
   
   ## Include/Protocol/EmuVariableControl.h
   gEmuVariableControlProtocolGuid        = {0x21f41e73, 0xd214, 0x4fcd, {0x85, 0x50, 0x0d, 0x11, 0x51, 0xcf, 0x8e, 0xfb }}
+  ##  Include/Protocol/AppleKeyState.h
+  gAppleKeyStateProtocolGuid               = {0x5b213447, 0x6e73, 0x4901, {0xa4, 0xf1, 0xb8, 0x64, 0xf3, 0xb7, 0xa1, 0x72}}
 
   #Apple's protocols
   gEfiConsoleControlProtocolGuid         = {0xF42F7782, 0x012E, 0x4C12, {0x99, 0x56, 0x49, 0xF9, 0x43, 0x04, 0xF7, 0x21}}
Index: Include/Protocol/AppleKeyAggregator.h
===================================================================
--- Include/Protocol/AppleKeyAggregator.h	(revision 4415)
+++ Include/Protocol/AppleKeyAggregator.h	(working copy)
@@ -5,7 +5,8 @@
 //  Created by Slice on 26.10.16.
 //  based on CupertinoNet
 //
-
+#include <Protocol/AppleKeyState.h>
+#include <Protocol/AppleKeyMapDatabase.h>
 #ifndef _AppleKeyMapAggregator_h
 #define _AppleKeyMapAggregator_h
 
Index: Protocols/AppleKeyAggregator/AppleKeyAggregator.c
===================================================================
--- Protocols/AppleKeyAggregator/AppleKeyAggregator.c	(revision 4415)
+++ Protocols/AppleKeyAggregator/AppleKeyAggregator.c	(working copy)
@@ -19,7 +19,7 @@
 
 #include <Protocol/AppleKeyState.h>
 #include <Protocol/AppleKeyMapDatabase.h>
-#include "AppleKeyAggregator.h"
+#include <Protocol/AppleKeyAggregator.h>
 
 // KeyMapGetKeyStrokesByIndex
 APPLE_KEY_STROKES_INFO *
Index: Protocols/AppleKeyAggregator/AppleKeyAggregator.h
===================================================================
--- Protocols/AppleKeyAggregator/AppleKeyAggregator.h	(revision 4415)
+++ Protocols/AppleKeyAggregator/AppleKeyAggregator.h	(nonexistent)
@@ -1,81 +0,0 @@
-//
-//  AppleKeyMapAggregator.h
-//  
-//
-//  Created by Slice on 26.10.16.
-//  based on CupertinoNet
-//
-
-#ifndef _AppleKeyMapAggregator_h
-#define _AppleKeyMapAggregator_h
-
-#define APPLE_KEY_MAP_PROTOCOLS_REVISION  0x010000
-#define APPLE_KEY_MAP_AGGREGATOR_SIGNATURE SIGNATURE_32 ('K', 'e', 'y', 'A')
-
-#define APPLE_KEY_STROKES_INFO_SIGNATURE   SIGNATURE_32 ('K', 'e', 'y', 'S')
-
-#define APPLE_KEY_MAP_AGGREGATOR_PRIVATE_FROM_AGGREGATOR(This) \
-  CR (                                                              \
-    (This),                                                         \
-    APPLE_KEY_MAP_AGGREGATOR,                                       \
-    AggregatorProtocol,                                             \
-    APPLE_KEY_MAP_AGGREGATOR_SIGNATURE                              \
-  )
-
-#define APPLE_KEY_MAP_AGGREGATOR_PRIVATE_FROM_DATABASE(This)   \
-  CR (                                                              \
-    (This),                                                         \
-    APPLE_KEY_MAP_AGGREGATOR,                                       \
-    DatabaseProtocol,                                               \
-    APPLE_KEY_MAP_AGGREGATOR_SIGNATURE                              \
-  )
-
-#define APPLE_KEY_STROKES_INFO_FROM_LIST_ENTRY(Entry)  \
-((APPLE_KEY_STROKES_INFO *)(                         \
-  CR (                                               \
-    (Entry),                                         \
-    APPLE_KEY_STROKES_INFO_HDR,                      \
-    This,                                            \
-    APPLE_KEY_STROKES_INFO_SIGNATURE                 \
-  )                                                \
-))
-/*
-typedef struct _EFI_LIST_ENTRY {
-  struct _EFI_LIST_ENTRY  *ForwardLink;
-  struct _EFI_LIST_ENTRY  *BackLink;
-} EFI_LIST_ENTRY;
-
-typedef EFI_LIST_ENTRY EFI_LIST;
-*/
-
-// APPLE_KEY_STROKES_INFO_HDR
-typedef struct {
-  UINTN              Signature;      ///<
-  LIST_ENTRY         This;           ///<
-  UINTN              Index;          ///<
-  UINTN              KeyBufferSize;  ///<
-  UINTN              NumberOfKeys;   ///<
-  APPLE_MODIFIER_MAP Modifiers;      ///<
-} APPLE_KEY_STROKES_INFO_HDR;
-
-// APPLE_KEY_STROKES_INFO
-typedef struct {
-  APPLE_KEY_STROKES_INFO_HDR Hdr;   ///<
-  APPLE_KEY                  Keys;  ///<
-} APPLE_KEY_STROKES_INFO;
-
-
-// APPLE_KEY_MAP_AGGREGATOR
-typedef struct {
-  UINTN                             Signature;           ///<0
-  UINTN                             NextKeyStrokeIndex;  ///<0x08
-  APPLE_KEY                         *KeyBuffer;          ///<0x10
-  UINTN                             KeyBuffersSize;      ///<0x18
-  LIST_ENTRY                        KeyStrokesInfoList;  ///<0x20
-  APPLE_KEY_MAP_DATABASE_PROTOCOL   DatabaseProtocol;    ///<0x30 size=8*4
-  APPLE_KEY_STATE_PROTOCOL          AggregatorProtocol;  ///<0x50 size=8*3
-} APPLE_KEY_MAP_AGGREGATOR;  //size=0x68
-
-
-
-#endif
Index: Xcode/Clover/Clover.xcodeproj/project.pbxproj
===================================================================
--- Xcode/Clover/Clover.xcodeproj/project.pbxproj	(revision 4415)
+++ Xcode/Clover/Clover.xcodeproj/project.pbxproj	(working copy)
@@ -1208,7 +1208,6 @@
 			isa = PBXGroup;
 			children = (
 				12AAF5F21DC0F03B00A52B12 /* AppleKeyAggregator.c */,
-				12AAF5F31DC0F03B00A52B12 /* AppleKeyAggregator.h */,
 				12AAF5F41DC0F03B00A52B12 /* AppleKeyAggregator.inf */,
 			);
 			path = AppleKeyAggregator;
@@ -2744,6 +2743,7 @@
 		2C794ADC1A0AA85900D845B0 /* Protocol */ = {
 			isa = PBXGroup;
 			children = (
+				12AAF5F31DC0F03B00A52B12 /* AppleKeyAggregator.h */,
 				2C794AD21A0AA85900D845B0 /* AppleDeviceControl.h */,
 				2C794AD31A0AA85900D845B0 /* AppleDiskIo.h */,
 				12AAF5171DBE28B800A52B12 /* AppleEvent.h */,
Index: rEFIt_UEFI/Platform/Platform.h
===================================================================
--- rEFIt_UEFI/Platform/Platform.h	(revision 4415)
+++ rEFIt_UEFI/Platform/Platform.h	(working copy)
@@ -65,6 +65,7 @@
 #include <Protocol/EmuVariableControl.h>
 #include <Protocol/AppleSMC.h>
 #include <Protocol/AppleImageCodecProtocol.h>
+#include <Protocol/AppleKeyAggregator.h>
 
 #include "../refit/lib.h"
 #include "string.h"
Index: rEFIt_UEFI/refit/main.c
===================================================================
--- rEFIt_UEFI/refit/main.c	(revision 4415)
+++ rEFIt_UEFI/refit/main.c	(working copy)
@@ -39,7 +39,6 @@
 //#include "../include/Handle.h"
 
 #include "Version.h"
-
 #ifndef DEBUG_ALL
 #define DEBUG_MAIN 1
 #else
@@ -84,6 +83,8 @@
 
 EMU_VARIABLE_CONTROL_PROTOCOL *gEmuVariableControl = NULL;
 
+APPLE_KEY_STATE_PROTOCOL *gAppleKeyState=NULL;
+
 extern VOID HelpRefit(VOID);
 extern VOID AboutRefit(VOID);
 extern BOOLEAN BooterPatch(IN UINT8 *BooterData, IN UINT64 BooterSize, LOADER_ENTRY *Entry);
@@ -1868,7 +1869,6 @@
       RecIter++;
   }
 }
-
 //
 // main entry point
 //
@@ -1897,7 +1897,10 @@
   EFI_TIME          Now;
   BOOLEAN           HaveDefaultVolume;
   CHAR16            *FirstMessage;
-
+  APPLE_MODIFIER_MAP ModifyFlags;
+  UINTN            PressedKeyCount;
+  APPLE_KEY        *Keys=NULL;
+    BOOLEAN           LazyClover=TRUE;
   // CHAR16            *InputBuffer; //, *Y;
   //  EFI_INPUT_KEY Key;
 
@@ -1908,7 +1911,7 @@
   // get TSC freq and init MemLog if needed
   gCPUStructure.TSCCalibr = GetMemLogTscTicksPerSecond(); //ticks for 1second
   //GlobalConfig.TextOnly = TRUE;
-
+  
   // bootstrap
   gST       = SystemTable;
   gImageHandle  = ImageHandle;
@@ -2126,8 +2129,29 @@
 
   //DBG("LoadDrivers() start\n");
   LoadDrivers();
-  //DBG("LoadDrivers() end\n");
-
+    //DBG("LoadDrivers() end\n");
+    //If Clover is too lazy, he will let boot.efi handle the stuff
+    if(!LazyClover){
+    Status=gBS->LocateProtocol(&gAppleKeyStateProtocolGuid,NULL,(VOID**)&gAppleKeyState);
+    if(EFI_ERROR(Status))
+    {
+        gAppleKeyState=NULL;
+    }
+    if(Status==EFI_SUCCESS)
+    {
+        DBG("Protocol Located!\n");
+        Status=gAppleKeyState->ReadKeyState(gAppleKeyState,&ModifyFlags,&PressedKeyCount,Keys);
+        if(Status==EFI_SUCCESS)
+        {
+            DBG("ReadKeyState Succeesful\n");
+            DBG("PressedKeyCount:%d!\n",PressedKeyCount);
+            for(i=0;i<PressedKeyCount;i++)
+            {
+                DBG("Keys:",Keys[i],"\n");
+            }
+        }
+    }}
+  
 /*  if (!gFirmwareClover &&
       !gDriversFlags.EmuVariableLoaded) {
     GetSmcKeys(FALSE);  // later we can get here SMC information
Index: rEFIt_UEFI/refit.inf
===================================================================
--- rEFIt_UEFI/refit.inf	(revision 4415)
+++ rEFIt_UEFI/refit.inf	(working copy)
@@ -251,7 +251,7 @@
   gMsgLogProtocolGuid
   gEfiPlatformDriverOverrideProtocolGuid
   gEmuVariableControlProtocolGuid
-
+  gAppleKeyStateProtocolGuid
 [FeaturePcd]
   gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport

 

This patch breaks the build, it does not work... Also it's not what needs to be done. You only need to check if there are any keys at all, if not whatever, if there are then you need to check if the auto launched entry is boot.efi. If it is not boot.efi, show the GUI, if it is boot.efi, check that the key presses aren't combinations passed to boot.efi and if so show the GUI, otherwise just continue booting automatically.

 

sure, posting the same exactly stuff will not make sense otherwise.

 

17E150g? I have 17E151f ??  Downloaded from the developer center one week ago. 

EDIT

 

WTH, downloaded/installed the beta on a secondary hack the same way and it show 17E150g like you. just logged now  :worried_anim:, what's going on?

..going to sleep

 

Sometimes you get earlier releases just because of some magic when you go straight to the download in apple dev. I imagine that it is a build that was already set for release and they put it up had problems and pulled it. Since the update channel is usually behind the developer previews straight from apple site.

After getting update notification and rebooting with Clover 4411 I get this on system in signature. All was fine with 43xx. Can't remember the exact version.

 

Sent from my ONEPLUS A5010 using Tapatalk

 

That is a general protection fault, meaning memory was accessed outside of where it was allowed. Depending on when exactly it happened, changes the causes. Just go backwards until you find the revision that works, that will be easier to trace down the issue.

Link to comment
Share on other sites

 

config.plist

 

<key>Mouse</key>

<dict>
<key>DoubleClick</key>
<integer>500</integer>
<key>Enabled</key>
<true/>
<key>Mirror</key>
<false/>
<key>Speed</key>
<integer>8</integer>
</dict>

 

 

Already have this in my config.plist. Unfortunately it doesn't move!

Link to comment
Share on other sites

That is a general protection fault, meaning memory was accessed outside of where it was allowed. Depending on when exactly it happened, changes the causes. Just go backwards until you find the revision that works, that will be easier to trace down the issue.

 

Yeah I went back to 4392 as I had before after booting with my recovery USB.

Link to comment
Share on other sites

Do you have a firmware that has GUI with mouse? Are you using any drivers for clover like the UsbMouse?

 

I've tried with and without UsbMouse, but nothing changes: the pointer moves only if I press repeatedly the left button.

 

What do you mean for "firmware that has GUI with mouse"?

Link to comment
Share on other sites

I've tried with and without UsbMouse, but nothing changes: the pointer moves only if I press repeatedly the left button.

 

What do you mean for "firmware that has GUI with mouse"?

@apianti

I have the exact same problem. I've had this issue since macOS Sierra 10.12 and up to 10.13.3

 

I have to click on the menu bar when the OS is loaded to get the pointer to show or I have to disable the automatic login and after I log in the mouse works just fine.

 

I have the mouse support in the UEFI and the Clover's GUI.

I'm not using the UsbMouseDxe though.

 

Update:

I added the UsbMouseDxe-64.efi to the "drivers64UEFI" folder and the problem was solved.

 

Thanks @apianti for the tip it solved an issue that I had for so long :)

The wierd discovery:  :blink:

 

After couple of reboots, I discovered when I use the keyboard in the clover's GUI, for instance when I press return to boot into macOS, when the os is loaded I lose the mouse pointer, but if I let the clover automatically load the OS the mouse pointer is showing like it's suppose to. Why is that?

 

I tried the UsbKBbDXE-64 as well but there was no difference the same thing happens.

Link to comment
Share on other sites

@apianti

I have the exact same problem. I've had this issue since macOS Sierra 10.12 and up to 10.13.3

 

I have to click on the menu bar when the OS is loaded to get the pointer to show or I have to disable the automatic login and after I log in the mouse works just fine.

 

I have the mouse support in the UEFI and the Clover's GUI.

I'm not using the UsbMouseDxe though.

 

Update:

I added the UsbMouseDxe-64.efi to the "drivers64UEFI" folder and the problem was solved.

 

Thanks @apianti for the tip it solved an issue that I had for so long :)

The wierd discovery:  :blink:

 

After couple of reboots, I discovered when I use the keyboard in the clover's GUI, for instance when I press return to boot into macOS, when the os is loaded I lose the mouse pointer, but if I let the clover automatically load the OS the mouse pointer is showing like it's suppose to. Why is that?

 

I tried the UsbKBbDXE-64 as well but there was no difference the same thing happens.

 

 

I have mouse issues only in the Clover GUI, while in the OS it works without problems.

  • Like 1
Link to comment
Share on other sites

I have mouse issues only in the Clover GUI, while in the OS it works without problems.

I have a very similar motherboard, and the similar mouse. It did not react in the Clover GUI, until I put AptioInputFix.efi in the folder /CLOVER/drivers64UEFI. Now everything is working properly. At the same time, I switched to AptioMemoryFix.efi and have got a fully working nvram without EmuVariableUefi-64.efi and refused scripts.

  • Like 1
Link to comment
Share on other sites

This patch breaks the build, it does not work... Also it's not what needs to be done. You only need to check if there are any keys at all, if not whatever, if there are then you need to check if the auto launched entry is boot.efi. If it is not boot.efi, show the GUI, if it is boot.efi, check that the key presses aren't combinations passed to boot.efi and if so show the GUI, otherwise just continue booting automatically.

 

 

Sometimes you get earlier releases just because of some magic when you go straight to the download in apple dev. I imagine that it is a build that was already set for release and they put it up had problems and pulled it. Since the update channel is usually behind the developer previews straight from apple site.

 

That is a general protection fault, meaning memory was accessed outside of where it was allowed. Depending on when exactly it happened, changes the causes. Just go backwards until you find the revision that works, that will be easier to trace down the issue.

Currently, I'm working to make all Apple Boot Keys works(for AMI Aptio boards, at least for laptops) even the alt key. Trying to make the AptioInputFix more useful :), attempt to make it to sent modifier key like Alt for GUI, Shift for Safe Mode. 

  • Like 1
Link to comment
Share on other sites

Hi all

 

Is it at all possible to boot Clover and macOS from an LSI SAS/SATA adapter, on a system without UEFI (using Legacy Boot)? 

 

I'm running 10.13.3 with latest Clover (4411).  I'm installed on an SSD so I am using APFS.  My motherboard is Gigabyte GA-X58A-UD3R, which does not have UEFI.

 

My LSI card is an LSI 9201-8i, which uses the 2008 controller chip and has latest firmware (v20).  I have this working in my macOS 10.13.3 installation using Astek drivers installed in EFI/CLOVER/kexts/Other.  Once booted, I can see and use drives attached to this controller.

 

But if possible I would like to move my main SSD to this controller and boot from it, so that I'm not using onboard SATA at all.  I've tried two things:

 

1. I attached my macOS/Clover SSD to the LSI and set it first in the boot order.  Clover started to load (I saw the cursor at top left, and then the number 6 briefly appears), but it then went to the "BIOS-like" interface where Continue is the first option, which the Clover Wiki describes as "This means that the boot file was successfully loaded and is working but it cannot find the file CloverX64.efi."

 

2. I also tried a new Clover install onto a USB drive.  This loads Clover OK, but drives installed on the LSI don't appear in the selection.

 

I suppose this is probably predictable - Clover can't read from the LSI controller without drivers, which don't exist.  However, I know other people are booting from RAID arrays on LSI MegaRAID cards.   But perhaps they can only do that if they have EFI support?  (Although the posts I've seen mentioning RAID boot are a year or two old, back on 10.11 and 10.12 and before APFS, and maybe that's changing something.)

 

Also I am able to boot other OS' direct from the LSI - Windows, Linux, etc.  Windows I have confirmed I can fully boot to from the LSI, even though I originally installed it on the onboard SATA.

 

But I suppose Clover and macOS must be a bit different, perhaps because of the need to fake EFI.  I'm sorry that I don't really understand the technical details of these boot loaders yet, though I am trying to learn more.  But I can imagine the Clover bootloader must be more complex than the basic one used to launch Windows, or Grub in Linux etc.

 

Is there any way to get this to work?  I suppose worst case I could have the main OS installed on a small SSD on my onboard SATA, then move /Users to the main SSD on the LSI.  But it'd be nice if I could just use the LSI controller and not need to split my macOS install over two SSDs.

 

Thanks in advance.

 

PS. in case it's of any importance, I've noticed that since I installed the LSI controller, I always see the number '6' in the top left of the screen just before the Clover GUI appears.  I saw in the FAQ that a '7' means problems, but I don't know what '6' means.  This happens regardless of how I boot Clover - from onboard SATA; from USB; and from a (failed) attempt to boot direct from the LSI.

Link to comment
Share on other sites

@TheBloke

Installing Clover you may choose SATA driver or BiosBlockIO.

Снимок экрана 2018-02-15 в 18.30.03.png

In the first case you will see 6 on the screen. In the second case 7.

I may propose that for LSI controller you need 7.

  • Like 1
Link to comment
Share on other sites

Hi

 

On Sourceforge, code repositories are not currently available since yesterday.  So, I can't see commits. Did you have the same issue?

 

Sourceforge is migrating servers so it will be down intermittently.

Currently, I'm working to make all Apple Boot Keys works(for AMI Aptio boards, at least for laptops) even the alt key. Trying to make the AptioInputFix more useful :), attempt to make it to sent modifier key like Alt for GUI, Shift for Safe Mode. 

 

I think you may be misguided. I am unsure what you are doing or trying to do but it doesn't really make a lot of sense. Or at least your explanation of it.....

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...