Jump to content

Asus X55C internal screen only works if HDMI screen plugged in


chriz74
 Share

25 posts in this topic

Recommended Posts

Asus laptop X55C with HM76 chipset and HD3000 IGPU, native powermanagent due to unlocked bios. Internal screen works only if HDMI screen is plugged in.
If not then it won't turn on at all, in IOREG I can see if I unplug HDMI also the Internal is unplugged and viceversa.
I am attaching EFI with ACPI origin and patched + ioreg dump.

I also tried to boot from a Sierra installer instead of High Sierra, nothing changes.

It seems the PC thinks the LVDS is unplugged.

 

EFI here https://www.dropbox.com/s/qj20ozndi9towos/EFI.zip?dl=0

 

ioereg at bottom of the post.

 

33651352_ScreenShot2021-01-03at14_42_28.png.49734237d6d140d489e8da2a14a91712.png1035078838_ScreenShot2021-01-03at14_42_58.png.df248066385de9f6ccb4ad9c143b9aed.png

MacBook Pro (1).ioreg

Edited by chriz74
Link to comment
Share on other sites

I will try later when I have access to the PC. Anyway the DSDT DSM method in GFX0 and in devices / properties in plist is redundant. There is no need to set inject intel true , we don’t need to inject it. Please check whatevergreen Intel faq. All inject a must be set to NO.
Device is injected through properties. 

The HD3000 is already working with hardware acceleration. It’s not a problem of GPU configuration.  

Edited by chriz74
Link to comment
Share on other sites

Yes I just tried. Nothing changes apart Function keys don't work anymore. With the kext F5 F6 and F7 work normally. It doesn't seem to be a backlight problem. As you can see in the pictures the internal display is totally removed from IOREG when I unplug the HDMI one. It gets disconnected. It's almost like LVDS and HDMI are triggered by the HDMI event. I also tried ACPIDebug kext with a patched DSDT with all the methods. Unplugging the DMI screen doesn't log any ACPI event.

Link to comment
Share on other sites

here you go. I took 3, first one with no screens, 2nd one after plugging in the external and 3rd after unplugging external.

As you can see the internal is not connected at all. After I unplugged the external the desktop remained extended in remote.

 

Archive.zip

 

screen in remote session after unplugging external:

 

Screenshot 2021-01-05 at 17.56.46.png

 

BIOS: 

Primary Display: IGFX

Internal Graphics: Enabled

GTT Size: 2MB

Aperture Size: 512MB

DVMT Pre-Allocated 64M (32M doesn't make any difference)

DVMT Total Gfx Mem MAX

Gfx Low Power Mode Disabled

Graphics Performance Analyzers Disabled

 

Enable PEG Disabled

 

Edited by chriz74
Link to comment
Share on other sites

Your EFI is completely wrong you use clover r5127 without Quirks, why not use a old clover revision

Why ask for help if you think you have the truth I can send you 10 HD 3000 laptop config with the same patch and their screen is functional and the HDMI works in addition

Link to comment
Share on other sites

No you injected device 166003 which is HD4000. The correct patch would be

into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
    })\n
}\n
end;

By the way using those quirks produced complete hang at boot.

Link to comment
Share on other sites

I inject this patch

#Maintained by: RehabMan 
#graphics_HD3K_low.txt

 

#Maintained by: RehabMan for: Laptop Patches
#graphics_HD3K_low.txt
#
# Use this patch if your laptop has the standard 1366x768 screen
#
# Use dual-link if you have 1600x900 or have upgraded
# to 1080p screen.
#
#   Inject HDMI info into GFX0/IGPU
into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
    })\n
}\n
end;

 

Edited by chris1111
Link to comment
Share on other sites

nope you injected this, check the DSDT you attached.

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                             0x03                                           
                        })
                    }

                    Return (Package (0x06)
                    {
                        "AAPL,snb-platform-id", 
                        Buffer (0x04)
                        {
                             0x00, 0x00, 0x01, 0x00                         
                        }, 

                        "AAPL,ig-platform-id", 
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x66, 0x01                         
                        }, 

                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }

 

Link to comment
Share on other sites

If so This is weird !! I deleted weird garbage file

you know what I wanted to do now

 

Spoiler



#Maintained by: RehabMan for: Laptop Patches
#graphics_HD3K_low.txt
#
# Use this patch if your laptop has the standard 1366x768 screen
#
# Use dual-link if you have 1600x900 or have upgraded
# to 1080p screen.
#
#   Inject HDMI info into GFX0/IGPU
into method label _DSM parent_adr 0x00020000 remove_entry;
into device name_adr 0x00020000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n
        "hda-gfx", Buffer() { "onboard-1" },\n
    })\n
}\n
end;

 

 

Edited by chris1111
I deleted Garbage file
Link to comment
Share on other sites

Thanks I will try tomorrow. Meanwhile in a general guide for hackintool I found you can specify the pipe for connectors like this:

<key>framebuffer-con0-pipe</key> <data> EgAAAA== </data>

 

So maybe it’s just a matter of setting the correct pipe for each connector.

Link to comment
Share on other sites

Swapping connectors sort of worked. The internal screen is now on FB 2 still on DisplayPipe 0 and works without HDMI screen plugged in. However HDMI doesn't work anymore, meaning if I plug it in the PC doesn't do anything, it doesn't show up in ioreg.

 

Hardware acceleration also works with MacBookPro 9,2 SMBIOS but problem is the same.

Link to comment
Share on other sites

Now I guess what would happen redirecting VGA to CON0, not that I need VGA but just to see what happens.

 

You know, I think maybe 9,2 is a better choice as that was based on 7 series chipset as this Laptop, and 7 series chipset is backward compatible with Sandy Bridge CPUs.

Link to comment
Share on other sites

@Hervé I set con0 to 06020000 00010000 09000000 and also VGA works. By the way I tried to find out the port using intel registry dumper on linux but I don't see where the info should be. So I just put 9 to try and it worked.

 

 

Edited by chriz74
Link to comment
Share on other sites

 Share

×
×
  • Create New...