Make sure you're booting with GraphicsEnabler=No and kernel flag arch=i386.
Preliminary findings indicate that what you're seeing is the X3100 being in "broken mirror" mode
Try connecting an external display + USB mouse and keyboard and close the lid. With a little luck this should make the external display primary, allowing you to work from there.
I get similar behavior when hotplugging an external display on the VGA port and clicking 'detect displays'. On both displays (stuck in mirrored mode). If I boot with the external display already connected it works, but I have no rotation support on the external display which is a bummer since it's rotated.
I'm currently working on fixing those issues (display corruption and rotation) and get brightness control working as well.
*Brain dump* current status/issues
dmesg says "IG: Invalid firmware max backlight setting"
I compiled a 32-bit version of Rehabman's ACPIBacklight driver and got brightness slider + hotkeys (still need remapping) responding, the sun decal appears but brightness doesn't change. I found the backlight code in the first SSDT table but I guess it needs something done to it for ACPIBacklight.kext to work with it. If I don't load the backlight SSDT table the brightness level changes but it's busted (full brightness -> wobbly-dark -> pitch black).
I saw a DSDT patch for an HP laptop that had the Backlight methods moved into the PNLF device but I can't figure out how to do that with the code I have. But I don't think that's relevant...? The SSDT table with backlight code seems to be picked up just fine, it's just that the values are wrong, or interpreted wrong.. I think.
Oh yeah this is a Thinkpad T61 7658 CTO.
X3100 kexts etc are unmodified and there's no X3100/display related injection anywhere besides PNLF device + renaming VID to GFX0. It's running 10.7.5
Every time i try to tamper with GFX0 and reboot I just get a black screen! At least it doesn't freeze, I can use the power button to reboot blind.
I see a permanent, rogue "display@2,1" outside of the GFX0 device in IOREG that I don't know how to get rid of. The internal LCD and external display, when connected, show up inside GFX0 device as you'd expect. dmesg has a line that says "Display not usable".
The T61 DSDT has duplicated code for the main 0x00020000 VID device (which is now GFX0 - I left the duplicate named VID) as well as LCD, CRT and DVI inside another device called AGP. It looks like this code is supposed to "take over" when the T61 is docked...?
The backlight SSDT table also refers to the duplicate devices inside "AGP". Next trial will be stripping or commenting out all of that and see what happens because I suspect that these duplicate displays are causing at least some of the issues I'm seeing.
I'd like to get it to work with the "duplicates" intact though because the T61 mini dock currently goes for a whopping 20 dollars on Amazon and I'd like to get one just to play around with it
The FakeSMC GPU sensors plugin does not attach to the X3100.
HWMonitor.app window graphics are corrupted, but only the blue part!
HWMonitor.app shows CPU to be running at 796MHz + multiplier x4.0 but that can't be true.
Another strange issue is that FileNVRAM.dylib (tried current 1.14 and 1.13) will sometimes generate a new nvram.plist after reboot - but with a different name - but it's not because the T61's UUID is changing, the UUID stays the same! I don't know what's wrong, but the nvram.plist does not have a .plist file extension..it has no extension...it's like the filename is too long or something, current one is named nvram.f0c3e200-f053-ff00-f053DriversPackage-1fe40 with no extension - yes it has "DriversPackage" in the name. Weird right, I've never seen that before.
... whatever... more to come.. including files, how I got Rehabman's latest ACPIBattery driver working, Chameleon cpu.c patch to correct FSB calculation, additional keys addded to FakeSMC and so on etc etc. If anyone else is interested in this old piece of sh** lol
/end brain dump