自由尋覓快樂別人從沒法感受

0%

从High Sierra升级到Big Sur

前言

看着Dock栏的图标一个个变成了正方形,软件慢慢开始不支持High Sierra系统,我也按耐不住想要升级系统了。但插在主板上的GTX1060告诉我,升级了系统之后就再也用不了它了,并且升级后的系统也不知道能不能正常使用。为了解决显卡这个问题,我去网上查了许多资料,研究了几种不同的解法,最终在不变动当前配置的情况下成功升级到Big Sur,Windows系统也毫无影响,付出的代价有2个:一是Big Sur下GTX1060无法使用;二是需要频繁插拔HDMI线,想要切换到Windows系统并使用GTX1060,需要把HDMI线从板载HDMI口拔下并插到显卡HDMI口上。

升级思路

升级系统的思路主要有以下几种:

  • 只用集显的方法,这是最简单的一种方法了,把GTX1060拔了,舍弃独显,重新配置机型,全新安装Big Sur。这种方法最简单,但是Windows下只能用UHD630,游戏没法好好玩了。
  • 显卡置换的方法,把GTX1060卖了之后换免驱的A卡,前一个星期我都在观察RX560和R9 Nano,想要入手一张。奈何是ITX机箱,A卡的ITX卡存量较少,价格较高,没舍得采用这种方案。
  • 系统分开使用显卡的方法,在Big Sur中只用UHD630集显,在Windows中使用GTX1060。这种方法的好处是机器不需要对配置进行任何改动,但想要启动Windows打游戏的时候,需要把HDMI线插到独显上,想要启动Big Sur干活的时候,需要把HDMI线插到板载HDMI口上。

最终,我使用了第三种方法,虽然频繁插拔HDMI线麻烦了一点,但是不需要花钱,也不需要动硬件,也算是一种比较省心的方法了。

Bios设置

本次升级中,Bios设置主要集中在北桥中,设置如下:

  • 首选显卡:CPU Graphics
  • iGPU:Disable(启用后,主板会将板载和独显的HDMI口当成两个屏幕的输出,这样子就无法做输出区分了)
  • DVMT Pre-Allocated:128M(网上资料说:分配显存过小可能会出现花屏和黑屏,具体我没验证过)
  • RC6:Auto

Bios设置

系统下载

由于百度云没会员实在是太慢了,我使用了macadmin-scripts脚本下载系统,该脚本的使用方法很简单,下载的镜像也是官方的纯净镜像。

  • 拉取仓库
1
2
3
cd ~/Desktop/
git clone https://github.com/munki/macadmin-scripts.git
cd macadmin-scripts/
  • 以管理员身份运行脚本,如果提示缺少依赖,使用pip3安装对应依赖即可
1
sudo python3 ./installinstallmacos.py
  • 在更新资源目录之后,脚本会询问想要下载哪个版本的镜像,这里我直接选择最新版的Big Sur,序号是18

选择需要下载的镜像

  • 接着脚本就会自动下载镜像,下载完成之后在文件夹中会自动生成一个dmg文件,该文件就是系统镜像了

提示:如果下载过程中由于网络波动等原因导致下载失败,没有关系,重新运行脚本并选择相同的镜像序号,脚本会自动从下载失败的地方继续下载。

OpenCore配置

这一步中,我们需要准备一个U盘,往里面放一份当前系统的EFI配置,然后进行修改。接下来的升级安装过程中全程使用这一份配置来引导系统。

由于之前的OpenCore配置文件中启用了独立显卡并指定为N卡,我们需要修改一下,将独显禁用并添加核显配置参数。如有需要,还要更换机型配置。(我从iMac18,2更换到Macmini8,1)

  • 首先是添加对集显的支持,我的集显是UHD630,添加的参数配置如下,其他型号的集显可以在各种黑苹果论坛查对应的键值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>AAPL,slot-name</key>
