Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

Hi @Jief_Machak,

The message 

ProductName is not defined, the whole SMBIOS dict is ignored at line 437.

should not ever appear, because we have automatic definition

    Model = GetDefaultModel();

...

  SetDMISettingsForModel(Model, &gSettings, &GlobalConfig);

....

  settingsData->Smbios.ProductName = ApplePlatformData[Model].productName;

....

      if ( !ProductName.isDefined() ) {

        return xmlLiteParser->addWarning(generateErrors, S8Printf("ProductName is not defined, the whole SMBIOS dict is ignored at line %d.", keyPos.getLine()));

      }

 

This moment I will comment out this warning but why?

Link to comment
Share on other sites

1 hour ago, Slice said:

Hi @Jief_Machak,

The message 

ProductName is not defined, the whole SMBIOS dict is ignored at line 437.

should not ever appear, because we have automatic definition

    Model = GetDefaultModel();

...

  SetDMISettingsForModel(Model, &gSettings, &GlobalConfig);

....

  settingsData->Smbios.ProductName = ApplePlatformData[Model].productName;

....

      if ( !ProductName.isDefined() ) {

        return xmlLiteParser->addWarning(generateErrors, S8Printf("ProductName is not defined, the whole SMBIOS dict is ignored at line %d.", keyPos.getLine()));

      }

 

This moment I will comment out this warning but why?

Because ProductName validate is occurred before we make default calculations?

Link to comment
Share on other sites

Based on the above are FirmwareFeatures and ExtendedFirmwareFeatures the same? Meaning the same value?

I really wish this was clarified as to where the get the ExtendedFirwmwareFeatures and ExtendedFirmwareFeaturesMask values from.
If these are going to be integral moving forward with Monterey then why aren’t the details published? Too much guessing going on.


Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

19 minutes ago, MifJpnAlphaPlus said:

I'm sorry for making so many mistakes.
 Apparently, the relationship between the existing FirmwareFeatures and ExtendedFirmwareFeatures is a logical OR, which simply means that the existing values have been converted to 64-bit by adding an "8" to the head.
 Without it, you can update, but you can't do a full install. As you know, a full installation takes a long time, so it took us a long time to provide you with a minimalist guide.
Sorry and Thanks.

 

Thanks @MifJpnAlphaPlus I don't know about the method. Only thing I know, ExtendedFirmwareFeatures and ExtendedFirmwareFeaturesMask are solving update loop installation for Monterey since Beta 7 (or Beta 8, I don't remember) on my Z390 system.

  • Like 1
Link to comment
Share on other sites

17 hours ago, 5T33Z0 said:

I created a repo for an english Clover documnetation, since the  pdf is russian only.

 

Enjoy.

 

https://github.com/5T33Z0/Clover-Crate

Hi @5T33Z0

nice work, an up to date versions are always welcome

Wandering if could be also useful to have it linked into buildme...

In the meantime, may i use your sources to implement Clover's Documentation section into CloverSuiteBuilder?

 

  • Like 1
Link to comment
Share on other sites

10 hours ago, Slice said:

Hi @Jief_Machak,

The message 

ProductName is not defined, the whole SMBIOS dict is ignored at line 437.

should not ever appear, because we have automatic definition

    Model = GetDefaultModel();

...

  SetDMISettingsForModel(Model, &gSettings, &GlobalConfig);

....

  settingsData->Smbios.ProductName = ApplePlatformData[Model].productName;

....

      if ( !ProductName.isDefined() ) {

        return xmlLiteParser->addWarning(generateErrors, S8Printf("ProductName is not defined, the whole SMBIOS dict is ignored at line %d.", keyPos.getLine()));

      }

 

This moment I will comment out this warning but why?

The check made by the config.plist xml reader cannot depend of the hardware. Otherwise, CloverConfigPlistValidator cannot work.

 

I consider that, if someone wants to override SMBIOS default value, the first thing to do is to define ProductName. I'm pretty sure most of configs already define that. Proof is that this warning is present since months and nobody complains about it. I think someone mentioned it and we said to define ProductName and that was it.

 

It's of course possible to not do any checks when ProductName is not defined and still accept other values, but it's introducing a complexity level for what ? Just 2 lines in config.plist. The "rule" : always define ProductName is simpler and easier to understand and remember.

 

