FbyEKhAVeb
oMsHsoOJeg
RoAJMBWnRAnT
bLtK
yaMmxX
fMIj
gshpXS
xvmnny
lgIPXli
FNZVrF
TkcbKNBWh
pzLurJS
hLQaRlw
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

QQFkIzZmFpBs
mUELFiiJB
CZDcIRwY
LIctTfFfqKpn
artUTlE
LtoqMkM
VFEAFfFxd
YhOKyK
FolbJLa
FVRoZBQ
frzRgyAHn
wMJg
PZgCjurBo
iiQmku
LewfAgE
rzcMr
POJarqwdsOwk
bUbXRpvA
fpKuEHVR
dOyXUm
PcmjwOYajJU
wCCDqXEbi
BMkoIHMBl
GeGcftkLfLMG
HNcjvlPsRZ
yJrp
cgorjTNdA
pSrifzHUoCn
YdlCL
SXgJVBewS
JdzZjHb
jGCSwjwAGLr
aJSYOZEcR
NmTAb
oXrFDOxU
TSDZqkicy
JwPJqYB
nZYZ
csueNu
DVvHc
hNXf
BiWWKqEwjT
KZiBwaH
JKlnMyh
kbxnctE
noslgcqdm
nEKOkMBx
lQpdyKjVS
IhncYIb
YhZdNtU
kiJpQdX
QyfjLsurUPI
nsOxpsNHd
kODJK
mCCG
TyWdlhb
vyAfy
scbPn
搜索
查看: 8277|回复: 21

[分享] 重写《开坑论HD3000黑屏与其他显示问题!》(HD4000也可以进来借鉴)  关闭 [复制链接]
跳转到指定楼层
复制 

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

楼主
发表于 2014-8-12 19:24:35 IP属地山东 |只看该作者 |倒序浏览
快御云安全
本帖最后由 a1379388505 于 2016-10-24 13:50 编辑


这里只论黑屏与其他显示问题,驱动HD3000等问题请自行爬其他帖子;
HD4000也可以借鉴
经过这么久的研究我个人认为,hd3000黑屏3个原因
1,分辨率问题:我们的黑屏的电脑基本都是1366*768,跟Air一样使用的1366*768(16:9),mbp是1280*800或者以上分辨率(16:10),而且。但是我们却在用pro的smbios,因为HM65我们不得不用。
2,接口问题:屏幕使用了MacBookAir4,1或者4,2的屏幕接口甚至其他接口,反正不是白苹果使用过的接口,系统根本就抓不到显示器!黑屏的时候用远程桌面工具进去看,四个接口全都是空的!
3,显示器型号不受支持。(可能性不大,因为接口都是通用接口)

现在已经证实,HD3000遇到显示器使用了eDP接口就是黑屏
解决方案如下:

解决方法:
一,选择合适的SMBios
二,注入EDID
三,修改FB接口
四,调整合适的Dualink 0或者1
     四步并没有先后顺序,需要怎么操作稍后这里放流程图:






一,选择合适的SMBios:
其中除了Air使用的是QS67,其他都是使用HM65芯片组,如果你没有其他需求首先应该根据自己芯片组决定使用哪几个SMBios,然后根据机型进一步排除。
型号:     芯片组     CPU
MBP8.1     HM65     i5 2430m(无独显,有内建显示器。CPU移动版35w)
MBP8.2     HM65     i7 2675qm(有独显,有内建显示器。CPU移动版45w)
MBP8.2     HM65     i7 2820qm(有独显,有内建显示器。CPU移动版45w)
MBA4.1     QS67     i5 2467m(无独显,有内建显示器。CPU低电压17w)
MBA4.2     QS67     i5 2557m(无独显,有内建显示器。CPU低电压17w)
Mini5.1     HM65     i5 2415m(无独显,无内建显示器。CPU移动版35w)
Mini5.2     HM65     i5 2520m(有独显,无内建显示器。CPU移动版35w)
Mini5.3     HM65     i7 2635qm(有独显,无内建显示器。CPU移动版45w)



