# OpenCore美化

本指南将介绍的主要内容:

# 设置OpenCore的GUI

在开始之前,我们需要0.5.7或更新版本,因为这些构建将GUI包含在其他文件中。如果你使用的是较旧的版本,我建议更新:更新 OpenCore

完成之后,我们还需要做几件事:

完成这两个操作后,接下来将其添加到EFI分区中:

现在在我们的config.Plist中,我们有4个问题需要解决:

  • Misc -> Boot -> PickerMode: External
  • Misc -> Boot -> PickerAttributes: 17
    • 这使鼠标/触控板支持以及从驱动器读取volumeicon.icns,允许macOS安装程序图标出现在选择器中
  • Misc -> Boot -> PickerVariant: Acidanthera\GoldenGate
    • 适用变量:
      • Auto — 根据默认背景颜色自动选择一组图标。
      • Acidanthera\Syrah — N正常图标设置。
      • Acidanthera\GoldenGate — 新图标集。
      • Acidanthera\Chardonnay — 复古图标集。
  • 并将OpenCanopy.efi添加到UEFI -> Drivers

一旦所有这些都保存下来,你就可以重新启动,并看到一个真正的类似mac的GUI:

默认的 (Syrah) 新的 (GoldenGate) 老的 (Chardonnay)

# 使用AudioDxe设置开机铃声

首先,我们需要一些东西:

  • 内置音频输出
    • USB dac无法工作
    • GPU音频输出好坏参半
  • AudioDxe (opens new window) 放到 EFI/OC/Drivers 和 UEFI -> Drivers
  • 二进制资源 (opens new window)
    • 将Resources文件夹添加到EFI/OC中,就像我们对OpenCore GUI部分所做的那样
    • 对于那些空间不足的人,只需要 OCEFIAudio_VoiceOver_Boot.mp3也可以
  • 启用日志记录的OpenCore的调试版本

设置NVRAM:

  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82:
    • SystemAudioVolume | Data | 0x46
    • 这是启动编码器和屏幕阅读器的音量,注意它是十六进制的,因此将变成十进制的70;0x80是静音的
可选NVRAM表项
  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82:
    • StartupMute | Data | 0x00
    • 在固件音频支持中静音启动铃声;0x00是未静音的,不填写变量或填写任何其他值都意味着静音

设置UEFI -> Audio:

  • AudioCodec: (Number)

    • 音频控制器编解码器地址。这通常包含第一个音频编解码器地址装入的模拟音频控制器(HDEF)。失效保护值为0。
    • 找到你的:
      • 检查IORegistryExplorer (opens new window) -> HDEF -> AppleHDAController -> IOHDACodecDevice并查看IOHDACodecAddress属性(例如:0x0)

      • 也可以通过终端进行检查(注意,如果出现多个设备,请使用供应商ID查找正确的设备):

        ioreg -rxn IOHDACodecDevice | grep VendorID   # 列出所有可能的设备
        sh ioreg -rxn IOHDACodecDevice | grep IOHDACodecAddress # 获取编解码器地址
        
  • AudioDevice: (String)

    • 音频控制器的设备路径(PciRoot)
    • 运行gfxutil (opens new window)找到路径:
      • /path/to/gfxutil -f HDEF
      • 例如: PciRoot(0x0)/Pci(0x1f,0x3)
  • AudioOutMask: (Number)

    • 在UEFI中播放声音到多个声道(例如主扬声器加低音扬声器)。失效保护的值是-1(输出到所有)。

    • 输出通道在内部编号为比特0(值1),比特1(值2)等等。值1表示第一个音频输出(不一定是主扬声器)。值-1用于同时向所有通道播放。

    • 启用AudioSupport时,AudioDevice必须为空或有效路径,并且AudioOutMask必须非零

    • 找到正确输出的最简单方法是遍历每个输出(从2^0到2^(N - 1),其中N是日志中列出的输出数量);例如:5个输出将转换为1/2/4/8/16(或这些值的组合)作为可能的值

    • 你可以在OpenCore调试日志中找到你的所有编解码器:

      06:065 00:004 OCAU: Matching PciRoot(0x0)/Pci(0x1F,0x3)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000)...
      06:070 00:005 OCAU: 1/2 PciRoot(0x0)/Pci(0x1F,0x3)/VenMsg(A9003FEB-D806-41DB-A491-5405FEEF46C3,00000000) (5 outputs) - Success
      
  • AudioSupport: (Boolean)

    • 设置为 True
    • 启用此设置将音频播放从内置协议路由到指定音频控制器(AudioDevice)上指定编解码器(AudioCodec)的指定专用音频端口(AudioOutMask)
  • DisconnectHDA: (Boolean)

    • 设置为 False
  • MaximumGain: (Number)

    • 用于UEFI音频的最大增益,以分贝(dB)指定,相对于放大器参考电平0 dB
    • 设置为 -15
  • MinimumAssistGain: (Number)

    • 用于picker音频辅助的最小增益分贝(dB)。如果从SystemAudioVolumeDB NVRAM变量读取的系统放大器增益低于此值,则屏幕阅读器将使用此放大器增益
    • 设置为 -30
  • MinimumAudibleGain: (Number)

    • 尝试播放任何声音的最小增益分贝(dB)
    • 设置为 -55
  • PlayChime: (String)

    • 设置为 Enabled
    • 支持的值为:
      • Auto — 当StartupMute NVRAM变量不存在或设置为00时启用铃声
      • Enabled — 无条件启用铃声
      • Disabled — 无条件禁用铃声
  • ResetTrafficClass: (Boolean)

    • 设置为 False
  • SetupDelay: (Number)

    • 默认值为0
    • 有些解码器需要额外的设置时间,如果你有问题,我们建议设置为500毫秒(0.5秒)

一旦完成,你应该会得到这样的结果:

信息

有像Realtek ALC295 (HP等)这样的编解码器,其默认音频采样率为48 kHz。在这种情况下,即使编解码器支持44.1 kHz,声音输出也会失败。目前解决这个问题的唯一方法是更改OCEFIAudio_VoiceOver_Boot.mp3的采样率文件或使用音频编辑工具将它从44.1 kHz提高到48 kHz。这必须手动完成,因为OpenCore没有自动机制。

信息

视障人士注意事项:

  • OpenCore没有忘记您!使用AudioDxe设置,您可以通过以下2个设置启用选择器音频和文件库语音转换:
    • Misc -> Boot -> PickerAudioAssist -> True 启用选择器音频
    • UEFI -> ProtocolOverrides -> AppleAudio -> True 启动文件库语音转换
  • 请参阅安全和文件库了解如何设置其余的文件以获得适当的文件库支持。