Contribute
Register

Lenovo ThinkPad EDGE E420 i3-2330. Black Screen

Status
Not open for further replies.

I meant what I said. If you were using MaciASL properly (per README), you would understand.

I will try to apply it with MaciASL (From my current OS X install). Then I will compile my DSDT, and put it in the /Extra folder of the Unibeast drive.

You must customize the patch for your scenario. No dual-link, no Ivy, and most importantly, with the EDID from your own display (use MonInfo in Windows to extract).
 
I meant what I said. If you were using MaciASL properly (per README), you would understand.



You must customize the patch for your scenario. No dual-link, no Ivy, and most importantly, with the EDID from your own display (use MonInfo in Windows to extract).

Ok, so here is the video of the BIOS:
https://www.mediafire.com/?ewa0f4iy8e78gm0
And the Verbose boot:
http://www.mediafire.com/watch/ptm4270i93fj6v3/Verbose.MOV

I will attempt the DSDT patching, and will get back to you. MonInfo reported this on the laptop display:

moninfo.png

I must say so far, I always attempted to avoid modifying the DSDT, since I'm not comfortable with it yet - of course, using generic kext (VoodooHDA, which work but give random KP) is not the way to go, and I'll have to get used to DSDT patching eventually.

Will do ressearch on tips to perform this, and will reply if I have too much trouble.

Thanks
 
Make sure you give it adequate time to reach the installer. It is not quick. It can take a minute or more from the time you see the black screen.

Ok, I'll wait a little longer.

I filled the patch with my raw data of MonInfo. Everything fit without problem.

Code:
#Maintained by: RehabMan for: Laptop Patches
#graphics_EDID.txt

#
# Use this patch generic patch with EDID capability
# if your display seems to exhibit EDID problems.
#

#   Inject HDMI info and dual-link 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
        //IMPORTANT: edit for actual snb-platform-id\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n

        //IMPORTANT: edit for actual ig-platform-id\n
        "AAPL,ig-platform-id", Buffer() { 0x04, 0x00, 0x66, 0x01 },\n

        //IMPORTANT: remove this line if not dual-link\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n

        //for HDMI-audio\n
        "hda-gfx", Buffer() { "onboard-1" },\n

        //EDID section: Fill in with your actual 128 bytes of EDID data\n
        //Note: Clover uses override-no-connect, but I've also seen\n
        //  override-no-edid.  Not sure what the difference is.\n
        //"AAPL00,override-no-connect", Buffer (0x80)\n
        "AAPL00,override-no-edid", Buffer (0x80)\n
        {\n
            0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x4c, 0xa3, 0x4c, 0x30,\n
            0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x03, 0x80, 0x1d, 0x11, 0x78,\n
            0xea, 0x87, 0xf5, 0x94, 0x57, 0x4f, 0x8c, 0x27, 0x27, 0x50, 0x54, 0x00,\n
            0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n
            0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x12, 0x1b, 0x56, 0x60, 0x50, 0x00,\n
            0x16, 0x30, 0x30, 0x20, 0x25, 0x00, 0x35, 0xae, 0x10, 0x00, 0x00, 0x19,\n
            0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n
            0x00, 0x25, 0xd9, 0x06, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x53,\n
            0x41, 0x4d, 0x53, 0x55, 0x4e, 0x47, 0x0a, 0x20, 0x4c, 0xa3, 0x41, 0x54,\n
            0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c, 0x54, 0x4e, 0x31, 0x34, 0x30, 0x41,\n
            0x54, 0x32, 0x30, 0x34, 0x30, 0x31, 0x00, 0xdf\n
        },\n
  })\n
}\n
end;

Just did this yet, but I guess I'll have to remove this like you said (no-duallink). Pretty obvious:

Code:
        //IMPORTANT: remove this line if not dual-link\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n


Will also look in my extracted DSDT for snb-platform-id and ig-platform-id.

Thanks, your explanations are really helpful.
 
Ok, I'll wait a little longer.

I filled the patch with my raw data of MonInfo. Everything fit without problem.

Code:
#Maintained by: RehabMan for: Laptop Patches
#graphics_EDID.txt

#
# Use this patch generic patch with EDID capability
# if your display seems to exhibit EDID problems.
#