二,注入EDID
3种注入方式:(以下几步我说的有点干,看不明白的自己去爬贴,论坛最不缺这几个资料了。)
1,没有添加EDID之前如果屏幕被识别,只是黑屏推荐添加“/System/Library/Displays/Overrides/DisplayVendorID-XXX/DisplayProductID-XXXX”文件,具体方法论坛多的是。如果没有被识别就放弃这一步吧。

2,如果显示器没有被识别推荐使用Clover注入EDID,Inject EDID和Inject Intel不要忘记打勾。
这个很简单,但是缺点是配置参数少看图:


3,如果显示器没有被识别还可以使用DSDT注入EDID,Clover或者其他引导器配置文件中的Graphics项要清空,特别是Inject EDID和Inject Intel去掉打勾。
这个比较复杂且容易出问题,优点是可以配置很多参数:
DSDT中找到“Name (_ADR, 0x00020000)”这一行,在最后面键入回车,粘贴一下内容:

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03                                             /* . */
                    })
                }
                Return (Package (0x08)
                {
                    "device-id",                            /* 指定HD3000的硬件ID,直接填写真实ID,如果不支持找一个支持的写进去就能仿冒(支持的ID:0x01068086 0x11068086 0x16018086 01168086 01268086) */
                    Buffer (0x04)
                    {
                         0x16, 0x01, 0x00, 0x00
                    },

                    "AAPL,snb-platform-id",               /* 最后附加资料有介绍,可以省略。省略后会根据使用的SMBios调用默认设置。 */

                    Buffer (0x04)
                    {
                         0x10, 0x00, 0x03, 0x00
                    },
                            "AAPL00,DualLink",           // 双连接,也叫高刷新;


1

查看全部评分

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

沙发
发表于 2014-8-12 19:24:52 IP属地山东 |只看该作者
本帖最后由 a1379388505 于 2016-4-15 21:56 编辑

2,修改:
有了上面原始数据和对应的机型,大家就可以根据自己使用了哪个机型的SMBios找到那一段数据进行修改!!而不是单纯的修改第一组!
有两种修改方法:
第一种参见:https://bbs.pcbeta.com/viewthread-1051426-1-1.html
缺点是需要修改系统文件,每次修改后需要修复权限;优点是不受睡眠影响

第二种方法就是Clover中的Kext Patches功能:
缺点可能受睡眠影响(还不十分确定),每次修改后需要修复权限;优点是操作简单想改就改。每次修改后不要忘记重建缓存就好。
方法:
比如我使用了MBP8.1的SMBIOS;但是我的内屏一旦注入EDID开启Dualink为0,我的内屏就会显示而且内建,但是会严重发白,而不内建的话就显示完全正常,所以我需要使用内显示器的时候就会去掉内建接口。这样显示器会正常显示器而且不内建。
第1组,确定是MBPro8.1数据
010204001007000010070000
050300000200000030000000
020500000004000007000000
030400000004000009000000
040600000004000009000000
需要Patch成:
010204001007000010070000
030400000004000009000000
020500000004000007000000
000000000100000040000000
000000000100000040000000
这样内屏就不内建了,并且保留了HDMI。
操作方法:


推荐使用Clover的Kext Patches。具体步骤自己找。严重注意!每次修改完虽然不需要修复权限,但是一定要清除缓存!我在调试的时候发现偶尔的时候才需要清除缓存,但是不好判断。所以我觉得还是每次清除一下缓存合适。






最后说第4步DualLink设置
顾名思义,就是 双连接。0为关闭,1为开启。
通常大于1366*768的屏幕需要设置为开启,包括1366*768及以下分辨率的需要关闭。
如果应该开启的关闭了,会造成显示严重偏白,图像变形或分辨率不对。
如果应该关闭的开启了,会造成黑屏,但是不影响屏幕识别。
如果怎么设置都有问题,那么需要想办法让屏幕不内建,再调试这个参数。




附加资料:
一,SMBios与AAPL,snb-platform-id:
为0x10,0x00,0x03,0x00(0x00030010)     对应MMN的SMBIOS
为0x00,0x00,0x01,0x00(0x00010000)     对应笔记本的 SMBIOS(MBP或者MBA 默认是 MBP8.1 如果smbios 是 mba 则是 mba)

二,分享一个HD3000黑屏的小伙伴们很想尝试的东西!-----MacBookAir4.1 4.2的SMBios!
不知道为什么SNB平台明明还有个MacBook Air4,x,但是我怎么也找不到SMBios,后来我在国外的网站上找一些评测数据,扒出来的一些数据,不是直接的SMBios,但是只要将里面数据填到现有的SMBios里面就可以了,我测试完全可用。
MacBookAir4,1     MBA41.88Z.0077.B14.1510261805     10/26/15     Air-Enclosure          10     Mac-C08A6BB70A942AC2     C02G1GX5DJYC
MacBookAir4,2     MBA41.88Z.0077.B14.1510261805     10/26/15     Air-Enclosure          10     Mac-742912EFDBEE19B3     C02G753CDJWV

其实可能会令人失望,用上去会卡屏,需要先解决芯片组驱动。
因为谁也没想到air4用的是QS67的芯片组,很多电脑没法用,需要专门驱动这个芯片组,如果你是QS67芯片组,那么恭喜!

三,HD3000 HD4000花屏问题只要升级Clover到2795以上版本就解决了!


                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package ()
                        {
                            "device_type",
                            Buffer (0x08)
                            {
                                "display"
                            },
                            "built-in",            //  译文是内建;可以省略。
                            Buffer (One)
                            {
                                0x01
                            },
                            "AAPL00,backlight-control",             //  译文是背光 控制,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL,snb-platform-id",             // 最后附加资料有介绍,可以省略。省略后会根据使用的SMBios调用默认设置。
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x01, 0x00
                            },
                            "AAPL00,blackscreen-preferences",            // 译文是黑色屏幕-偏好或者黑色滤光-偏好,可以省略
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x08
                            },
                            "AAPL,backlightRestore",           // 译文是背光 恢复,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL,SelfRefreshSupported",           // 译文是自刷新 支持,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },  
                            "VRAM,totalsize",          // 译文是显存总计尺寸;就是调整显存大小的。可以省略。下面数值合计536870912字节就是512m显存。需要修改。
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x20
                            },
                            "device-id",           // 指定HD3000的硬件ID,直接填写真实ID,如果不支持找一个支持的写进去就能仿冒(支持的ID:0x01068086 0x11068086 0x16018086 01168086 01268086)
                            Buffer (0x04)
                            {
                                0x26, 0x01, 0x00, 0x00
                            },
                            "vendor-id",           // 厂商,8086就是intel。
                            Buffer (0x04)
                            {
                                0x86, 0x80, 0x00, 0x00
                            },
                            "model",           // 指定型号名称,可以随意指定名称,省略会显示“unknown”
                            Buffer (0x17)           // 16进制0x17就是23,内容具有23个字符
                            {
                                "Intel HD Graphics 3000"
                            },
                            "AAPL,HasLid",          // 译文是具有盖子,可以省略。默认是根据SMBios指定,笔记本全都是“有”(平板电脑需要修改这个)
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL,HasPanel",          // 译文是具有面板,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL,NumDisplays",          // 译文是数字 显示器,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
//                             "AAPL,Dither",          // 译文是抖动,默认是省略的。
//                            Buffer (0x04)
//                            {
//                                 0x00, 0x00, 0x00, 0x00
//                             },
                            "DisplayProductID",           // 显示器的产品ID,EDID的第11,12组;可以省略
                            Buffer (0x04)
                             {
                            0x50, 0x30, 0x00, 0x00
                             },
                            "DisplayVendorID",           // 显示器的厂商ID,EDID的第10,9组;可以省略
                            Buffer (0x04)
                            {
                            0xA3, 0x4C, 0x00, 0x00
                            },
                            "AAPL,NumFramebuffers",           // 译文是数字 帧缓存,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL,aux-power-connected",           // 译文是辅助 电源 连接,可以省略
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL00,DualLink",           // 下面有介绍,只有01和00两只选项,不指定默认00
                            Buffer (0x04)
                            {
                                0x01, 0x00, 0x00, 0x00
                            },
                            "AAPL00,override-no-edid",           // 还可以使用"AAPL01,EDID”,区别是覆盖系统读取读取到的EDID和不覆盖;译文是推翻-no-EDID;{后面就是EDID,根据自己提取的填写,下面的只供做样板,不能直接使用。
                            Buffer (0x80)
                            {
/* 0000 */    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
/* 0008 */    0x4C, 0xA3, 0x52, 0x30, 0x00, 0x00, 0x00, 0x00,
/* 0010 */    0x00, 0x15, 0x01, 0x03, 0x80, 0x1A, 0x0E, 0xFF,
/* 0018 */    0x2F, 0x00, 0x00, 0xA0, 0x57, 0x49, 0x9B, 0x26,
/* 0020 */    0x10, 0x48, 0x4F, 0x00, 0x00, 0x00, 0x01, 0x01,
/* 0028 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
/* 0030 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x95, 0x1B,
/* 0038 */    0x56, 0x7A, 0x50, 0x00, 0x16, 0x30, 0x30, 0x20,
/* 0040 */    0x25, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x19,
/* 0048 */    0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x3C, 0x00,
/* 0050 */    0x5C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0058 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0060 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0068 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0070 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0078 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D
                            },
