Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

i changed your code to this:

 

if DualLink set in clover - set DualLink=1

otherwise check resolution to see if we need DualLink

 

 

default:

      if (gSettings.DualLink != 0) {

          devprop_add_value(device, "AAPL00,DualLink", (UINT8*)&gSettings.DualLink, 1);

          DBG("  AAPL00,DualLink = 1\n");

      }

      else {

        if (UGAWidth >= 1400) {

          DBG("  High Resolution Display\n");

          DBG("  AAPL00,DualLink: set to 1\n");

          DualLink = 1;

          devprop_add_value(device, "AAPL00,DualLink", (UINT8*)&DualLink, 1);

        }

        else {

        /* if (UGAWidth < 1400) { */

          DBG("  Low Resolution Display\n");

          DBG("  AAPL00,DualLink: not used\n");

        }

      }

      break;

 

i see. now, duallnk detect is good except only one your case.

 

many users maybe will add manually duallink=0 in config.plist or Duallink <0x00, 0x00, 0x00, 0x00> in ACPI injection.

ofc like you said, need override. since users use clover, i wonder they(have low resolution) always set duallink 0 in config or acpi injection

 

 

i now think better solution to cover.  thank you for report

Link to comment
Share on other sites

it seems that DualLink = 0 is the same is not setting it? so it seems ok to skip it. meaning not create a property to set it to 0

 

i think the best option to really override settings for experts or some other reason is to use the Clover Device Properties section.

Link to comment
Share on other sites

it seems that DualLink = 0 is the same is not setting it? so it seems ok to skip it. meaning not create a property to set it to 0

 

i think the best option to really override settings for experts or some other reason is to use the Clover Device Properties section.

I know. Duallink default 1 now in clover.

1400 down resolution need duallink 0 in config or acpi injection to skip duallink value.(old gma also same)

 

I return code to override duallink from config.plist.

 

In next gma, low resolution users have to set duallink 0 in config.plist or acpi injection(you can check rehabman igpu ssdt).

 

Some low cost laptop with latest intel graphic(broadwell and skylake) has 1366x768. They will also include this case

 

 

I just considered it between comfortable or un comfortable.

 

Thank you for suggestion

 

나의 LG-F410S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

ah yes.  so then to me seems that DualLink=0 in platformdata.c makes more sense? 

 

the logic seems easier:

 

Default = 0

if DualLink=1 set in clover use it,

otherwise check resolution and set to 1 if needed?

 

i just used the code above ... and changed DualLink=0 in platformdata.c

 

5:635  0:000  Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
5:635  0:000    Found Full HD Display - 16:9 :: Width=1920 Height=1080
5:635  0:000    High Resolution Display
5:635  0:000    AAPL00,DualLink: set to 1

5:635  0:000    FakeID Intel GFX: not set
5:635  0:000    ig-platform-id: not set
5:635  0:000    Beginning Intel GFX auto-detection with ACPI injection
5:635  0:000    Found FakeID Intel GFX = 0x19168086
5:635  0:000    Found ig-platform-id = 0x19160000
5:635  0:000  Intel GFX revision  = 0x7

Link to comment
Share on other sites

ah yes.  so then to me seems that DualLink=0 in platformdata.c makes more sense? 

 

the logic seems easier:

 

Default = 0

if DualLink=1 set in clover use it,

otherwise check resolution and set to 1 if needed?

 

i just used the code above ... and changed DualLink=0 in platformdata.c

 

5:635  0:000  Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)

5:635  0:000    Found Full HD Display - 16:9 :: Width=1920 Height=1080

5:635  0:000    High Resolution Display

5:635  0:000    AAPL00,DualLink: set to 1

5:635  0:000    FakeID Intel GFX: not set

5:635  0:000    ig-platform-id: not set

5:635  0:000    Beginning Intel GFX auto-detection with ACPI injection

5:635  0:000    Found FakeID Intel GFX = 0x19168086

5:635  0:000    Found ig-platform-id = 0x19160000

5:635  0:000  Intel GFX revision  = 0x7

 

