Latest 10.6.2 update has 64 bits X3100 kext.
I've installed Snow on an inspiron 1420 using a preboot cd and a 10A432 retail DVD.
After reboot, only half screen showed up on my internal LCD. (The left one). After hours of searching, I was about to give up when I came across a post from flames in some well known forum (I don't remember posting politics in this forum, so I won't mention any other forum). He modified DSDT to make it work in a Toshiba L3xx series with device id 0x2A02 and revision id 0x0003. I've got device 0x2A02 revision 0x000C.
After 10.6 install, update to 10.6.2 following netkas instructions.
Then you'll need to patch DSDT with this:
CODE
Device (VID)
{
Name (_ADR, 0x00020000)
/* patching starts here */
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x30)
{
"device_type",
Buffer (0x08)
{
"display"
},
"model",
Buffer (0x0D)
{
"X3100"
},
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,SelfRefreshSupported",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL00,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},
"AAPL01,BacklightIntensity",
Unicode ("d"),
"AAPL01,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},
"AAPL01,DataJustify",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,Depth",
Unicode (" "),
"AAPL01,Dither",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,DualLink",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,Height",
Buffer (0x04)
{
0x20, 0x03, 0x00, 0x00
},
"AAPL01,Interlace",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Inverter",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,InverterCurrent",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,InverterFrequency",
Buffer (0x04)
{
0x08, 0x52, 0x00, 0x00
},
"AAPL01,LinkFormat",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,LinkType",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Pipe",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,PixelFormat",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Refresh",
Unicode (";"),
"AAPL01,Stretched",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
/* patching end here */
{
Name (_ADR, 0x00020000)
/* patching starts here */
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x30)
{
"device_type",
Buffer (0x08)
{
"display"
},
"model",
Buffer (0x0D)
{
"X3100"
},
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,SelfRefreshSupported",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL00,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},
"AAPL01,BacklightIntensity",
Unicode ("d"),
"AAPL01,blackscreen-preferences",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x08
},
"AAPL01,DataJustify",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,Depth",
Unicode (" "),
"AAPL01,Dither",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,DualLink",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,Height",
Buffer (0x04)
{
0x20, 0x03, 0x00, 0x00
},
"AAPL01,Interlace",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Inverter",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,InverterCurrent",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,InverterFrequency",
Buffer (0x04)
{
0x08, 0x52, 0x00, 0x00
},
"AAPL01,LinkFormat",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,LinkType",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Pipe",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL01,PixelFormat",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL01,Refresh",
Unicode (";"),
"AAPL01,Stretched",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
/* patching end here */
Maybe you'll have another video device (GFX, OVGA), just put it in the right place.
Then try and compile dsdt. If it says there's an error regarding DTGP, then it's because that method is not defined.
This is the DTGP method definition. Just insert it in the DSDT block definition. For example, just under _WAK method (i did that).
CODE
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Then compile and place the dsdt.aml file in the right place. Reboot, and you'll have a working GMA X3100.
Credits go to flames and everyone who I've read and don't remember there user names.
------------
Please don't post "help me" or "thanks" posts. If you need help, please read the whole topic. If this topic helps you, post your device i, revision, Snow version, and notebook model (if someone else hasn't). It will help us to track which devices works, and wich doesnt.
---
Here's my DSDT. I strongly recommend not using it.
dsdt.dsl.zip ( 17.2K )
Number of downloads: 301This post has been edited by slashack: Nov 17 2009, 06:00 PM





Nov 11 2009, 01:12 AM


