ASUS KCMA-D8

出自 ArchWiki

本页面描述了使 ASUS KCMA-D8 的大多数功能正常工作的必要步骤。它假设您已成功安装 Arch Linux 并使用 GRUB 引导加载程序

BIOS

制造商的 BIOS 已过时且不安全,它没有 NVMe 驱动程序,无法从挂起状态恢复,并且是闭源的。为了解决这个问题,我们可以安装一个预编译的开源 bios,称为 libreboot 来代替。

原厂 BIOS 阻止您使用非原厂 BIOS 刷新它,因此首次刷新必须通过硬件完成。首次安装 libreboot 最简单的方法是使用树莓派,将 bios 芯片连接到 GPIO 如此处所示。在 pi 上使用 apt install flashprog 安装 flashprog,然后从 libreboot 下载页面下载、验证和提取最新的 bios 镜像(建议使用测试版本 20231021 或更高版本,早期版本不支持 NVMe)。确保选择具有正确 RAM 类型、ROM 大小、有效负载和键盘类型的 bios 镜像,然后按照如何使用 flashprog 说明刷新 bios,将 ./flashprog 替换为 flashprog,因为我们已经安装了它。确保在使用新 BIOS 启动之前清除 CMOS。

一旦安装了 libreboot,就可以通过遵循 这些说明 从操作系统内部更新它。

原厂 BIOS 芯片为 2MiB,可以升级到 16MiB 的芯片,例如 25Q128FVIQ 或带有 SOP8 转 DIP8 适配器 PCB 的 W25Q128FVSG。这将为将来更大的有效负载提供更多空间,但并非绝对必要。

要从 NVMe 启动您的操作系统,建议将您的操作系统完全安装到 NVMe,并将 GRUB 安装到 SATA 驱动器(该驱动器必须至少有一个分区)。这只是为了防止您必须从 libreboot bios 中重新配置 GRUB 的启动顺序。

传感器

运行 sensors detect 后,它会加载不正确的内核驱动程序 w83627ehf。可以通过在 lm_sensors 配置文件中将 w83627ehf 替换为 w83795 来解决此问题

/etc/conf.d/lm_sensors
HWMON_MODULES="w83795"

位于 /sys/class/hwmon/ 中的枚举 hwmon 符号链接在电源循环后顺序可能会有所不同,因为内核模块并非每次启动都以一致的顺序加载。插入游戏控制器这样简单的事情都可能导致顺序发生变化。以这种方式创建/编辑 /etc/modules-load.d/modules.conf 应该为模块的加载创建一个定义的顺序,这应该使 hwmon 路径保持在原位,并且在重新启动时不会更改顺序

/etc/modules-load.d/modules.conf
# Load w83795 at boot
w83795

此方法可能并非总是可靠地工作,应记录和实施更可靠的方法。

风扇控制

此主板中的风扇控制非常不寻常。有 8 个 PWM 风扇控制通道,但只有 2 个通道用于控制所有 8 个风扇接头的风扇速度。必须结合使用 4 针风扇(推荐用于 CPU)和 3 针风扇(推荐用于机箱)。可以为所有 4 针风扇设置一个速度,为所有 3 针风扇设置另一个速度。运行 pwmconfig 后,fancontrol.service 拒绝启动。这是因为 fancontrol 无法将超过 2 个风扇与 PWM 速度关联。手动配置 /etc/fancontrol,使 FCFANS 每个设备只有两个输入,并重启 fancontrol.service。这是一个配置示例

/etc/fancontrol
INTERVAL=10
DEVPATH=hwmon6=devices/pci0000:00/0000:00:14.0/i2c-8/8-002f
DEVNAME=hwmon6=w83795g
FCTEMPS=hwmon6/device/pwm2=hwmon6/device/temp1_input hwmon6/device/pwm1=hwmon6/device/temp8_input
FCFANS=hwmon6/device/pwm2=hwmon6/device/fan8_input+hwmon6/device/fan6_input hwmon6/device/pwm1=hwmon6/device/fan2_input+hwmon6/device/fan1_input
MINTEMP=hwmon6/device/pwm2=60 hwmon6/device/pwm1=40
MAXTEMP=hwmon6/device/pwm2=80 hwmon6/device/pwm1=65
MINSTART=hwmon6/device/pwm2=60 hwmon6/device/pwm1=60
MINSTOP=hwmon6/device/pwm2=0 hwmon6/device/pwm1=0

游戏加速时钟

在 KCMA-D8 上进行游戏使用一对 4332 HE / 4386 CPU 和一些 1333-1600MHz RAM 是完全可以实现的。但是,您可以做一些事情来使其更好。例如,4386 的所有核心最大睿频为 3.1GHz,但是当其他 2 个核心 4 线程不那么繁忙时,它可以加速到 3.8GHz 在 2 个核心 4 线程上。由于这些 CPU 具有大量的线程并且可以消耗相当多的功率,我们可以简单地在启动时禁用一半的核心,并在节省电力的同时获得巨大的单线程提升。推荐的方法是使用 cpupower-gui-gitAUR。以 root 身份执行 cpupower-gui 以修改由 cpupower-gui.service 在启动时应用的默认配置文件。请参阅 cpupower-gui systemd units 以了解有关全局和用户配置的更多信息。

请记住,CPU 间通信会引入延迟,这通常是游戏不希望看到的,因此通常希望将所有游戏线程限制为在 CPU 0 上运行。请参阅 taskset(1) 以了解有关设置 CPU 亲和性的信息。

IPMI 模块

此主板支持 ASMB4 IPMI 模块。IPMI 模块的制造商 ROM 与 coreboot 存在轻微的不兼容性,从而阻止重启正常工作。存在一个开源的 IPMI 模块 ROM 替代品,称为 OpenBMC,但是编译极其困难,因为代码库已经很久没有更新了,并且它需要一个过时的 debian 版本才能编译。dasharo 的开发人员似乎对支持 KCMA-D8 感兴趣,因为他们已经维护和更新了他们对非常相似的 KGPE-D16 的 coreboot 和 OpenBMC 的实现,他们只需要社区的更多推动。如果 Dasharo 决定支持 KCMA-D8,那将是巨大的,因为 IPMI 模块具有正确控制风扇速度的能力,而不管操作系统的状态如何,这可以在不太可能发生的冻结事件中保护硬件免于过热,使 KCMA-D8 成为更传奇的 FOSS 主板。但是,他们拒绝回复任何关于此主题的电子邮件,因此这似乎不太可能。

libreboot 的创始人 Leah Rowe 对将 dasharo 移植到 KCMA-D8 表现出好奇。这将使更新版本的 coreboot 在 KCMA-D8 上运行,这也可能支持来自 dasharo 的 OpenBMC。请向 Leah 表示您的支持 😊