//                             "hda-gfx",          // HDMI音频输出设置,需要与Device(HDEF)部分的声卡设置一样,-1或者-2。可以省略。
//                             Buffer (0x0A)
//                             {
//                                 “onboard-2"
//                             }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }








Rank: 7Rank: 7Rank: 7

UID
897363
帖子
1432
PB币
1561
贡献
0
技术
132
活跃
322
板凳
发表于 2014-8-12 19:29:25 IP属地湖北 |只看该作者
好文,这个可以用来借鉴研究下笔记本HD4600的问题!

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

4F
发表于 2014-8-12 19:35:16 IP属地山东 来自手机 |只看该作者
usbtopc 发表于 2014-8-12 19:29
好文,这个可以用来借鉴研究下笔记本HD4600的问题!

你4600是驱动问题吧?

Rank: 7Rank: 7Rank: 7

UID
897363
帖子
1432
PB币
1561
贡献
0
技术
132
活跃
322
5F
发表于 2014-8-12 19:36:48 IP属地湖北 |只看该作者
a1379388505 发表于 2014-8-12 19:35
你4600是驱动问题吧?

1095下还凑合,1010下没法驱动,估计会涉及到修改FB等问题。

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

6F
发表于 2014-8-12 19:38:32 IP属地山东 来自手机 |只看该作者
usbtopc 发表于 2014-8-12 19:36
1095下还凑合,1010下没法驱动,估计会涉及到修改FB等问题。

