Jump to content
3205 posts in this topic

Recommended Posts

Yes appear to be good less when only one os is given:

else {
    // str contains only one component and it is our string!
    mo->array[0] = str;
  }

when  is only one "token" fails because later we call "FreePool" but  is not allocated by malloc (AllocatePool). We have to use "AllocatePool" also for that otherwise cannot be freed.  

EDIT

 

or skip it if the count == 1

Thanks!

This must be

mo->array[0] = AllocateCopyPool(sizeof(str), str);

Rev 3582

Why I never get this log?

This patch is not allowed for booted OS..

Here my bootlog:

 

Because patches will be disabled only after booting OS when debug.log is already closed.

And yes, if the patch is disabled then no need to look it.

Submitted 3583

I was just about to post great success with 3582 and now there's another commit!

 

Building 3583 now :)

 

Ok, 3583 also works well. The correct patches are loaded depending on whether I boot into 10.10, 10.11 or 10.12 on the X79.

 

I can't see any difference between 82 and 83 though. It still runs through all the patches and still shows all 21 patches in bdmesg. Or did I misread the commit description?

I was just about to post great success with 3582 and now there's another commit!

 

Building 3583 now :)

 

Ok, 3583 also works well. The correct patches are loaded depending on whether I boot into 10.10, 10.11 or 10.12 on the X79.

 

I can't see any difference between 82 and 83 though. It still runs through all the patches and still shows all 21 patches in bdmesg. Or did I misread the commit description?

Hello there,

 

Commit [r3583]

 

dont allocate data for disabled patches

 

What does that mean?

 

Well, it's very simple, if the patch has the variable disabled set to true, clover won't allocate memory for the specific patch and the kext won't be patched.

 

Best regards.

In my case Clover wouldn't be able to patch the kext anyway as the "find" pattern wouldn't match. Most of them differ with OS versions.

 

This is how I've been doing it up until now with all 21 patches for AICPUPM for 10.9-10.12. Clover would run through all of them but would only be able to apply the ones where the find pattern matches. The rest would just fail.

 

Ideally what I'd like would be if Clover would only load the ones that matched and ignored all the others. What we have now is a step up as it doesn't try to apply unmatched patches. I'm not too well versed in the internals, but not allocating memory for patches that won't be applied sounds like a good improvement.

I was just about to post great success with 3582 and now there's another commit!

 

Building 3583 now :)

 

Ok, 3583 also works well. The correct patches are loaded depending on whether I boot into 10.10, 10.11 or 10.12 on the X79.

 

I can't see any difference between 82 and 83 though. It still runs through all the patches and still shows all 21 patches in bdmesg. Or did I misread the commit description?

It looks for all patches and show then in bdmesg, except patches marked "Disabled".

But decision about is the patch allowed for booted OS will be later.

 

Commit 83 is only for optimize time and reduce memory leaks.

 

 

 

Isn't sizeof(str) always 4 or 8? Maybe it should be AsciiStrLen(str) + 1

 

AsciiStrSize(str) looks better, but you're absolutely right @joevt . :)

Agree. Commit, please, I can't do this now.

  • Like 1

It looks for all patches and show then in bdmesg, except patches marked "Disabled".

 

I think that's what I was expecting, but it still shows all of the patches in bdmesg. By disabled do you mean patches that don't match the running OS?

 

Any patches that don't match still show the "not allowed" message in debug.

Now I am at home. Committed 3584.


I think that's what I was expecting, but it still shows all of the patches in bdmesg. By disabled do you mean patches that don't match the running OS?

 

Any patches that don't match still show the "not allowed" message in debug.

No I mean key "Disabled"

		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Find</key>
				<data>SGVhZHBob25lcwA=</data>
				<key>Name</key>
				<string>VoodooHDA</string>
				<key>Replace</key>
				<data>VGVsZXBob25lcwA=</data>
				<key>Disabled</key>
				<true/>
			</dict>

  • Like 1

 

@Slice

For bdmesg, why check for Disable instead of MatchOS Key to prevent it from showing?

 

@Mickey1979

All have NO space in between?

<string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x</string>

I explained this several times. Because OSversion is not known at the time of settings reading.

 

Yes, no spaces.

  • Like 2

For bdmesg, why check for Disable instead of MatchOS Key to prevent it from showing?

Because your computer might have multiple partitions with different versions of OS X and the version that you want to boot hasn't been chosen at the time of settings reading.
  • Like 1

Clover 3606

 

 

[DLINK1] OsxLowMemFixDrv
[CC] Mach-O
[MTOC] OsxLowMemFixDrv
[GENFW] OsxLowMemFixDrv
[CC] NVRAMDebug
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4182:42: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
  InputBootArgs->Entry.Title = PoolPrint("%s", L"Theme:");
                                         ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4192:12: error: use of undeclared identifier 'Flags'
  FreePool(Flags);
           ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4232:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Config:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4244:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Boot Args:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4255:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Block kext:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4266:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Set OS version if not:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
6 errors generated.
make: *** [/Users/dropletsboris/src/edk2/Build/Clover/RELEASE_XCODE5/X64/Clover/rEFIt_UEFI/refit/OUTPUT/refit/menu.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/dropletsboris/src/edk2/Build/Clover/RELEASE_XCODE5/X64/Clover/rEFIt_UEFI/refit]


build.py...
 : error F002: Failed to build module
	/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit.inf [X64, XCODE5, RELEASE]

- Failed -
Build end time: 21:07:55, Jul.11 2016
Build total time: 00:00:40

Dropletss-MacBook-Pro:Clover dropletsboris$ 

 

 

Micky1979! Thank you!

 

 

 







