From Vikings Wiki
Jump to navigation Jump to search

The KGPE-D16's "little brother" with an ATX board format and AMD's C32 socket. Southbridge/northbridge and platform are similar to the KGPE-D16; both had been ported to coreboot with only small differences in source code.

It is useful for a router/firewall or secure applications device as it has an IOMMU and compatible low wattage CPU's such as the 35W Opteron EE series.


For general info regarding fancontrol please see fancontrol.

Limited thermal management with coreboot and coreboot-based BIOS replacements on KCMA-D8

TL;DR: If you have two HSFs installed they will always have the same fan speed. We recommend using the thermal sensors of the CPU in the back because it will be the warmest in most setups (fan blowing front to back).

The thermal management hardware of the KCMA-D8 is somewhat unusual and limited. It supports both 4-pin and 3-pin fans, however even though it contains a PWM controller with 8 hardware channels ASUS has only wired up two PWM channels to the fan connectors. To make matters worse, PWM channel 1 is routed to all 4-pin fans while PWM channel 2 is routed to all 3-pin fans.


Vikings is not testing against Libreboot because last release was on 7 Sept 2016. There has been a lot of progress on RAM initialization in upstream coreboot since then.

Tested working

The following RAM models and configurations have been tested and are know to work as of the stated version/Git revision.

Manufacturer Model Voltage Max tested RAM Size Speed Type ECC Populated Slots CPU Mainboard Type Firmware
Kingston KVR16E11/8 [1] (Discontinued) 1.5V 32GB 8GB DDR3-1600 Unbuffered Yes A2 / A1 / B2 / B1 1x 4284 KCMA-D8 Rev. 1.03, 1.02 coreboot-4.09, coreboot-4.11
Crucial CT102472BA160B.18FED 1.5V 8GB 8GB (not working with more than 1 module) DDR3-1600 Unbuffered Yes A1 1x 4284 KCMA-D8 Rev. 1.03, 1.02 coreboot-4.11
Crucial CT102464BD160B.C16FED [2] 1.35V 32GB 8GB DDR3-1600 Unbuffered No A1,A2,B2,B1 1x 4284 KCMA-D8 Rev. 1.02 coreboot-4.11
Transcend TS1GLK72V6H 1.5V 48GB 8GB DDR3-1600 Unbuffered Yes A2,A1,B2,B1;C2,C1 2x 4256EE KCMA-D8 Rev. 1.02 coreboot-4.11

Tested not working

Manufacturer Model Voltage RAM installed Size Speed Type ECC Populated Slots CPU Mainboard Type Firmware
Crucial CT102472BD160B.18FED [3] 1.35V 8GB 8GB DDR3-1600 Unbuffered Yes A2 1x 4284 KCMA-D8 Rev. 1.03, 1.02 coreboot-4.11
Kingston KVR16R11D4/16 1.5V 16GB 16GB DDR3-1600 Registered Yes A2 1x 4284 KCMA-D8 Rev. 1.02 coreboot-4.11
Hynix HMT31GR7BFR4C-H9 1.5V 8GB 8GB DDR3-1333 Registered Yes A2 1x 4284 KCMA-D8 Rev. 1.02 coreboot-4.11
Micron MT36KSF2g72PZ-1g6n1lf 1.5V 16GB 16GB DDR3-1600 Registered Yes A2 1x 4284 KCMA-D8 Rev. 1.03, 1.02 coreboot-4.11
Kingston KVR16R11D4/16HA 1.5V 16GB 16GB DDR3-1600 Registered Yes A2 1x 4284 KCMA-D8 Rev. 1.02 coreboot-4.11
Micron MT18KSF1G72AZ-1G6E1ZE 1.5V 8GB 8GB DDR3-1600 Unbuffered Yes A2 1x 4284 KCMA-D8 Rev. 1.02 coreboot-4.11

On-board SATA adapter

Although the KCMA-D8 board has 6 physical ports, only 4 of them will work.

Possibly your best bet is to look at the FSF's RYF page for Host Bus Adapters (HBAs). As of April 2021 it only has one card, one based on ASMedia ASM1061, a good cheap chipset but only has 2 ports. You could add port multipliers so you get 4 SATA drives on those 2 ports, but those tend to reduce reliability (the port multiplier is a separate card, another point of failure along the way), the port multiplier card has to be placed somewhere (and there is no convenient place in most casings for it), and the multiplied ports share the bandwidth of a single port. Do note that many cheap 4-port PCI-to-SATA boards are just the ASM1061 (or similar 2-port chipset) with two port multiplier chips on them, so go for the definitely FSF RYF-certified one instead.