#   Inject HDMI info and dual-link 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
        //IMPORTANT: edit for actual snb-platform-id\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n

        //IMPORTANT: edit for actual ig-platform-id\n
        "AAPL,ig-platform-id", Buffer() { 0x04, 0x00, 0x66, 0x01 },\n

        //IMPORTANT: remove this line if not dual-link\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n

        //for HDMI-audio\n
        "hda-gfx", Buffer() { "onboard-1" },\n

        //EDID section: Fill in with your actual 128 bytes of EDID data\n
        //Note: Clover uses override-no-connect, but I've also seen\n
        //  override-no-edid.  Not sure what the difference is.\n
        //"AAPL00,override-no-connect", Buffer (0x80)\n
        "AAPL00,override-no-edid", Buffer (0x80)\n
        {\n
            0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x4c, 0xa3, 0x4c, 0x30,\n
            0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x03, 0x80, 0x1d, 0x11, 0x78,\n
            0xea, 0x87, 0xf5, 0x94, 0x57, 0x4f, 0x8c, 0x27, 0x27, 0x50, 0x54, 0x00,\n
            0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n
            0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x12, 0x1b, 0x56, 0x60, 0x50, 0x00,\n
            0x16, 0x30, 0x30, 0x20, 0x25, 0x00, 0x35, 0xae, 0x10, 0x00, 0x00, 0x19,\n
            0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n
            0x00, 0x25, 0xd9, 0x06, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x53,\n
            0x41, 0x4d, 0x53, 0x55, 0x4e, 0x47, 0x0a, 0x20, 0x4c, 0xa3, 0x41, 0x54,\n
            0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c, 0x54, 0x4e, 0x31, 0x34, 0x30, 0x41,\n
            0x54, 0x32, 0x30, 0x34, 0x30, 0x31, 0x00, 0xdf\n
        },\n
  })\n
}\n
end;

Just did this yet, but I guess I'll have to remove this like you said (no-duallink). Pretty obvious:

Code:
        //IMPORTANT: remove this line if not dual-link\n
        "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n


Will also look in my extracted DSDT for snb-platform-id and ig-platform-id.

Thanks, your explanations are really helpful.

ig-platform-id is specific to HD4000. Your system is HD3000, so remove it.

The snb-platform-id provided is correct for mobile HD3000.
 
ig-platform-id is specific to HD4000. Your system is HD3000, so remove it.

The snb-platform-id provided is correct for mobile HD3000.

Here's what I attempted;
The patch look like this now:

Code:
#Maintained by: RehabMan for: Laptop Patches
#graphics_EDID.txt

#
# Use this patch generic patch with EDID capability
# if your display seems to exhibit EDID problems.
#

#   Inject HDMI info and dual-link 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
        //IMPORTANT: edit for actual snb-platform-id\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n

        //for HDMI-audio\n
        "hda-gfx", Buffer() { "onboard-1" },\n

        //EDID section: Fill in with your actual 128 bytes of EDID data\n
        //Note: Clover uses override-no-connect, but I've also seen\n
        //  override-no-edid.  Not sure what the difference is.\n
        //"AAPL00,override-no-connect", Buffer (0x80)\n
        "AAPL00,override-no-edid", Buffer (0x80)\n
        {\n
            0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x4c, 0xa3, 0x4c, 0x30,\n
            0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x03, 0x80, 0x1d, 0x11, 0x78,\n
            0xea, 0x87, 0xf5, 0x94, 0x57, 0x4f, 0x8c, 0x27, 0x27, 0x50, 0x54, 0x00,\n
            0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n
            0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x12, 0x1b, 0x56, 0x60, 0x50, 0x00,\n
            0x16, 0x30, 0x30, 0x20, 0x25, 0x00, 0x35, 0xae, 0x10, 0x00, 0x00, 0x19,\n
            0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n
            0x00, 0x25, 0xd9, 0x06, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x53,\n
            0x41, 0x4d, 0x53, 0x55, 0x4e, 0x47, 0x0a, 0x20, 0x4c, 0xa3, 0x41, 0x54,\n
            0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c, 0x54, 0x4e, 0x31, 0x34, 0x30, 0x41,\n
            0x54, 0x32, 0x30, 0x34, 0x30, 0x31, 0x00, 0xdf\n
        },\n
  })\n
}\n
end;


Extracted my DSDT on OS X, compiled it, there were no errors. Used the Patch button in MaciASL, and applied the patch with no error.
I then copied the compiled DSDT.aml to /Extra on the Unibeast drive, and learned Unibeast does not support DSDT.

So I just copied DSDT.aml in /Extra, in the installed OS X drive, and reinstalled the previous Intel kext that would cause the black screen (AppleIntelHD3000GraphicsGA.plugin, AppleIntelHD3000Graphics.kext and AppleIntelSNBGraphicsFB.kext.)
Tried to boot into OS X, I had the same black screen after more than 5 minutes. Sound is still working.