try build and test with this and clean r4069 source. then please clover boot log.

 

please no edit this, just build and test your lenovo hd3000 non-mod bios

Link to comment
Share on other sites

exactly

in my case, on T420#1 where BIOS resolution != LCD, I need to add DualLink=1 

otherwise it automatically figures out I need DualLink =1 (works on T420#2 and T460)

 

with my code (gma.c), and DualLink=0 (platformdata.c)

 

low-res bios: Set DualLink=1 in Clover Graphics

5:793  0:000  Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)
5:793  0:000    IntelHDMI: used
5:793  0:000    AAPL00,override-no-connect: added
5:793  0:000    AAPL00,DualLink = 1
5:793  0:000    FakeID Intel GFX: not set
5:793  0:000    snb-platform-id: not set
5:794  0:000    Beginning Intel GFX auto-detection with ACPI injection
5:794  0:000    Found FakeID Intel GFX = 0x01268086
5:794  0:000    Found snb-platform-id = 0x00010000
5:794  0:000  Intel GFX revision  = 0x9
5:794  0:000   setting specified layout-id=12 (0xC)
5:794  0:000  stringlength = 2842
5:794  0:000  CurrentMode: Width=960 Height=600

 

high-res bios - DualLink not set 

4:991  0:000  Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)
4:991  0:000    Found HD Plus Display - 16:9 :: Width=1600 Height=900
4:991  0:000    IntelHDMI: used
4:991  0:000    AAPL00,override-no-connect: added
4:991  0:000    High Resolution Display
4:991  0:000    AAPL00,DualLink: set to 1

4:991  0:000    FakeID Intel GFX: not set
4:991  0:000    snb-platform-id: not set
4:991  0:000    Beginning Intel GFX auto-detection with ACPI injection
4:991  0:000    Found FakeID Intel GFX = 0x01268086
4:991  0:000    Found snb-platform-id = 0x00010000
4:991  0:000  Intel GFX revision  = 0x9
4:991  0:000   setting specified layout-id=12 (0xC)
4:992  0:000  stringlength = 2842
4:992  0:000  CurrentMode: Width=1600 Height=900


your new code (last post) on low-res bios:

 

5:772  0:000  EdidDiscovered size=0
5:772  0:000  Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)
5:772  0:000    Found Unknown Resolution Display - ?:? :: Width=960 Height=600
5:772  0:000    IntelHDMI: used
5:772  0:000    AAPL00,override-no-connect: added
5:772  0:000    AAPL00,DualLink = 1
5:772  0:000    FakeID Intel GFX: not set
5:772  0:000    snb-platform-id: not set
5:772  0:000    Beginning Intel GFX auto-detection with ACPI injection
5:772  0:000    Found FakeID Intel GFX = 0x01268086
5:772  0:000    Found snb-platform-id = 0x00010000
5:772  0:000  Intel GFX revision  = 0x9
5:772  0:000   setting specified layout-id=12 (0xC)
5:772  0:000  stringlength = 2842
5:773  0:000  CurrentMode: Width=960 Height=600

  • Like 1
Link to comment
Share on other sites

exactly

in my case, on T420#1 where BIOS resolution != LCD, I need to add DualLink=1

otherwise it automatically figures out I need DualLink =1 (works on T420#2 and T460)

 

with my code (gma.c), and DualLink=0 (platformdata.c)

 

low-res bios: Set DualLink=1 in Clover Graphics

5:793 0:000 Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)

5:793 0:000 IntelHDMI: used

5:793 0:000 AAPL00,override-no-connect: added

5:793 0:000 AAPL00,DualLink = 1

5:793 0:000 FakeID Intel GFX: not set

5:793 0:000 snb-platform-id: not set

5:794 0:000 Beginning Intel GFX auto-detection with ACPI injection

5:794 0:000 Found FakeID Intel GFX = 0x01268086

5:794 0:000 Found snb-platform-id = 0x00010000

5:794 0:000 Intel GFX revision = 0x9

5:794 0:000 setting specified layout-id=12 (0xC)