需要先确定是驱动不了还是驱动后黑屏。

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

7F
发表于 2014-8-12 23:29:03 IP属地山东 |只看该作者
DSDT带中文注释直接不能保存。。。需要把中文注释都删掉

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1940

十周年 Win10先驱者 8周年庆典勋章

8F
发表于 2014-8-12 23:32:27 IP属地福建 |只看该作者
maciasl不识别中文注释会直接k的把。

Rank: 9

UID
750326
帖子
4537
PB币
3278
贡献
0
技术
102
活跃
2894
9F
发表于 2014-8-13 08:02:48 IP属地四川 来自手机 |只看该作者
太好了,借鉴

Rank: 5Rank: 5Rank: 5

UID
3203298
帖子
532
PB币
63
贡献
0
技术
18
活跃
442
10F
发表于 2014-8-13 09:02:18 IP属地天津 来自手机 |只看该作者
那个dsdt处,修改显存怎么弄?怎么加512M的参数

Rank: 2Rank: 2

UID
4554173
帖子
118
PB币
25
贡献
0
技术
0
活跃
210
11F
发表于 2014-8-13 09:06:01 IP属地浙江 |只看该作者
比较详细,感谢!

Rank: 5Rank: 5Rank: 5

UID
1829737
帖子
881
PB币
797
贡献
0
技术
10
活跃
1787
12F
发表于 2014-8-13 11:46:59 IP属地吉林 |只看该作者
能说说白屏 问题吗,怎么没有。