Building process complete!
 --------------------------

 Build info.
 ===========
  Package name: Clover_v2.3k_r3606.pkg
  MD5:          3a95f39f400d2e390ca691b423057470
  Version:      v2.3k
  Stage:        v2.3k
  Date/Time:    2016-07-11 23:32:50
  Built by:     dropletsboris
  Copyright     2012-2016

  adding: Clover_v2.3k_r3606.pkg (deflated 0%)
  adding: Clover_v2.3k_r3606.pkg.md5 (stored 0%)
total 105000
drwxr-xr-x   9 dropletsboris  staff       306 Jul 11 23:35 .
drwxr-xr-x  14 dropletsboris  staff       476 Jul 11 23:35 ..
-rw-r--r--@  1 dropletsboris  staff  26706925 Jul 11 23:35 Clover_v2.3k_r3606.pkg
-rw-r--r--   1 dropletsboris  staff        68 Jul 11 23:35 Clover_v2.3k_r3606.pkg.md5
-rw-r--r--   1 dropletsboris  staff  26661640 Jul 11 23:35 Clover_v2.3k_r3606.zip
drwxr-xr-x   3 dropletsboris  staff       102 Jul 11 23:35 Resources
drwxr-xr-x   7 dropletsboris  staff       238 Jul 11 23:35 build
drwxr-xr-x   3 dropletsboris  staff       102 Jul 11 23:35 package
drwxr-xr-x   7 dropletsboris  staff       238 Jul 11 23:35 utils 

 

 

  • Like 1

 

Micky1979! Thank you!

 

 

 

Building process complete!

--------------------------

 

Build info.

===========

Package name: Clover_v2.3k_r3606.pkg

MD5: 3a95f39f400d2e390ca691b423057470

Version: v2.3k

Stage: v2.3k

Date/Time: 2016-07-11 23:32:50

Built by: dropletsboris

Copyright 2012-2016

 

adding: Clover_v2.3k_r3606.pkg (deflated 0%)

adding: Clover_v2.3k_r3606.pkg.md5 (stored 0%)

total 105000

drwxr-xr-x 9 dropletsboris staff 306 Jul 11 23:35 .

drwxr-xr-x 14 dropletsboris staff 476 Jul 11 23:35 ..

-rw-r--r--@ 1 dropletsboris staff 26706925 Jul 11 23:35 Clover_v2.3k_r3606.pkg

-rw-r--r-- 1 dropletsboris staff 68 Jul 11 23:35 Clover_v2.3k_r3606.pkg.md5

-rw-r--r-- 1 dropletsboris staff 26661640 Jul 11 23:35 Clover_v2.3k_r3606.zip

drwxr-xr-x 3 dropletsboris staff 102 Jul 11 23:35 Resources

drwxr-xr-x 7 dropletsboris staff 238 Jul 11 23:35 build

drwxr-xr-x 3 dropletsboris staff 102 Jul 11 23:35 package

drwxr-xr-x 7 dropletsboris staff 238 Jul 11 23:35 utils 

 

 

attachicon.gif Log_Compile3606.zip

 

 

tested the boot?

Clover 3606

 

 

[DLINK1] OsxLowMemFixDrv
[CC] Mach-O
[MTOC] OsxLowMemFixDrv
[GENFW] OsxLowMemFixDrv
[CC] NVRAMDebug
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4182:42: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
  InputBootArgs->Entry.Title = PoolPrint("%s", L"Theme:");
                                         ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4192:12: error: use of undeclared identifier 'Flags'
  FreePool(Flags);
           ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4232:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Config:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4244:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Boot Args:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4255:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Block kext:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit/menu.c:4266:44: error: incompatible pointer types passing 'char [3]' to parameter of type 'CHAR16 *' (aka 'unsigned short *') [-Werror,-Wincompatible-pointer-types]
    InputBootArgs->Entry.Title = PoolPrint("%s", L"Set OS version if not:");
                                           ^~~~
/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/Platform/../refit/IO.h:115:40: note: passing argument to parameter 'fmt' here
  IN CHAR16                           *fmt,
                                       ^
6 errors generated.
make: *** [/Users/dropletsboris/src/edk2/Build/Clover/RELEASE_XCODE5/X64/Clover/rEFIt_UEFI/refit/OUTPUT/refit/menu.obj] Error 1


build.py...
 : error 7000: Failed to execute command
	make tbuild [/Users/dropletsboris/src/edk2/Build/Clover/RELEASE_XCODE5/X64/Clover/rEFIt_UEFI/refit]


build.py...
 : error F002: Failed to build module
	/Users/dropletsboris/src/edk2/Clover/rEFIt_UEFI/refit.inf [X64, XCODE5, RELEASE]

- Failed -
Build end time: 21:07:55, Jul.11 2016
Build total time: 00:00:40

Dropletss-MacBook-Pro:Clover dropletsboris$ 

 

 

Thanks,

corrected in 3607

is it normal to have this during compilation? compiled success though

cp: /Users/ellaosx/src/edk2/Build/Clover/RELEASE_XCODE5/X64/GrubEXFAT.efi: No such file or directory

It is not normal that compilation scripts don't see the flag NO_GRUB_DRIVERS.

 

@Slice

Both boo6 & boot7 has the error if i add -D NO_GRUB_DRIVERS on it.

No errors if i dont add it.

these are my ebuild:

./ebuild.sh -mc -D USE_APPLE_HFSPLUS_DRIVER -D DISABLE_USB_SUPPORT -D NO_GRUB_DRIVERS
./ebuild.sh -D USE_APPLE_HFSPLUS_DRIVER  -D NO_GRUB_DRIVERS

Note: ia32 is OK. no error if i add -D NO_GRUB_DRIVERS

./ebuild.sh --ia32 -D USE_APPLE_HFSPLUS_DRIVER -D NO_GRUB_DRIVERS
×
×
  • Create New...