问题表述
绝大部分笔记本内建显示器的连接类型(connector type)是eDP的, 但是, 仔细察看了AppleIntelSKLGraphicsFramebuffer里面ig-platform-id在port 0000上面全是LVDS(02000000)的, LVDS和eDP实际上都可以驱动我们笔记本的内建显示器, 但是, 两个接口之间有很大的区别. 因此, 有必要对连接类型做修正.
eDP和LVDS的区别
我不打算用长篇大论来介绍eDP和LVDS的区别, 因为我知道你们懒, 所以简单来说
eDP和LVDS采用不同的信号格式: 一个走aux通道, 一个走ddc通道
eDP是DP接口的扩展(extend), 意图在取代掉老旧的LVDS
eDP能够提供比LVDS更高的带宽和分辨率, 与此同时减少了占用的空间
查阅资料发现, eDP和DP差异更多体现在电压, 接口定义上面, 可以说是同宗的关系, 因此, 可以直接使用DP的接口类型来表示eDP.
上述的比较必然引发了我们对Framebuffer的修改, 一般来说SKL笔记本的显示屏接口类型是eDP, 因此直接应用我的补丁即可
Comment: eDP, port 0000, 0x191e0000, 0x19160000, 0x19260000, 0x19270000, 0x191b0000, 0x19160002, 0x19260002, 0x191e0003, 0x19260004, 0x19270004, 0x193b0005 credit syscl
Find: 00000800 02000000 98000000 01050900 00040000
Replace: 00000800 00040000 98000000 01050900 00040000
Name: AppleIntelSKLGraphicsFramebuffer
如果需要直接复制粘贴到Clover中的config.plist文件中则需要如下的形式
<dict>
<key>Comment</key>
<string>eDP, port 0000, 0x191e0000, 0x19160000, 0x19260000, 0x19270000, 0x191b0000, 0x19160002, 0x19260002, 0x191e0003, 0x19260004, 0x19270004, 0x193b0005 credit syscl</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
AAAIAAIAAACYAAAAAQUJAAAEAAA=
</data>
<key>Name</key>
<string>AppleIntelSKLGraphicsFramebuffer</string>
<key>Replace</key>
<data>
AAAIAAAEAACYAAAAAQUJAAAEAAA=
</data>
</dict>
不熟悉上面破解步骤的朋友请参阅一劳永逸!更新不再替换Kext(Kexts to patch)教程
重启后, 通过IORegistryExplorer-SLRID_v10.6.3 AppleIntelFramebuffer@0的connector-type, 如果
connector-type = <00 04 00 00>表明修改成功, 反之你需要下面的命令重建缓存
sudo rm -rf /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
sudo rm -rf /System/Library/PrelinkedKernels/prelinkedkernel
sudo kextcache -u /
更多细节
实际上, 如果你的connector-type不是eDP, 亦或者是你使用的台式机, 需要修正连接类型, 这时候我们需要借助Ubuntu的xrand的命令来查看显示器的连接类型, 以XPS 13 9350为例, 在Ubuntu中打开终端, 输入
xrandr
会给出
Screen 0: minimum 320 x 200, current 3200 x 1800, maximum 8192 x 8192
eDP-1 connected primary 3200x1800+0+0 (normal left inverted right x axis y axis) 294mm x 165mm
3200x1800 59.98*+ 47.99
2048x1536 60.00
1920x1440 60.00
1856x1392 60.01
1792x1344 60.01
1920x1200 59.95
1920x1080 59.93
1600x1200 60.00
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
960x600 60.00
960x540 59.99
800x600 60.00 60.32 56.25
840x525 60.01 59.88
800x512 60.17
700x525 59.98
640x512 60.02
720x450 59.89
640x480 60.00 59.94
680x384 59.80 59.96
576x432 60.06
512x384 60.00
400x300 60.32 56.34
320x240 60.05
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
注意到
eDP-1 connected primary 3200x1800+0+0 (normal left inverted right x axis y axis) 294mm x 165mm
connected primary前面的内容便是我们要找的主要显示器连接类型, 改成你想要的类型即可, 附上参考表
连接类型(connetor type) | 数值(Data) |
HDMI | 00 08 00 00 |
DVI | 00 02 00 00 |
eDP | 00 04 00 00 |
DP | 00 04 00 00 |
LVDS | 02 00 00 00 |
以修改成HDMI为例, 只需要将00000800 02000000 98000000 01050900 00040000 --> 00000800 00080000 98000000 01050900 00040000 即可.
祝你们成功!