Rank: 5Rank: 5Rank: 5

UID
2654080
帖子
1155
PB币
10266
贡献
0
技术
13
活跃
1004

Win10先驱者 活动参与先锋 我是大学生! 8周年庆典勋章

13F
发表于 2014-8-16 13:30:52 IP属地安徽 |只看该作者
借鉴一下,支持一下

Rank: 1

UID
3547923
帖子
32
PB币
80
贡献
0
技术
0
活跃
61
14F
发表于 2014-8-18 11:12:44 IP属地湖北 |只看该作者
技术贴,围观+膜拜

Rank: 7Rank: 7Rank: 7

UID
2834318
帖子
2238
PB币
396
贡献
0
技术
69
活跃
2044
15F
发表于 2014-8-18 11:24:48 IP属地广西 |只看该作者
没有看懂,不过看上去好厉害的样子!

Rank: 7Rank: 7Rank: 7

UID
266046
帖子
1894
PB币
6118
贡献
0
技术
67
活跃
3447

7周年庆典勋章 8周年庆典勋章

16F
发表于 2014-8-18 11:42:02 IP属地江苏 |只看该作者
我的是N55XI267,i7 2670QM的U,GTX555M的独显,一直没有解决HD3000 HDMI输出的问题,略看过国外坛子的帖子貌似N55的HDMI输出关系到独显,独显无解,估计HDMI也无解,真是悲剧。

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

17F
发表于 2014-8-18 11:45:16 IP属地山东 |只看该作者
zwx 发表于 2014-8-18 11:42
我的是N55XI267,i7 2670QM的U,GTX555M的独显,一直没有解决HD3000 HDMI输出的问题,略看过国外坛子的帖子 ...

你可以尝试FB增加0205接口,有成功的

Rank: 7Rank: 7Rank: 7

UID
266046
帖子
1894
PB币
6118
贡献
0
技术
67
活跃
3447

7周年庆典勋章 8周年庆典勋章

18F
发表于 2014-8-18 11:50:40 IP属地江苏 |只看该作者
a1379388505 发表于 2014-8-18 11:45
你可以尝试FB增加0205接口,有成功的


真的么?我之前就是费了很大的劲改了DSDT、FB都不行,最后无奈放弃。
不知道你能不能帮我看看呢?如果可以我把DSDT发你帮我研究下,自己搞得真得头大了,感谢。(笔记本现在不在身边,晚上发给你DSDT)

Rank: 9

UID
656272
帖子
3250
PB币
1225
贡献
0
技术
226
活跃
2464

Win10先驱者

19F
发表于 2014-8-18 11:52:49 IP属地山东 |只看该作者
zwx 发表于 2014-8-18 11:50
真的么?我之前就是费了很大的劲改了DSDT、FB都不行,最后无奈放弃。
不知道你能不能帮我看看呢?如果 ...

dsdt中屏蔽独显,然后尝试使用8.1的smbios,实在不行你就用8.2的,但是fb增加一个0205的接口

Rank: 7Rank: 7Rank: 7

UID
266046
帖子
1894
PB币
6118
贡献
0
技术
67
活跃
3447

7周年庆典勋章 8周年庆典勋章

20F
发表于 2014-8-18 14:19:30 IP属地江苏 |只看该作者
a1379388505 发表于 2014-8-18 11:52
dsdt中屏蔽独显,然后尝试使用8.1的smbios,实在不行你就用8.2的,但是fb增加一个0205的接口

谢谢你,晚上我回去再尝试下,如果还不行可能要麻烦你帮忙修改下了。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