Jump to content

My new boot logo


Gringo Vermelho
 Share

22 posts in this topic

Recommended Posts

it's a work by surrealist René Magrittte, 1964 - http://en.wikipedia.org/wiki/Ren%C3%A9_Magritte

 

it's the hackintosh version of his more famous work "ceci n'est pas une pipe" :yes:


Ceci n'est pas une Mac  (powered by GV)

 

Hahah..except the way my current project is heading its more like "powered by Rehabman"

Link to comment
Share on other sites

Yep.. I got an old Thinkpad T61 for free. Initially I put 64-bit Windows 7 on it, which runs really well. But now that I've got a spare 2.5" hard drive to play with..it's Hackintosh time.

It's a Santa Rosa platform with X3100 graphics and a 2.1 GHz T8100 CPU, just like the MacBook4,1. It has Firewire, the entire optical drive can be ejected and replaced with a hard drive, it has a nice 1280x800 display and a tiny, hotkey activated lamp that illuminates the keyboard! I've never owned a laptop. You should see this thing, it's built to go into a warzone or something. I like it a lot. It needs a new battery but otherwise it's perfect. It looks great too, especially now that I put an Apple sticker on it lol

 

I swapped (it had an unsupported Intel card) and rebranded the wifi, a Broadcom BCM4322, it works right away and shows up as Airport Extreme and everything. My first 'hardware hack'. The factory BIOS from Lenovo has a wi-fi card blacklist but there's a modified BIOS available with no blacklist and a few other improvements. It almost feels like I've joined an ancient cult or something, there are dedicated sites and forums out there for the T61, apparently they were very popular. There's a model exactly like mine except with Nvidia Quadro graphics that can run Yosemite. But I have to stick with 10.7.5 because of the X3100. There's a gross hack that makes it possible to run Mountain Lion on it but I figured I have enough challenges as it is.

 

Yes, currently using Rehabman's VoodooPS2, ACPI backlight and ACPI battery drivers as well as a couple of his DSDT patches, so a big thank you to Rehabman for everything.

 

Rehabman doesn't release anything in 32-bit lately (I don't blame him) so I have to compile everything myself, it's a real trip. ever had three drivers loading in debug mode at the same time? Initially everything compiled in debug mode, spamming the logs. Until I figured it out lol. And all the battery code in DSDT had to be converted to 8-bit calls to work with the ACPI battery driver and I was about to give up while trying to do it by hand when I discovered by accident that there's a patch for a different Thinkpad laptop in his repo that seems to work for the T61. So battery is done I think.

 

At first FSB was detected at 184Mhz but I came across an antique patch for Chameleon's cpu.c that I somehow managed to apply by hand to the latest Chameleon SVN source - thankfully cpu.c hasn't changed much over the years - and now I've got 199Mhz.. it's not 200 but every bit helps. Also I have to use VoodooTSCsync.kext.

 

Sleep works, both w. sleep/power button and lid close/open, but CPU and GPU power management still needs work and there's, uh, lets say "a couple of issues" with the X3100 graphics that I'm slowly working through:

 

LCD backlight control doesn't work (or it "works" but is erratic/useless). I'm loading the first SSDT table which contains the backlight code and ACPIBacklight.kext is clearly picking up on it but something is missing or wrong, or both.

Occasional corruption on LCD display - funky, stuck "ghost" icons (they disappear on res change) and stuck, half-zoomed out application windows (probably a GPU power management issue)

Display corruption (more like complete destruction really) on both displays when connecting an external display and clicking "detect displays"

Black screen when attempting to inject anything graphics related lol

No rotation for external display (when it decides to work at all)

The FakeSMC GPU monitor plugin for the X3100 does not attach to the X3100. duh

Phantom "display" appearing in IOREG - get this: OUTSIDE the GFX0 device.

 

It's a bit of a challenge trying to apply modern methods to an old PC like the T61 but I'm getting there. I think I'll have to ask Rehabman for help at some point but I don't want to bother him just yet :D

  • Like 1