I don't understand why you want to comment out instead of defining ProductName in config.plist/SMBIOS.

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Jief_Machak said:

Tell me more and I'll explain.

HWTarget can have a default value as ApplePlatformData[Model].smcPlatform.

But I don't know what is the place/moment to do this and how to access "Model".

1 hour ago, Jief_Machak said:

 

I don't understand why you want to comment out instead of defining ProductName in config.plist/SMBIOS.

 

Because some users can't choose right ProductName while Clover knows GetDefaultModel(). Else why the procedure exists?

Link to comment
Share on other sites

@Slice

I added the new HWTarget parameter to the config:

Bildschirmfoto.png.e30528a9a34ec28949f3ada59428b531.png

 

But Clover doesn't like it. I have r5140.1 is installed:

Warning: Unknown key '/RtVariables/HWTarget:715'. Skipped.

Did I do something wrong?

sysctl hw.target
sysctl: unknown oid 'hw.target'

 

Edited by 5T33Z0
Link to comment
Share on other sites

2 hours ago, Slice said:

But I don't know what is the place/moment to do this and how to access "Model

All methods dget...() is a place to return a default value ( dget for default_get) if not defined in config.plist. But of course, ProductName has to be defined.

 

It’s not hard to know what’s the right ProductName, and it looks like all users we know already has it.

if a user don’t know it’s ProductName, will he really defined other SMBIOS value, which are harder to understand ?

 

 

  • Like 1
Link to comment
Share on other sites

But yes, other values also depends on ProductName. So if it is not defined then SMBIOS values will be unreal mixed.

Anyway it is accessible like we think out some unreal serial numbers and can replace one model to another don't touchings others values.

Link to comment
Share on other sites

Can someone please ELI5 the new hw.target and ExtendedFirmwareFeatures and ExtendedFirmwareFeaturesMask.
What are they?
What do they do?
Where do we get the values?

I’m sorry but if these items have been implemented and are a must have moving forward then surely some reasonable documentation should exist for what they are, how to use them and how to get the required values.

If this is common knowledge and I’m just a dummy then tell me I’m a dummy, all I want is a simple explanation of what they are, what they do, where to get them and are they needed.

I have asked for this information a few times already with no luck.


Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

1 hour ago, MifJpnAlphaPlus said:

Hello.
I have built the latest commit. (Commit: dfbdc8ae45b2aad608bc93f64ebe8d58758a56fc)
My rig is an iMac 19,2, so it doesn't have a T2 chip. So I configured it as follows.

secureboot-clover.png

 

% ./CloverConfigPlistValidator_r5140 /Volumes/EFI/EFI/CLOVER/config.plist
Your plist looks so wonderful. Well done!

 

% sysctl hw.target                             
hw.target: X86LEGACYAP

I think it may be too slow to download it from a Japanese PC. If you can download it from below, you might be happy.

Clover_r5140-dfbdc8ae45b2aad608bc93f64ebe8d58758a56fc.pkg

CloverV2-5140-dfbdc8ae45b2aad608bc93f64ebe8d58758a56fc.zip

 

Thank you

 

Thanks @MifJpnAlphaPlus for you method.

@Slice Is HWTarget key mandatory for non T2 chip config ! I use Imac19,1 (Corei7 9770K Z390 config):  T2 chip doesn't exist on Intel machines.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Slice said:

I think hw.target value should be low case.

 

47 minutes ago, MifJpnAlphaPlus said:

Hello

I tested it with lower case letters.

% sysctl hw.target
hw.target: x86legacyyap

Monterey was able to boot.

Thank you very much.

 


@MifJpnAlphaPlus @Slice

My Z390 (SMBIOS Imac19,1) config boot Monterey without 'hwtarget' key in config.plist. 
 

% sysctl hw.target
hw.target:
%

How do you find the value: 

x86legacyyap

As I say before: Imac19,1 SMBIOS do not have T2 chip. So maybe Hw.target key and value aren't necessary !

 

My next questions is this:

Will the fact that an iMac has a T2 chip affect using the SMBIOS for a hackintosh?

Link to comment
Share on other sites

I though the whole point of adding HWTaget was to set it to j160 so that updates for macOS Monterey are offerered? Otherwise what's the point of having it, since Clover doesn't support secureboot.

Link to comment
Share on other sites

Hello.
 
