本帖最后由 zenglg1977 于 2013-2-27 17:09 编辑
本人Acer 3820TG(ML 10.8.2),显卡AMD6550M(实际AMD5650)原来启动花屏,现在在DSDT文件中加入如下的语句可使得内置屏幕正常显示,不再启动短暂花屏,显示32位色,同时CRT与HDMI显示正常,可镜像或扩展显示:
"AAPL00,override-no-connect",
Buffer (0x80)
{
XXXXX
},
其中XXXXX是内置显示器的EDID。同时,可以不用更改DisplayVendorID-756e6b6e下的那个文件了。
具体修改过程:1)根据显卡BIOS获得合适的输出端口,如LVDS的SenseID,Transimit/Encode等;
zengljacer:VBIOS zenglj$ ./radeon_bios_decode < 1002_68c1_051b1025.rom
ATOM BIOS Rom:
SubsystemVendorID: 0x1025 SubsystemID: 0x051b
IOBaseAddress: 0x2000
Filename: BR38498.007
BIOS Bootup Message:
CAPILANO HYNIX/SAMSUNG DDR3 64Mx16
PCI ID: 1002:68c1
Connector at index 0
Type [@offset 45070]: LVDS (7)
Encoder [@offset 45074]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45144]: 0x96, OSX senseid: 0x7
Connector at index 1
Type [@offset 45080]: HDMI-A (11)
Encoder [@offset 45084]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45167]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 45090]: VGA (1)
Encoder [@offset 45094]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45194]: 0x90, OSX senseid: 0x1
zengljacer:VBIOS zenglj$ ./redsock_bios_decoder < 1002_68c1_051b1025.rom
BR38498.007 :
CAPILANO HYNIX/SAMSUNG DDR3 64Mx16
Subsystem Vendor ID: 1025
Subsystem ID: 51b
Object Header Structure Size: 199
Connector Object Table Offset: 34
Router Object Table Offset: 0
Encoder Object Table Offset: 99
Display Path Table Offset: 12
Connector Object Id [14] which is [LVDS]
encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [5] which is [VGA]
encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
2)修改对应的驱动,如5000系列的可修改ATI5000Controller.kext;
根据第一步获得显卡BIOS信息,需要修改的FrameBuffer信息为:
02 00 00 00 40 00 00 00 09 01 00 00 10 01 00 07 00 08 00 00 00 02 00 00 00 01 00 00 11 02 04 02 10 00 00 00 10 00 00 00 00 01 00 00 00 00 01 01
说明:以前对于LVDS,若SenseID为0x07,则LVDS会黑屏,这主要是驱动不能获得EDID信息所致,那么我们通过加入如上
AAPL00,override-no-connect(字面意思:在不能连接显示器时采用提供的EDID进行显示)后就可以使得驱动获得EDID信息,这样驱动就可以驱动内屏了。
另外,
1) 附上本人的DSDT文件可作为参考。
DSDT.aml.zip
(50.93 KB, 下载次数: 914)
2) 本人的ATI5000Controller相关的Patch,采用Hoolock(其他应该不会有问题):
02 00 00 00 40 00 00 00 09 01 00 00 10 01 00 07 00 08 00 00 00 02 00 00 00 01 00 00 11 02 04 02 10 00 00 00 10 00 00 00 00 01 00 00 00 00 01 01
3)部分工具如下:
redsock_bios_decoder.zip
(5.99 KB, 下载次数: 113)
radeon_bios_decode.zip
(7.54 KB, 下载次数: 97)
|