Link to comment
Share on other sites

Wow! From poetry to noel, Gringo :D  

 

You are making good!

The wifi blacklist is a pain in the ass, to bypass it I had to swap the wifi card on the fly just after the "beep". I risked to damage it but it worked.

  • Like 1
Link to comment
Share on other sites

I have a HP laptop dv6225el at Home with x3100, the OS is 10.7.5.

Is not mine, but it is a hackintosh I made some time ago for a friend and He lent me to do some tests with Pandora.

It work really good..

 

Good logo

  • Like 2
Link to comment
Share on other sites

done

 

 

 

this is the kextstat:

Index Refs Address Size Wired Name (Version)

1 64 0x95f000 0x5d48 0x5d48 com.apple.kpi.bsd (11.4.2)
2 6 0x9c5000 0x35c 0x35c com.apple.kpi.dsep (11.4.2)
3 88 0x93c000 0x1ab7c 0x1ab7c com.apple.kpi.iokit (11.4.2)
4 92 0x932000 0x8e60 0x8e60 com.apple.kpi.libkern (11.4.2)
5 84 0x93b000 0x7f0 0x7f0 com.apple.kpi.mach (11.4.2)
6 29 0x957000 0x42e4 0x42e4 com.apple.kpi.private (11.4.2)
7 51 0x95c000 0x2920 0x2920 com.apple.kpi.unsupported (11.4.2)
8 0 0x9ca000 0x25f38 0x25f38 com.apple.kernel.6.0 (7.9.9)
9 0 0xa62000 0x25f38 0x25f38 com.apple.kernel.bsd (7.9.9)
10 0 0xa3c000 0x25f38 0x25f38 com.apple.kernel.iokit (7.9.9)
11 0 0xa16000 0x25f38 0x25f38 com.apple.kernel.libkern (7.9.9)
12 0 0x9f0000 0x25f38 0x25f38 com.apple.kernel.mach (7.9.9)
13 19 0x9b2000 0x7000 0x6000 com.apple.iokit.IOACPIFamily (1.4)
14 25 0x989000 0x1d000 0x1c000 com.apple.iokit.IOPCIFamily (2.7)
15 2 0x1bdf000 0x51000 0x50000 com.apple.driver.AppleACPIPlatform (1.3.5)
16 1 0xc9b000 0xd000 0xc000 com.apple.driver.AppleKeyStore (28.18)
17 9 0x965000 0x24000 0x23000 com.apple.iokit.IOStorageFamily (1.7.2)
18 0 0xf77000 0x17000 0x16000 com.apple.driver.DiskImages (331.7)
19 0 0x19dc000 0x2a000 0x29000 com.apple.driver.AppleIntelCPUPowerManagement (195.0.0)
20 0 0x9c6000 0x4000 0x3000 com.apple.security.TMSafetyNet (8)
21 2 0xac3000 0x4000 0x3000 com.apple.kext.AppleMatch (1.0.0d1)
22 1 0xac7000 0x11000 0x10000 com.apple.security.sandbox (177.8)
23 0 0xad8000 0x7000 0x6000 com.apple.security.quarantine (1.4)
24 0 0x1c3e000 0xa000 0x9000 com.apple.nke.applicationfirewall (3.2.30)
25 0 0x19d8000 0x4000 0x3000 com.apple.driver.AppleIntelCPUPowerManagementClient (195.0.0)
26 0 0x1bbb000 0x4000 0x3000 com.apple.driver.AppleAPIC (1.6)
27 0 0x1807000 0x5000 0x4000 com.apple.driver.AppleSMBIOS (1.9)
28 4 0xca8000 0x64000 0x63000 com.apple.iokit.IOHIDFamily (1.7.1)
29 0 0x1c38000 0x6000 0x5000 com.apple.driver.AppleACPIButtons (1.3.5)
30 2 0xe63000 0x4000 0x3000 com.apple.iokit.IOSMBusFamily (1.1)
31 0 0x1c30000 0x8000 0x7000 com.apple.driver.AppleACPIEC (1.3.5)
32 6 0xc37000 0x51000 0x50000 com.apple.iokit.IOUSBFamily (5.1.0)
33 0 0xd7f000 0x20000 0x1f000 com.apple.driver.AppleUSBEHCI (5.1.0)
34 5 0xc0a000 0x25000 0x24000 com.apple.iokit.IONetworkingFamily (2.1)
35 0 0xef9000 0x39000 0x38000 com.apple.driver.AppleRTL8169Ethernet (1.1.4a5)
36 0 0x1bda000 0x5000 0x4000 com.yourcompany.driver.AppleACPIPS2Nub (1.0.0d1)
37 0 0x11e3000 0xa000 0x9000 org.netkas.FakeSMC (4.2.0)
38 1 0x1b98000 0x4000 0x3000 com.apple.driver.AppleEFIRuntime (1.6.1)
39 0 0x1a06000 0x4000 0x3000 com.apple.driver.AppleHPET (1.7)
40 0 0xd3e000 0x14000 0x13000 com.apple.driver.AppleUSBUHCI (5.1.0)
42 2 0x10e5000 0xb000 0xa000 com.apple.iokit.IOAHCIFamily (2.0.8)
43 0 0x1bbf000 0x1b000 0x1a000 com.apple.driver.AppleAHCIPort (2.3.1)
44 0 0x182b000 0x9000 0x8000 com.apple.driver.AppleRTC (1.5)
45 1 0x1883000 0x8000 0x7000 com.apple.driver.ApplePS2Controller (1.1.5)
46 0 0x1b9c000 0x8000 0x7000 com.apple.driver.AppleEFINVRAM (1.6.1)
47 2 0xb26000 0x17000 0x16000 com.apple.iokit.IOATAFamily (2.5.1)
48 0 0x10d8000 0xd000 0xc000 com.apple.driver.AppleIntelPIIXATA (2.5.1)
49 0 0xc98000 0x3000 0x2000 com.apple.iokit.IOUSBUserClient (5.0.0)
50 1 0x1291000 0x2c000 0x2b000 com.apple.iokit.IO80211Family (310.6)
51 0 0x12bd000 0x1e9000 0x1e8000 com.apple.driver.AirPortBrcm43xx (421.91.26)
52 0 0xd67000 0x18000 0x17000 com.apple.driver.AppleUSBHub (5.1.0)
53 2 0xb69000 0x6d000 0x6c000 com.apple.iokit.IOFireWireFamily (4.4.8)
54 0 0xfbc000 0x37000 0x36000 com.apple.driver.AppleFWOHCI (4.9.0)
55 0 0x10fc000 0x1b000 0x1a000 com.apple.iokit.IOAHCIBlockStorage (2.1.0)
56 0 0x188b000 0x7000 0x6000 org.voodoo.driver.PS2Keyboard (1.1.0)
57 0 0x14a6000 0xb000 0xa000 com.apple.BootCache (33)
58 0 0x1b86000 0x8000 0x7000 com.apple.AppleFSCompression.AppleFSCompressionTypeZlib (1.0.0d1)
59 0 0x1b8e000 0x6000 0x5000 com.apple.AppleFSCompression.AppleFSCompressionTypeDataless (1.0.0d1)
60 3 0xadf000 0x2c000 0x2b000 com.apple.iokit.IOSCSIArchitectureModelFamily (3.2.1)
61 0 0x10bc000 0x7000 0x6000 com.apple.iokit.IOATAPIProtocolTransport (3.0.0)
62 0 0x16fc000 0x4000 0x3000 com.apple.driver.XsanFilter (404)
63 0 0xe77000 0x9000 0x8000 com.apple.iokit.SCSITaskUserClient (3.2.1)
64 3 0xe80000 0xc000 0xb000 com.apple.iokit.IOCDStorageFamily (1.7.1)
65 2 0xe8c000 0xa000 0x9000 com.apple.iokit.IODVDStorageFamily (1.7.1)
66 1 0xe96000 0x8000 0x7000 com.apple.iokit.IOBDStorageFamily (1.7)
67 0 0xe9e000 0x1f000 0x1e000 com.apple.iokit.IOSCSIMultimediaCommandsDevice (3.2.1)
68 0 0xd14000 0x6000 0x5000 com.apple.driver.AppleUSBComposite (5.0.0)
70 10 0xf32000 0x34000 0x33000 com.apple.iokit.IOGraphicsFamily (2.3.4)
71 5 0xf66000 0x11000 0x10000 com.apple.iokit.IONDRVSupport (2.3.4)
72 0 0x1874000 0xb000 0xa000 com.Apple.driver.PS2Trackpad (1.1.0)
74 0 0xd0c000 0x8000 0x7000 com.apple.iokit.IOUSBHIDDriver (5.0.0)
75 1 0x17fa000 0xd000 0xc000 com.apple.driver.AppleSMBusController (1.0.10d0)
76 0 0x18a8000 0x11000 0x10000 com.apple.driver.AppleMCCSControl (1.0.33)
77 1 0x1b6a000 0x5000 0x4000 com.apple.driver.AppleBacklightExpert (1.0.4)
78 0 0x1bb5000 0x6000 0x5000 com.apple.driver.AppleBacklight (170.2.2)
79 1 0x1b57000 0x3000 0x2000 com.apple.driver.AppleGraphicsControl (3.1.33)
81 3 0xebd000 0x7000 0x6000 com.apple.driver.IOPlatformPluginFamily (5.1.1d6)
82 0 0x18d6000 0x4000 0x3000 com.apple.driver.AppleLPC (1.6.0)
83 0 0x17f7000 0x3000 0x2000 com.apple.driver.AppleSMBusPCI (1.0.10d0)
84 1 0xec8000 0x11000 0x10000 com.apple.driver.IOPlatformPluginLegacy (5.0.0d8)
85 3 0xed9000 0xd000 0xc000 com.apple.driver.AppleSMC (3.1.3d10)
86 0 0xee6000 0x13000 0x12000 com.apple.driver.ACPI_SMC_PlatformPlugin (5.0.0d8)
87 0 0x1b5a000 0x10000 0xf000 com.apple.driver.ApplePolicyControl (3.1.33)
88 1 0x14c1000 0x5000 0x4000 com.apple.kext.OSvKernDSPLib (1.3)
89 3 0x14c6000 0x29000 0x28000 com.apple.iokit.IOAudioFamily (1.8.6fc18)
90 0 0x14ef000 0x6000 0x5000 com.apple.driver.AudioIPCDriver (1.2.3)
91 0 0x11ed000 0x7000 0x6000 com.apple.Dont_Steal_Mac_OS_X (7.0.0)
92 1 0xe6b000 0xc000 0xb000 com.apple.iokit.IOSerialFamily (10.0.5)
93 0 0x108e000 0xd000 0xc000 com.apple.iokit.IOBluetoothSerialManager (4.0.8f17)
94 0 0xe53000 0x10000 0xf000 com.apple.iokit.IOSurface (80.0.2)
95 0 0xc2f000 0x8000 0x7000 com.apple.iokit.IOUserEthernet (1.0.0d1)
96 0 0x9b9000 0xc000 0xb000 com.superhai.driver.VoodooBattery (1.3.3)
97 2 0x1a20000 0xa000 0x9000 com.apple.iokit.IOHDAFamily (1.6.8a3)
98 0 0x1a30000 0x13000 0x12000 com.apple.driver.AppleHDAController (1.6.8a3)
99 0 0x11de000 0x5000 0x4000 com.ivik.driver.GenericBrightness (1)
100 0 0xfaf000 0xd000 0xc000 com.apple.iokit.IOFireWireIP (2.2.5)
101 0 0x9a6000 0xc000 0xb000 VoodooSDHC (1.1d1)
102 0 0x18e4000 0x1b000 0x1a000 com.apple.driver.AppleIntelGMAX3100FB (7.0.4)
103 0 0x18ff000 0xd9000 0xd8000 com.apple.driver.AppleIntelGMAX3100 (7.0.4)
105 0 0x1743000 0x7000 0x6000 com.apple.driver.AppleUpstreamUserClient (3.5.9)
106 1 0x1a43000 0x93000 0x92000 com.apple.driver.DspFuncLib (1.6.8a3)
107 0 0x1ad6000 0x81000 0x80000 com.apple.driver.AppleHDA (1.6.8a3)
111 1 0x14b1000 0x5000 0x4000 com.apple.kext.triggers (1.0)
112 0 0x14b6000 0xb000 0xa000 com.apple.filesystems.autofs (3.0)

 

 

 