I also wonder, how would I get to the installer, if Unibeast doesn't support DSDT ? I would have to remove Intel kext, but then the drive wouldn't be Vanilla anymore?
We would want to install a Vanilla OS X, to test the patched DSDT again.
 
Here's what I attempted;
The patch look like this now:

Code:
#Maintained by: RehabMan for: Laptop Patches
#graphics_EDID.txt

#
# Use this patch generic patch with EDID capability
# if your display seems to exhibit EDID problems.
#

#   Inject HDMI info and dual-link 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
        //IMPORTANT: edit for actual snb-platform-id\n
        "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 },\n

        //for HDMI-audio\n
        "hda-gfx", Buffer() { "onboard-1" },\n

        //EDID section: Fill in with your actual 128 bytes of EDID data\n
        //Note: Clover uses override-no-connect, but I've also seen\n
        //  override-no-edid.  Not sure what the difference is.\n
        //"AAPL00,override-no-connect", Buffer (0x80)\n
        "AAPL00,override-no-edid", Buffer (0x80)\n
        {\n
            0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x4c, 0xa3, 0x4c, 0x30,\n
            0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x03, 0x80, 0x1d, 0x11, 0x78,\n
            0xea, 0x87, 0xf5, 0x94, 0x57, 0x4f, 0x8c, 0x27, 0x27, 0x50, 0x54, 0x00,\n
            0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\n
            0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x12, 0x1b, 0x56, 0x60, 0x50, 0x00,\n
            0x16, 0x30, 0x30, 0x20, 0x25, 0x00, 0x35, 0xae, 0x10, 0x00, 0x00, 0x19,\n
            0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n
            0x00, 0x25, 0xd9, 0x06, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x53,\n
            0x41, 0x4d, 0x53, 0x55, 0x4e, 0x47, 0x0a, 0x20, 0x4c, 0xa3, 0x41, 0x54,\n
            0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c, 0x54, 0x4e, 0x31, 0x34, 0x30, 0x41,\n
            0x54, 0x32, 0x30, 0x34, 0x30, 0x31, 0x00, 0xdf\n
        },\n
  })\n
}\n
end;


Extracted my DSDT on OS X, compiled it, there were no errors. Used the Patch button in MaciASL, and applied the patch with no error.
I then copied the compiled DSDT.aml to /Extra on the Unibeast drive, and learned Unibeast does not support DSDT.

The Unibeast USB supports DSDT just fine. What gives you the idea that it doesn't?

So I just copied DSDT.aml in /Extra, in the installed OS X drive, and reinstalled the previous Intel kext that would cause the black screen (AppleIntelHD3000GraphicsGA.plugin, AppleIntelHD3000Graphics.kext and AppleIntelSNBGraphicsFB.kext.)
Tried to boot into OS X, I had the same black screen after more than 5 minutes. Sound is still working.

Use an external monitor and post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html
 
The Unibeast USB supports DSDT just fine. What gives you the idea that it doesn't?



Use an external monitor and post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html

For Unibeast, I also originally believe DSDT were supported - this thread got me confused:
http://www.tonymacx86.com/dsdt/104035-where-put-dsdt-unibeast-ml-please-help.html

Regarding IOreg: I will reinstall Xcode, I deleted it because I was lacking space; I don't have access to a HDMI monitor, just a VGA, which neither of them will help bypass the black screen (With vanilla kexts)
What I *could* attempt, would be, during the black screen, to autolaunch IOReg and save the file blindly with Cmd-Shift-S. Or use an Automator script.

Will try this.
 
The Unibeast USB supports DSDT just fine. What gives you the idea that it doesn't?



Use an external monitor and post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html

Huh, again.

Thank you for posting! Your post contains one or more words that requires moderator approval. Once approved it will become visible. If it violates forum rules it will be removed by a moderator. You will now be taken back to the forum. If you opted to post a poll, you will now be allowed to do so.

Well, I will get IORed and post it back.
 
Huh, again.

Avoid links to rampagedev and macbreaker.

Unibeast creates a USB installer, complete with OS X installer, bootloader, and an /Extra folder, etc.

Unibeast itself does not deal with DSDT... That is, it won't copy it for you. But there's nothing stopping you from placing a DSDT in /Extra on the USB after it is done. Unibeast is not involved. It is a simple file copy.
 
Status
Not open for further replies.
Back
Top