5:794 0:000 stringlength = 2842

5:794 0:000 CurrentMode: Width=960 Height=600

high-res bios - DualLink not set

4:991 0:000 Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)

4:991 0:000 Found HD Plus Display - 16:9 :: Width=1600 Height=900

4:991 0:000 IntelHDMI: used

4:991 0:000 AAPL00,override-no-connect: added

4:991 0:000 High Resolution Display

4:991 0:000 AAPL00,DualLink: set to 1

4:991 0:000 FakeID Intel GFX: not set

4:991 0:000 snb-platform-id: not set

4:991 0:000 Beginning Intel GFX auto-detection with ACPI injection

4:991 0:000 Found FakeID Intel GFX = 0x01268086

4:991 0:000 Found snb-platform-id = 0x00010000

4:991 0:000 Intel GFX revision = 0x9

4:991 0:000 setting specified layout-id=12 (0xC)

4:992 0:000 stringlength = 2842

4:992 0:000 CurrentMode: Width=1600 Height=900

your new code (last post) on low-res bios:

 

5:772 0:000 EdidDiscovered size=0

5:772 0:000 Intel HD Graphics 3000 [8086:0126] :: PciRoot(0x0)\Pci(0x2,0x0)

5:772 0:000 Found Unknown Resolution Display - ?:? :: Width=960 Height=600

5:772 0:000 IntelHDMI: used

5:772 0:000 AAPL00,override-no-connect: added

5:772 0:000 AAPL00,DualLink = 1

5:772 0:000 FakeID Intel GFX: not set

5:772 0:000 snb-platform-id: not set

5:772 0:000 Beginning Intel GFX auto-detection with ACPI injection

5:772 0:000 Found FakeID Intel GFX = 0x01268086

5:772 0:000 Found snb-platform-id = 0x00010000

5:772 0:000 Intel GFX revision = 0x9

5:772 0:000 setting specified layout-id=12 (0xC)

5:772 0:000 stringlength = 2842

5:773 0:000 CurrentMode: Width=960 Height=600

okay thank you. resolved your case.

Now you dont need duallink in config.plist

On your non-modbios lenovo

 

@Slice

fixes duallink rare case

considered desktop and device-id properly according to fakepciid

 

thanks in advance

gma.c-Update.zip

  • Like 2
Link to comment
Share on other sites

sherlocks, dude, I just added you to the developer group on sf.net. You can commit these changes yourself now, these look fine, but your commits will be under review - so, please don't destroy stuff. LOL. I am not sure if you'll need to re-checkout the source R/W or not, but I think so.

  • Like 2
Link to comment
Share on other sites

okay thank you. resolved your case.

Now you dont need duallink in config.plist

On your non-modbios lenovo

 

yup. was able remove all custom Gfx properties, DualLink and ig-platform from all my config.plist 

 

good on all these boxes:

 

T420 - HD 3000 (1600x900 with high and low res BIOS)

H61N-USB - HD 3000 (Full HD)

Dell - HD 4600 (Full HD)

T460 - HD 520 (Full HD)

  • Like 3
Link to comment
Share on other sites

sherlocks, dude, I just added you to the developer group on sf.net. You can commit these changes yourself now, these look fine, but your commits will be under review - so, please don't destroy stuff. LOL. I am not sure if you'll need to re-checkout the source R/W or not, but I think so.

Thank you. I will check more more more source.

And will commit. Dont worry. I dont want to touch other source.

 

Thanks in advance

 

나의 LG-F410S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

@Slice: this is not bug report or patch, more like an improvement. Tested a new code in Build_Clover.command that determines the NASM version, using string-based pattern matching and since that code is the same as the one that does the same in ebuild.sh, made some modifications in it too. The result is code, reduced to only 9 lines, that does the same thing, and all IFS-related stuff, removed from the script.

ebuild.sh_noIFS.zip

  • Like 2
Link to comment
Share on other sites

@Slice: another proposition, courtesy of @Micky1979

 

1. Clover/CloverPackage/Makefile - three new targets are added for generation of package with removed options:

 