SMBios is mackbook3,1

 

GXF0 under dsdt:

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x06)
                        {
                            "AAPL, HasPanel", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 

                            "AAPL, backlight-control", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 

                            "model", 
                            Buffer (0x06)
                            {
                                "X3100"
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

This appear are the only modded kexts:

AppleBacklightExpert.kext.zip

GenericBrightness.kext.zip

(be carefull about backlight kext by rehabman using the above)

 

anyway these are all the extensions (that seem Vanilla):

kexts.zip

If I'm not mistaken a fake id (from Desktop version?) is injected by the bootloader (chameleon) about this graphics card:

X3100:

  Modello Chipset:	X3100
  Tipo:	GPU
  Bus:	Integrato
  VRAM (totale):	144 MB
  Fornitore:	Intel (0x8086)
  ID dispositivo:	0x2a02
  ID revisione:	0x000c
  Monitor:
Hp:
  Risoluzione:	1280 x 800
  Profondità pixel:	Colore 32 bit (ARGB8888)
  Monitor principale:	Sì
  Mirror:	Spento
  Online:	Sì
  Integrato:	Sì

 

Sorry but it's been a long time since I did this Hack :P, and as you already said boot in 32 bit...hope it help

  • Like 2
Link to comment
Share on other sites

Of course I can buoo. I'm a Supervisor. I can blow up the whole forum if I want to :angel_not:

 

Thanks Micky. I chose MacBook4,1 because it's practically identical to the T61 but I'll try MacBook3,1 and see what happens.

I'm trying to get as far as I can with the x3100 on unmodified 10.7.5 drivers. it should be possible.

 

If I'm not mistaken a fake id (from Desktop version?) is injected by the bootloader (chameleon) about this graphics card

 

Here, System Profiler says Device ID:0x2a02 + Revision ID:0x000c, both are the real IDs of the device as you can see below. I'm not using any injection for the x3100 at the moment besides the PNLF device. All attempts to inject anything so far through GFX0 has resulted in a black screen.

 

Anyway, look what I found. Let's compare :D

 

Thinkpad T61 OS X 10.7.5 LSPCI -vvnn:

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) [8086:2a02] (rev 0c) (prog-if 00 [VGA controller])
    Subsystem: Lenovo ThinkPad T61/R61 [17aa:20b5]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 16
    Region 0: Memory at f8100000 (64-bit, non-prefetchable)
    Region 2: Memory at <ignored> (64-bit, prefetchable)
    Region 4: I/O ports at 1800
    Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
        Address: fee00000  Data: 4090
    Capabilities: [d0] Power Management version 3
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Bridge: PM- B3+

00:02.1 Display controller [0380]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) [8086:2a03] (rev 0c)
    Subsystem: Lenovo ThinkPad T61/R61 [17aa:20b5]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Region 0: Memory at f8200000 (64-bit, non-prefetchable)
    Capabilities: [d0] Power Management version 3
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Bridge: PM- B3+

