Jump to content
From ArchWiki

This page describes the steps necessary to get most of the features of the ASUS KCMA-D8 working correctly. It assumes you have already successfully installed Arch Linux.

## BIOS

The manufacturers BIOS is outdated and suffers many issues such as not resuming from suspend in Arch Linux. To remedy this, coreboot, an open source BIOS, can be flashed to the board to replace the manufacturers BIOS completely. Coreboot 4.11_branch is the latest release to support the KCMA-D8, although no documentation exists showing that it can be successfully compiled, flashed and booted. Coreboot 4.11 has been documented to compile and boot. Alternatively, coreboot 4.11 has been patched and precompiled to work in a stable manner through Leah Rowe's efforts in a project called Libreboot. Release 20160907 is the most recent stable release of Libreboot available for the KCMA-D8, and release 20211122 is the most recent testing release, which are both available at their download page. As of June 2023, Libreboot is providing more ease of use, however, efforts and documentation into the compilation of coreboot 4.11_branch are needed for increased stability, security, and customization. A modernized compilation guide would also allow one to execute more payloads such as nvramcui, GRUB invaders, TINT, etc. Leah Rowe is currently displaying interest in further supporting this motherboard, so be sure to show her your support.

## Sensors

After running `sensors detect`, it loads the incorrect kernel driver `w83627ehf`. This can be remediated by replacing `w83627ehf` with `w83795` in lm_sensors configuration file:

    /etc/conf.d/lm_sensors

    HWMON_MODULES="w83795"

The enumerated hwmon symlinks located in `/sys/class/hwmon/` may vary in order after a power cycle, because the kernel modules do not load in a consistent order every boot. Something as simple as plugging in a ps4 controller could cause the order to change. Creating/editing `/etc/modules-load.d/modules.conf` in such a manner should create a defined order for the modules to load in, which should make the hwmon paths stay where they are and not change order upon reboot:

    /etc/modules-load.d/modules.conf

    # Load w83795 at boot
    w83795

This method may not always work consistently, and a more reliable method should be documented and implemented.

## Fan control

Fan control in this motherboard is quite unusual. There is 8 PWM fan control channels, however only 2 channels are used for controlling the fan speed of all 8 fan headers. One must use a combination of 4 pin fans (recommended for CPU), and 3 pin fans (recommended for case). One speed can be set for all of the 4 pin fans, and another speed can be set for all of the 3 pin fans. After running `pwmconfig`, `fancontrol.service` refuses to start. This is because fancontrol cannot associate more than 2 fans with PWM speed. Manually configure `/etc/fancontrol` so that `FCFANS` only has two inputs per device, and restart `fancontrol.service`. Here is an example configuration:

    /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=55 hwmon6/device/pwm1=35
    MAXTEMP=hwmon6/device/pwm2=75 hwmon6/device/pwm1=65
    MINSTART=hwmon6/device/pwm2=150 hwmon6/device/pwm1=150
    MINSTOP=hwmon6/device/pwm2=0 hwmon6/device/pwm1=0

## Booting from NVMe

The stock BIOS, as well as Libreboot 20160907, do not support booting directly from NVMe. However, booting from an NVMe drive installed in an M.2 to PCIe adapter can be attained by simply installing a SATA drive (or USB), and placing the `/boot` partition on it as well as the boot loader. This can be done while keeping the root filesystem `/` on the NVMe drive, allowing one to reap the rewards of booting from NVMe. Compiling coreboot with a newer version of SeaBIOS would remedy this and allow native NVME booting.

## IPMI Module

This motherboard supports an ASMB4 IPMI Module. The manufacturers ROM for the IPMI module has slight incompatibilities with coreboot as is, preventing restarts from working correctly. There exists an open source replacement for the IPMI module ROM called OpenBMC, however compilation is extremely difficult as the codebase has not been updated in a long time and it requires an antiquated version of debian to compile. The developers of Dasharo seem to have interest in supporting the KCMA-D8, because they already maintain and update their implementation of coreboot and OpenBMC for the very similar KGPE-D16, they just need the hardware, funds, and a little bit more of a push from the community. If Dasharo decides to support the KCMA-D8, this would be massive, because the IPMI module has the ability to control fan speeds properly regardless of the state of the operating system, which could save the hardware from overheating in the unlikely event of a freeze, making the KCMA-D8 an even more legendary FOSS motherboard. However, they have declined to reply to any emails regarding this topic so it seems unlikely.

Category:

- Mainboards and BIOS