A chipset I (User:Almkglor) have used is JMB585, which supports 5 SATA3 (6Gb/s) ports; I got a cheap card which uses this chipset, and it works with the Vikings KCMA-D8 I bought in early 2020. The mainboard cannot boot from any disks in the controller, but once booted, Linux-libre (5.10.29) could detect the disks on the board (they will be /dev/sde onwards if you already filled the 4 ports on the mainboard). Do note that the hwmon* ordering changed, so it may still require you to regenerate your fancontrol settings. Each port (should) get its own SATA3 bandwidth, though the JMB585 is constrained to using only 2x PCI-e lanes, and the KCMA-D8 board is constrained to PCI-e 2.0 at 4Gb/s per lane (JMB585 supports 3.0 at 8GB/s per lane), so expect a 8Gb/s bandwidth cap once you start using multiple drives simultaneously. An issue is that the card I got seems to delay boot by 10 seconds or so; I suspect there is proprietary firmware that is trying to display the logo of the card manufacturer, so if that is an issue, you should definitely use the FSF-RYF-approved card above instead. The JMB585 has a reputation of running hot, so you may need to add more case fans and pick a card that has a heatsink on the chip.

Avoid RAID controllers

Use HBAs instead and when a RAID is needed, use mdadm which implements a software RAID that can be managed with commonly available free/libre software. Hardware RAID introduce a single point of failure into the system, are hard to debug and require proprietary driver/firmware. If the Hardware RAID card fails and you cannot source a replacement of the exact same model, often the data on the disks cannot be recovered (except maybe for a RAID1). A free or open-source software RAID solution (mdadm, BTRFS, ZFS, bcachefs, etc) is superior.

Various notes about the KCMA-D8

Making GNU GRUB visible at boot time

Most distributions nowadays will install a graphical GNU GRUB menu, often with a logo of the distribution in the background. On the KCMA-D8 this graphical menu will not appear and you will just see a "Welcome to GRUB!" message, then, if the distribution puts a timeout for the first GNU GRUB menu item (most do, for a timeout of 5 seconds), suddenly it will switch to booting after the timeout.

What is actually happening is that the coreboot installed on the Vikings KCMA-D8 does not have support for the VGA graphical mode that GNU GRUB is trying to use. This is because support for VGA is via a binary blob with unknown sources, thus by policy Vikings does not include it. GNU GRUB will still poke into the VGA memory and display the GNU GRUB menu there, but because the VGA isn't enabled, you end up seeing nothing.

In order to get a boot menu, you need to set terminal_output console into your grub.cfg file somehow. This tells GNU GRUB to use the ordinary text mode. This will be in a low-resolution 80x25 text mode, but at least lets you actually see the boot menu. This is useful if the distribution supports some way to return to older versions of the distribution, or older kernels, in case of some unexpected incompatibility or bug.

The "correct" way to set this will vary depending on your OS distribution. On many Debian-based distributions, there will be a /etc/default/grub file that contains a GRUB_TERMINAL_OUTPUT= line, which you will have to uncomment and set to console. On others, the line will instead be GRUB_TERMINAL=, which you should set to console. On Guix System, the bootloader-configuration form should include a (terminal-outputs '(console)) field, but take note of bug#47442. Then run sudo update-grub to update the grub.cfg file, or sudo guix system reconfigure for Guix System. You could edit /boot/grub/grub.cfg directly, but that is likely to be overwritten when you update the kernel version.

ASUS PIKE 2008 SAS RAID card not working on KCMA-D8

ASUS PIKE 2008 cards (which are based on the Broadcom 2008 chipset) are reported to not work on the KCMA-D8 with coreboot. ASUS PIKE 2008 works on the KCMA-D8 with the vendor BIOS, however it's shown as unreliable in our lab; sometimes the HBA fell from the bus.

If PIKE 2008 (and other HBAs, e.g. from Broadcom) is something that's needed: They do work on the Vikings KGPE-D16 reliably.