MacBook4,1 Ubuntu 8.10 LSPCI -vvnn:

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a02] (rev 03)
	Subsystem: Apple Computer Inc. Device [106b:00a1]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 2299
	Region 0: Memory at 90100000 (64-bit, non-prefetchable) [size=1M]
	Region 2: Memory at 80000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at 6110 [size=8]
	Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+
		Address: fee0300c  Data: 4199
	Capabilities: [d0] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+
	Kernel modules: intelfb

00:02.1 Display controller [0380]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a03] (rev 03)
	Subsystem: Apple Computer Inc. Device [106b:00a1]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Region 0: Memory at 90200000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [d0] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
		Bridge: PM- B3+

Hmmmm the plot thickens....thanks for making me look at this again :) I wonder if injecting the Apple subsystem ID would help anything.

  • Like 2
Link to comment
Share on other sites

Two or more years ago I chose mb3,1 because the processor and you have the one most similar to the real mb4,1. I do not think this makes big difference for video card anyway. Still think that backlight ACPI calls are the secret. GenericBrightness.kext probably is the mandatory among dsdt patch that had make it working this system, but Apple subsystem was not necessary here.

If you need some dump, do not hesitate to ask, I'll have a few more days this Lappy available.

Link to comment
Share on other sites

Thanks for the dumping offer, I can't think of anything right now though. I collected a bunch of X3100 DSDT patches from various laptops already but as I said anytime I try to inject anything I just end up with a black screen. This is the most important issue to solve I think. The T61 community is not of much help, I haven't asked them for advice yet but from what I've seen so far everybody is using patched X3100 kernel extensions or older versions from Snow Leopard and I'd like to avoid that.

 