make slimpkg1 - generates install package with removed the Themes subgroup

make slimpkg2 - generates install package with removed the Themes subgroup, Clover Updater and Clover Prefpane

make slimpkg3 - generates install package with removed the Themes subgroup, Clover Updater, Clover Prefpane, the RC scripts and Clover EFI (UEFI boot minimum package only)

 

the make pkg target works as usual

 

2. The following files are updated to reflect those changes:

 

Clover/CloverPackage/makepkg

Clover/CloverPackage/package/buildpkg.sh

Clover_noextras.zip

  • Like 4
Link to comment
Share on other sites

Ummmm.... so does clover.... The reason why there is an EDK2 revision is because that revision is known to be stable and there are also some patches to prevent things in the legacy firmware from asserting.

  • Like 1
Link to comment
Share on other sites

If these patches really make any sense, how about 1) submitting them 2) at least use patches and not full files?

 

Um, you don't think we do? I have submitted several fixes and they usually in turn just completely destroy features instead. Full files because then you would absolutely need to use a specific revision then to apply a patch.... Also only applies to legacy firmware, you don't need otherwise, I never use the patches.

 

Ha Ha

Why is there a modified tools_def.txt then????

Why still using gcc4.9-ld-script????

Not stock standard, so no it don't...

 

And it goes on, if you want to use standard EDK2, where is the Conf Folder :wub:

 

I don't use any of that stuff. So I think you are making assumptions about things that were created to make it easier for building, doesn't mean that you must use that stuff.

Link to comment
Share on other sites

Um, you don't think we do?

Considering how long some of these fixes(files) are around, actually I didn't think so.

 

Full files because then you would absolutely need to use a specific revision then to apply a patch....

Yes, that was my point. I don't think it's smart to copy a patch file when it is obviously outdated.

 

So I think you are making assumptions about things that were created to make it easier for building, doesn't mean that you must use that stuff.

It is not clear at all what file is needed for what purpose. As I suggested you for v3, Clover should integrate with EDK2, not EDK2 be bowed to work with Clover. ;) I can build every EDK2 package ever via its tools, except for Clover v2 (aside from the patches, the code is not clean...) and Clover v3, which needs its own set of build scripts...

Link to comment
Share on other sites

Considering how long some of these fixes(files) are around, actually I didn't think so.

 

Yes, that was my point. I don't think it's smart to copy a patch file when it is obviously outdated.

 

Sometimes stuff in EDK does not get fixed, like ever. And just because it's a full file doesn't mean it's outdated, there are plenty of syncing with EDK commits. The difference is that even if you had kept up with every EDK revision and fixed that newest source, a patch would break older revisions. So either way with patches you would be looking at a situation where the patch would fail....

 

 

It is not clear at all what file is needed for what purpose. As I suggested you for v3, Clover should integrate with EDK2, not EDK2 be bowed to work with Clover. ;) I can build every EDK2 package ever via its tools, except for Clover v2 (aside from the patches, the code is not clean...) and Clover v3, which needs its own set of build scripts...

 

Ok...... ? That's like saying EDK should integrate into the build systems of the tools it uses to build instead of creating it's own....

Link to comment
Share on other sites

Ok...... ? That's like saying EDK should integrate into the build systems of the tools it uses to build instead of creating it's own....

EDK is a Development Kit (more a Development Environment) with a standardized way to build and not some dependency you embed.

Link to comment
Share on other sites

Any movements in clover v3?

I am not theorist, I am practitioner and I made Clover v2 to be compilable and working regardless of EDK2 bugs. EDK2 was developed same time with Clover.

Link to comment
Share on other sites

@DF,

 

But you could completely disregard it's build system and not use it.... So I think you are getting too caught up on whether you say build or another_build in the terminal.... What's the difference? You can still use build it just doesn't build all the extra stuff, or correctly generate some files needed....

 

@Slice,

 

Yeah, I have a bunch more not pushed into the repo, I have just been busy and not coded in a minute.

Link to comment
Share on other sites

×
×
  • Create New...