<string>Internal@0,2,0</string>
<key>device-id</key>
<data>mz4AAA==</data>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>dpcd-max-link-rate</key>
<data>FAAAAA==</data>
<key>enable-dpcd-max-link-rate-fix</key>
<data>AQAAAA==</data>
<key>enable-hdmi20</key>
<data>AQAAAA==</data>
<key>enable-lspcon-support</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-busid</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-has-lspcon</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-index</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-pipe</key>
<data>CgAAAA==</data>
<key>framebuffer-con0-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-has-lspcon</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-index</key>
<data>AwAAAA==</data>
<key>framebuffer-con1-pipe</key>
<data>CAAAAA==</data>
<key>framebuffer-con1-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con2-busid</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-index</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-pipe</key>
<data>CQAAAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-unifiedmem</key>
<data>AAAAgA==</data>
<key>hda-gfx</key>
<string>onboard-1</string>
<key>model</key>
<string>Intel UHD Graphics 630</string>
</dict>

添加后的OC配置如下图所示

集显配置

  • 接下来是禁用Intel网卡和蓝牙的驱动,因为不同系统版本有对应编译的驱动,升级完系统后还需要对这两个驱动升级,最后才能启用这两个驱动
  • 同时,对于我的主板(Asus B360i),我还需要勾选DisableRtcChecksum,否则升级系统后每次开机主板都会进入安全模式

禁用驱动

  • 随后是启动参数的修改,清空之前的所有参数,填入以下参数:
    • -v:启动Debug模式,出问题时方便排查
    • debug=0x100:显示更多的Debug信息
    • keepsyms=1:出现问题后不自动重启,而是卡住并保持输出Debug信息
    • alcid=7:声卡驱动ID注入
    • igfxfw=2:使用核显启动
    • igfxonln=1:修复视频线热插拔问题
    • -wegnoegpu:禁用独立显卡

启动参数的修改

  • 最后是机型的修改(可选),由于我之前的机型参数iMac18,2使用的是7代酷睿,因此在Hackintool中CPU架构显示为???。本次升级顺带将机型参数也更换掉,更换为配置更接近的Macmini8,1
  • 具体操作在OCC的PlatformInfo中选择对应机型,检查序列号,确定该序列号无效后即可

系统更新

本次升级中,我曾尝试制作U盘启动盘,然后从安装Big Sur中启动并升级系统,但是升级到一大半就会提示该镜像已损坏,请重新下载的提醒。没办法,我只好放弃从U盘启动盘中升级系统。

随后我在硬盘EFI中删除nvda_drv=1,添加-wegnoegpu参数禁用独立显卡,将HDMI线接到板载HDMI接口,启动系统,此时系统是没有显卡驱动的。直接双击打开镜像然后点击升级,当系统自动重启时,转成使用U盘EFI进行引导,并在随后的启动中都使用U盘EFI进行引导。没想到这种方法居然升级成功了,因为不确定是否会成功,所以没有拍什么图片,只有下面这一张。

升级成功

值得注意的是,刚刚升级成功后电脑非常的卡,以至于在系统初始化设置界面,每点一次下一步都要等很久,这是正常现象,慢慢等就好了。

完成升级

进入系统之后,首先提醒的是N卡的WebDriver不再使用于本系统,直接卸载就可以了。

接下来更新驱动,把OC中能更新的驱动全部更新,注意Intel的Wi-Fi和蓝牙驱动要下载Big Sur版本的,在配置文件中重新勾选启用这两个驱动,保存重启测试,确认能够正常启动之后,我们就可以将新版的EFI从U盘覆盖到硬盘中了。

注意:这次升级之后我还遇到了一个问题是USB驱动问题,刚开机的时候鼠标和键盘非常卡,并且蓝牙驱动不会加载,这很明显就是USB定制驱动的问题,需要重新定制一次。重新定制之后,蓝牙驱动能够正常加载了,但是开机速度慢了很多,通过Debug的日志可以看到,蓝牙驱动一直在循环等待IO USB Controller这个控制器启动,而这个控制器的启动速度慢的离谱,具体解决方案目前还没有。如果你知道这个问题的解决方法,请在我的仓库中提issue,非常感谢。

至此,一次系统的升级终于完成,可以开始好好体验Big Sur的新功能了。

升级完成