One question though, do you see the "Invalid firmware max brightness setting" message during boot?

 

The main puzzle is the way that the X3100 is represented by two separate devices, as you can see above. The T61 DSDT also reflects that and I think that it confuses the hell out of the OS X X3100 driver. From looking at the LSPCI output we can see that the X3100 in the T61 is practically identical to the one used in the MacBook4,1. But the MacBook4,1 DSDT declares a single device only. Hmm....

 

What's more, the T61 DSDT is complicated by a ton of code that deals with the docking system that's available for it. The dock code is weaved into everything. I'm hesitant to remove that code because I'd like to get one some day. My first idea was that the duplicate X3100 code is for when the T61 is plugged into the dock but I had my doubts from the start because - why would the internal display (LCD0 device) need to be declared in the code for the dock, and why is the DVI port that only exists on the dock declared in both as well? I'm having second thoughts about this now that you made me look at the LSPCI output again.

 

In the codebox below is the T61's first SSDT table with the backlight code in it, as you can see everything that the ACPIBacklight driver wants is there, but there are two portions of code, one for each of the two X3100 devices.

So far the driver loads and attaches itself to LCD0 and I get the transparent brightness symbol when I use the brightness hotkeys, but nothing changes. If I don't load the driver, brightness changes but it's "wrong" Obviously the values are offset somewhere. I know about the patch to the native Apple backlight driver but I'd really like to get it working with ACPIBacklight. I think I'm nearly there.

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20100331
 *
 * Disassembly of iASL4bnS6i.aml, Sat Jan 17 23:40:33 2015
 *
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000025F (607)
 *     Revision         0x01
 *     Checksum         0xC9
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "TP-7U   "
 *     OEM Revision     0x00002290 (8848)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20100331 (537920305)
 */