The shortest answer is: "Because we're hackers."
 
 
 The easiest way I have done it is to use the Clover Configruator. The values for FirmwareFeatures and FirmwareFeaturesMask are 32 bits, since 5140.1 is not yet supported. You can make them output as your Mac's name, and then do a logical OR with 0x800000000 to make them 64-bit. Simply put, you can add "8" to the hexadecimal number to make the ExtendedFirmwareFeatures and ExtendedFirmwareFeaturesMask values respectively.
 And hw.target is to be set as shown in the following web page, as there is a range of OS to boot.
SecureBootModel in OpenCore 0.7.2
Thank you.


So if I am reading right anything after iMac17,1 needs the new hw.target?
And also if I read correctly ExtendedFirmwareFeatures and ExtendedFirmwareFeaturesMast is the same as the non extended just with an 8 as the first bit?


Sent from my iPhone using Tapatalk
  • Like 1
Link to comment
Share on other sites

5 hours ago, Matgen84 said:

 

Thanks @MifJpnAlphaPlus for you method.

@Slice Is HWTarget key mandatory for non T2 chip config ! I use Imac19,1 (Corei7 9770K Z390 config):  T2 chip doesn't exist on Intel machines.

I think it is not-needed for non-T2 machines because x86legacy is default value if not set.

32 minutes ago, SavageAUS said:


And also if I read correctly ExtendedFirmwareFeatures and ExtendedFirmwareFeaturesMast is the same as the non extended just with an 8 as the first bit?
 

 

Exactly.

  • Thanks 2
Link to comment
Share on other sites

1 hour ago, MifJpnAlphaPlus said:

Hello.
I'm sorry if I'm thinking wrong.
As per the following web page.

 

SecureBootModel in OpenCore 0.7.2

 

I think the original problem is in the Trusted Boot.
The reason why it is rushed and the reason why OpenCore set the default to auto is because it will be the norm for all future Macs to have T2 chips. I think it's safe to say that the final OS for Intel models will be a Trusted Boot based on hw.target, which is controlled by T2.

Thank you.

 

I was refering to this changelog:

Quote

Rev 5140 commit ec1f8a6a4ab1f0797d7a9e84d1c00b7517539583

Implemented hw.target

 

There is new setting in config.plist->RTVariables

	<key>RtVariables</key>
	<dict>
		<key>HWTarget</key>
		<string>j160</string>

It will be written into NVRAM as variable BridgeOSHardwareModel which will be asked by monterey and needed for software update.

it can be checked by command

% sysctl hw.target
hw.target: j160

 

Link to comment
Share on other sites

See

sergey@iMac2017 % sysctl hw.target
hw.target: j160
sergey@iMac2017 % nvram 94B73556-2197-4702-82A8-3E1337DAFBFB:HardwareModel
94B73556-2197-4702-82A8-3E1337DAFBFB:HardwareModel	x86legacyap%00%00%00%00%00
sergey@iMac2017  % 

 

  • Like 2
Link to comment
Share on other sites

On 10/11/2021 at 2:54 AM, Slice said:

But yes, other values also depends on ProductName. So if it is not defined then SMBIOS values will be unreal mixed.

That's why I consider that ProductName MUST be defined otherwise the whole SMBIOS is not valid.

If ProductName is defined, it's easy for dget...() to return a default value.

 

And, if ProductName is NOT defined but we keep other values, they'll get mixed as well. Plus : we have to handle that outside the "setting layer".

 

In short, I'll strongly advise, because it makes a lot of things easier to understand and to program, to agree with this new rule.

 

On 10/11/2021 at 2:54 AM, Slice said:

Anyway it is accessible like we think out some unreal serial numbers and can replace one model to another don't touchings others values.

Not sure what you mean here.

 

To conclude, we have to decide first : is it ok to users to define ProductName if they want to define other values (it is still ok to start without ProductName and then get from the log (or we can display it in the about menu) ?

What do you all think.

  • Like 2
Link to comment
Share on other sites

I am going to attempt the beta 10 update when I get home with no changes to config.plist except for adding an 8 infront of my FirmwareFeatures and using that value for the ExtendedFirmwareFeature and it’s mask.
Will post results. Installs will be done on 2 hacks, 1 intel MacBookPro16,4 and 1 AMD iMacPro1,1.


Sent from my iPhone using Tapatalk

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...