折腾我的新家用锄头

当前 macOS 版本:Big Sur 11.5.2配置组件品牌备注主板ASRock Z490M ITX/AC依据是网上 EFI 数量CPUi7-10700K感觉没必要上i9,甚至i7都多余了GPURadeon RX560无需供电、性能不强,奈何显卡太贵iGPUIntel® UHD 630内存威刚(

当前 macOS 版本:Big Sur 11.5.2
给大家介绍下,这是我的新家用锄头

配置

组件 品牌 备注
主板 ASRock Z490M ITX/AC 依据是网上 EFI 数量
CPU i7-10700K 感觉没必要上i9,甚至i7都多余了
GPU Radeon RX560 无需供电、性能不强,奈何显卡太贵
iGPU Intel® UHD 630
内存 威刚(AData) 16GBx2 DDR4 2666 MHz 没信仰,随便上
WiFi 蓝牙 BCM94352z 没感觉出不完美
NVMe SSD 英睿达 CT500P5SSD8 500 GB macOS
NVMe SSD KIOXIA-EXCERIA PLUS G2 SSD 500 GB Windows
SATA HDD 希捷 2 TB 备份&数据
SATA SSD 铠侠 500 GB 虚拟机

BIOS 设置

将 BIOS 设置重置。Exit - Load UEFI Defaults
  • Advanced
  • CPU Configuration
  • Intel Hyper Threading Technology - Enabled
  • Software Guard Extensions(SGX) - Disabled
  • CFG Lock - Disabled
  • Chipset Configuration
  • VT-d - Disabled
  • Above 4G Decoding - Enabled
  • Primary Graphics Adapter - Auto
  • Storage Configuration
  • SATA Controllers - Enabled
  • SATA Mode Selection - AHCI
  • Super IO Configuration
  • PS2 Y-Cable - Enabled
  • ACPI Configuration
  • Suspend to RAM - Auto
  • USB Configuration
  • Legacy USB Support - Enabled
  • XHCI Hand-off - Enabled
  • Trusted Computing
  • Security Device Support - Enabled
  • Security
  • Secure Boot
  • Secure Boot - Disabled
  • Boot
  • Fast Boot - Disabled
  • CSM(Compatibility Support Module)
  • CSM - Disabled

安装

使用黑果小兵制作的镜像,刻录到 U 盘后,用它默认的 EFI 来完成安装。 这里使用别人的制作好的 EFI 可能会启动不了,导致直接无法安装。

装机后无法启动、开机

按了开机键之后,风扇转一下,水冷动一下,然后就没动静了,怎么按开机键都没有动静了。排查了电源问题、主板供电线问题、CPU 供电线问题,最后发现内存条插入插槽之后,冒出来的高度不一致,确实是内存条没插好

BCM94352z 蓝牙网卡驱动

Windows 下无法找到对应WiFi设备、驱动也安装不上,但蓝牙是可以正常工作的。经过大量时间的排查,结果发现是 BIOS 里面将 WiFi 设备关了。

这个配置项是开始装黑苹果时参考某个文章配置的,当时并未知晓其中的含义。发现此问题是由于看到了此文

如果遇到类似问题,可检查的相关配置项为: WAN Radio/Onboard WAN Device。同时,也可以尝试 Exit - Load UEFI Defaults 后,重新设置 BIOS。

  1. OC/kexts 中添加如下驱动:
  • AirportBrcmFixup
  • BrcmBluetoothInjector
  • BrcmFirmwareData
  • BrcmPatchRAM3
  1. 按如下配置添加到 config.plist
  • 启用 - AirportBrcmFixup.kext
  • 禁用 - AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcm4360_Injector.kext
  • 启用 - AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext
  • 启用 - BrcmBluetoothInjector.kext
  • 启用 - BrcmFirmwareData.kext
  • 启用 - BrcmPatchRAM3.kext
  1. 添加启动参数(boot-arg)
-brcmfx-driver=2

更新 OpenCore 版本

到 OpenCore 项目的 release 中下载最新的版本到本地,然后解压,进入 X64 文件夹,如下(部分可选更新项已省略)

~/Downloads/OpenCore-0.7.2-RELEASE/X64 > tree .
.
└── EFI
    ├── BOOT
    │   └── BOOTx64.efi
    └── OC
        ├── Drivers
        │   ├── AudioDxe.efi
        │   ├── OpenCanopy.efi
        │   └── OpenRuntime.efi
        └── OpenCore.efi
  • /EFI/BOOT/BOOTx64.efi:OpenCore 的引导文件,必须替换
  • /EFI/OC/OpenCore.efi必须替换
  • /EFI/OC/Driver/OpenRuntime:OpenCore 的功能库,必须替换
  • /EFI/OC/Bootstrap/Bootstrap.efi:如果使用了 Bootstrap,则需要
「提示」OpenCore 自 0.6.6 版本开始删除了 Bootstrap,如果之前你使用了 Bootstrap,需要先在 config 中关闭,重启计算机并重置 NVRAM,最后再升级 OC 文件
  • /EFI/OC/Driver/AudioDxe.efi:如果使用了开机声音,则需要替换
  • /EFI/OC/Driver/OpenCanopy:如果使用了官方主题服务,则需要替换
「再次提示」OpenCore 部分版本升级后依然提示没有升级,一般常见于 0.6.5、0.6.6、0.6.7 这三个版本,需要通过在引导界面重置 NVRAM 解决,如果你的引导界面没有 ResetNVRAM 的选项,打开以下设置: config → Misc → Security → AllowResetNvram 勾选/True

Q:opencore升级版本后,Hackintool上的引导依旧显示原来的版本号。

A:使用opencore configure工具打开EFI引导分区OC目录下config.plist文件,Misc—Security—AllowNvramReset选项勾选上,然后保存重启,进入菜单栏页面选择rest nvram选项,系统会自动重启,重启后在去Hackintool上看引导的OC版本号,已经显示为最新版本。

Reference

Read more

容器镜像(4):镜像的常用工具箱

容器镜像(4):镜像的常用工具箱

前几篇在讲多架构镜像时已经用过 skopeo 和 crane 做镜像复制,这篇系统整理这两个工具的完整能力,同时介绍几个日常操作镜像时同样好用的工具。 一、skopeo:不依赖 Daemon 的镜像瑞士军刀 skopeo 的核心价值是绕过 Docker daemon,直接与 Registry API 交互。上一篇用它做镜像复制和离线传输,但它的能力远不止于此。 1.1 安装 # Ubuntu / Debian sudo apt install -y skopeo skopeo --version # skopeo version 1.15.1 1.2 inspect:免拉取检查镜像元数据 docker inspect 需要先把镜像拉到本地,skopeo inspect 直接向 Registry

容器镜像(3):多架构镜像构建

容器镜像(3):多架构镜像构建

一、什么是多架构镜像 1.1 OCI Image Index 上一篇介绍了单平台镜像的结构:一个 Manifest 指向 Config 和若干 Layer blob。多架构镜像在此之上多了一层——OCI Image Index(也叫 Manifest List),是一个轻量的索引文件,把多个单平台 Manifest 组织在一起: $ docker manifest inspect golang:1.22-alpine { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests&

容器镜像(2):containerd 视角下的镜像

容器镜像(2):containerd 视角下的镜像

一、为什么需要了解 containerd 如果你只用 docker run 跑容器,从来不关心底层,那可以不了解 containerd。但如果你在用 Kubernetes,或者想真正理解"容器运行时"是什么,containerd 是绕不开的。 事实上,当你执行 docker run 的时候,containerd 早就在后台悄悄工作了——Docker 从 1.11 版本开始,就把核心运行时剥离出来交给 containerd 负责。 1.1 Docker 的架构演变 早期的 Docker(1.10 及之前)是一个"大一统"的单体程序:一个 dockerd