hjmmc / Honor-Magicbook

Honor-Magicbook i5-8250u 14'' Hackintosh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

开机后接HDMI黑屏/卡顿问题

hjmmc opened this issue · comments

commented

现象:1.开机后通过HDMI(test via hdmi 1.4)接上(或开机前接上)显示器,进入到登录界面后很快变成黑屏,而且无论怎么开合盖子也无法激活屏幕。2.开机后接入HDMI,可以显示,但非常卡顿,再拔出时导致内屏黑屏,可能过30秒后才恢复。

可能的解决方法(开机后手动触发内屏熄灭):

1.开机后手动开合一次屏幕再接入HDMI线缆

2.换成HDMI2.0或1.2线缆?不确定HDMI线缆的版本对黑屏是否有影响,目前没有其它线缆测试。

3.使用触发角(Hot Corners),在系统设定某个触发角功能为「显示器置入睡眠」(Put Display to Sleep),进入系统后移动鼠标触发显示器睡眠,再接入HDMI

4.使用命令行代替触发角功能 Run shell pmset displaysleepnow

5.使用开机启动脚本 launchctl

Create file /Library/LaunchDaemons/com.magicbokk.displaysleepnow.sh

#!/bin/bash
sleep 3s
# sleep
pmset displaysleepnow
sleep 1s
# wake
caffeinate -u -t 1

Create file /Library/LaunchDaemons/com.magicbokk.displaysleepnow.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.magicbokk.displaysleepnow</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Library/LaunchDaemons/com.magicbokk.displaysleepnow.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

使用终端运行安装启动脚本,开机进入登录界面前脚本自动触发了内屏熄灭&点亮,之后再接入HDMI就正常了

cd /Library/LaunchDaemons/
# chmod
chmod +x com.magicbokk.displaysleepnow.sh
# load
sudo launchctl load -w com.magicbokk.displaysleepnow.plist
commented

测试了两台显示器,一台的情况是开机接入正常,但拔出100%黑屏,另一台是开机接入黑屏。

测过了应该跟线无关,不过是 HDMI1.4 还是 HDMI2.0 的线都是一样,拔出黑屏

另外测过了打开DVMT 64M也是无法解决这样的情况的,补丁也试了很多,暂时是没能力修复了,只能用开机脚本曲线救国

太赞了!联想昭阳k43c-80 同样是i5 8250U,用了patch以后完美驱动HDMI,解决内屏黑屏的困扰。就是有点没搞清原理,是否可以简单解析一下 😄

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
  <key>AAPL,ig-platform-id</key>
  <data>AAAWWQ==</data>
  <key>complete-modeset-framebuffers</key>
  <data>AAAAAAAAAAE=</data>
  <key>force-online</key>
  <data>AQAAAA==</data>
  <key>force-online-framebuffers</key>
  <data>AAAAAAAAAAE=</data>
  <key>device-id</key>
  <data>FlkAAA==</data>
  <key>enable-hdmi20</key>
  <data>AQAAAA==</data>
  <key>framebuffer-con1-enable</key>
  <data>AQAAAA==</data>
  <key>framebuffer-con1-type</key>
  <data>AAgAAA==</data>
  <key>framebuffer-con2-enable</key>
  <data>AAAAAA==</data>
  <key>framebuffer-con2-index</key>
  <data>/////w==</data>
  <key>framebuffer-fbmem</key>
  <data>AACQAA==</data>
  <key>framebuffer-patch-enable</key>
  <data>AQAAAA==</data>
  <key>framebuffer-stolenmem</key>
  <data>AAAwAQ==</data>
  <key>framebuffer-unifiedmem</key>
  <data>AAAAgA==</data>
</dict>
commented

主要是加了这个参数 complete-modeset-framebuffers,详情可以看 WhateverGreen 相关文档