DefinitionBlock ("iASL4bnS6i.aml", "SSDT", 1, "LENOVO", "TP-7U   ", 0x00002290)
{
    External (NBCF)
    External (\VBRG, IntObj)
    External (\VBRC, MethodObj)    // 1 Arguments
    External (\UCMS, MethodObj)    // 2 Arguments
    External (\BRLV, IntObj)
    External (\NBCF)
    External (\_SB_.PCI0.GFX0, DeviceObj)
    External (\_SB_.PCI0.GFX0.LCD0, DeviceObj)
    External (\_SB_.PCI0.LPC_.EC__.BRTT, MethodObj)    // 0 Arguments
    External (\_SB_.PCI0.LPC_.EC__.BRNS, MethodObj)    // 3 Arguments
    External (\_SB_.PCI0.LPC_.EC__.BRTO, MethodObj)    // 5 Arguments
    External (\_SB_.PCI0.AGP_.VID_.LCD0, DeviceObj)

    Scope (\)
    {
        Method (KOU2, 0, NotSerialized)
        {
            Stall (0x64)
        }
    }

    Scope (\_SB.PCI0.GFX0)
    {
    }

    Scope (\_SB.PCI0.GFX0.LCD0)
    {
        Method (_BCL, 0, NotSerialized)
        {
            Store (One, \NBCF)
            Return (Package (0x12)
            {
                0x64,
                0x64,
                0x14,
                0x19,
                0x1E,
                0x23,
                0x28,
                0x2D,
                0x32,
                0x37,
                0x3C,
                0x41,
                0x46,
                0x4B,
                0x50,
                0x55,
                0x5A,
                0x64
            })
        }

        Name (BCLP, Package (0x10)
        {
            0x14,
            0x19,
            0x1E,
            0x23,
            0x28,
            0x2D,
            0x32,
            0x37,
            0x3C,
            0x41,
            0x46,
            0x4B,
            0x50,
            0x55,
            0x5A,
            0x64
        })
        Name (BCLL, Package (0x10)
        {
            Zero,
            One,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        Method (_BCM, 1, NotSerialized)
        {
            Store (Match (BCLP, MEQ, Arg0, MTR, Zero, Zero), Local0)
            If (LNotEqual (Local0, Ones))
            {
                Store (DerefOf (Index (BCLL, Local0)), \BRLV)
                \_SB.PCI0.LPC.EC.BRTO (0x0A, \_SB.PCI0.LPC.EC.BRNS (\UCMS (0x16, \_SB.PCI0.LPC.EC.BRTT ())))
            }
        }

        Method (_BQC, 0, NotSerialized)
        {
            Store (\BRLV, Local0)
            If (LLessEqual (Local0, 0x0F))
            {
                Return (DerefOf (Index (BCLP, Local0)))
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    Scope (\_SB.PCI0.AGP.VID.LCD0)
    {
        Method (_BCL, 0, NotSerialized)
        {
            Store (One, NBCF)
            Return (Package (0x12)
            {
                0x64,
                0x64,
                0x14,
                0x19,
                0x1E,
                0x23,
                0x28,
                0x2D,
                0x32,
                0x37,
                0x3C,
                0x41,
                0x46,
                0x4B,
                0x50,
                0x55,
                0x5A,
                0x64
            })
        }

        Name (BCLP, Package (0x10)
        {
            0x14,
            0x19,
            0x1E,
            0x23,
            0x28,
            0x2D,
            0x32,
            0x37,
            0x3C,
            0x41,
            0x46,
            0x4B,
            0x50,
            0x55,
            0x5A,
            0x64
        })
        Name (BCLL, Package (0x10)
        {
            Zero,
            One,
            0x02,
            0x03,
            0x04,
            0x05,
            0x06,
            0x07,
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        })
        Method (_BCM, 1, NotSerialized)
        {
            Store (Match (BCLP, MEQ, Arg0, MTR, Zero, Zero), Local0)
            If (LNotEqual (Local0, Ones))
            {
                Store (DerefOf (Index (BCLL, Local0)), Local1)
                \VBRC (Local1)
            }
        }

        Method (_BQC, 0, NotSerialized)
        {
            Store (\VBRG, Local0)
            If (LLessEqual (Local0, 0x0F))
            {
                Return (DerefOf (Index (BCLP, Local0)))
            }
            Else
            {
                Return (Zero)
            }
        }
    }
}

I dated a borderline schizophrenic once, this is starting to remind me of her.

Link to comment
Share on other sites

maybe you can look at the d630 low res boot pack we put together a while ago. kinda similar specs to the t61 maybe you can find something in there to help you. i don't recall all the fixes as it's been so long. Dell_Latitude_D630_Intel-lion.zip should be a whole extra folder.

 

hah seems we also had a t61 boot pack for snow.Lenovo_ThinkPad_XT_61_Intel_X3100-sl.zip

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

The T61 is right here on the table next to me. It's getting better but still not there yet. I had to take a break to work on something else but I try to collect some info every day.

This is starting to remind me a lot of the old days when my avatar was a blue plane with a spoon on it.

 

There's a bug in the BIOS of the T61 that sets the FSB to 182 Mhz instead of 200. The RAM is 607 Mhz instead of 667 etc (of course Windows 7 happily ignores that bug and works perfectly) I mentioned earlier that I found a patch for the Chameleon cpu.c source file that was supposed to correct that which I somehow managed to apply by hand to latest svn, but it caused crackly sound, I suspect because the patch was only forcing Chameleon to report a 200MHz FSB to the OS but not actually physically changing the FSB.

 

Legacy Clover does succeed in setting the FSB to 199Mhz but Clover and its "autoconfiguring" confuses the hell out of me and some of the tools for it don't work on 32-bit Lion. I'm experimenting with it on a flash drive. I had it installed to the system drive but I could not find the HFS+ EFI driver for Clover so none of the changes I made in the Clover menu would stick because it couldn't write to its own configuration file. lol

 

CPU power management is definitely weird. The CPU will not stay at the highest multiplier when running under full load, like compiling on both cores.

The original CPUpm SSDT tables don't work, I can only get P- and C-states going with GenerateCStates and GeneratePStates set to yes and dropping the native CPUpm SSDT tables.

 

FileNVRAM.dylib is not working correctly for me.

 

I have a strange issue with the arcade emulator MAME where it will refuse to run, say Moon Patrol any faster than 50% speed in a window while the same game unthrottles to 223% in full screen mode!

It's not the emulator itself because it was working at one point but I don't remember anymore what system configuration I was using.

 

I still need to figure out how to get the SSDT backlight code to work with ACPIBacklight.kext. I've made some "progress", after moving the PNLF method into the same code section that holds the X3100 code, the driver now complains about invalid data in one of the brightness control methods.

 

I was finally able to get X3100 injection working through DSDT and ditch natit.kext. The X3100 needs a display profile override (the driver seems to randomly lose track of the LCD display's EDID data) and certain parameters injected, still not sure which ones exactly make it work, behavior is still erratic, under rare conditions that I haven't been able to pinpoint yet, the X3100 driver causes a kernel panic.I need to take notes and compare to track that down. It does behave for the most part, I have both mirror and extended desktop working now and I haven't seen display corruption in a long time.

 

I used an EDID dump from Windows 7 and Andy's FixEDID to make the display profile, but first I had to figure out how to fix the build settings of the xcode project because otherwise I'd be without kernelcache. The displaymergenub.kext that gets generated by FixEDID kept getting omitted from the cache because of "invalid code signing". I had to compile one with the codesigning issue fixed and then drop the info.plist from the autogenerated kext inside. Why is it always like this lol   

 

I found out what the duplicate DSDT code for the graphics device does. I believe it's for the super deluxe monster version of the Thinkpad docking system that has a PCI-E slot where you can plug in a real video card. 

 

The auto fan speed DSDT patch for the T61 that's out there is kind of cute. It doesn't seem to do anything unless you are actively monitoring the speed of the system fan with HWMonitor. Simply running HWMonitor doesn't do it - you have to set it to display fan RPM in the menu bar. it needs to know you are keeping an eye on it!

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...