The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html

Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.

kgpe-d16

form factor

From the pdf manual:

"To optimize the motherboard features, we highly recommend that you install it in an SSI EEB 1.1 compliant chassis."

purcahse failure / success tracking / history

purchase-failure-history

internal connectors

[problem] The red internal header that looks like a USB header is actually a firewire one. Do not plug in USB there, or you risk setting the motherboard on fire.

booting with Libreboot

Libreboot + GRUB

For the default Libreboot config to detect your boot partition, plug that ssd/hd into the first sata slot. It's the one closest to the front of the board, near the vertical usb port.

Getting to the GRUB menu takes about 3 minutes when there is 250 GB of ram installed. (tested with version 2016-09-07)

Libreboot + SeaBios

The seabios version works as well. Version 20160907 loads option roms.

Trisquel Install via netboot USB

Use live-usb-loader.sh to generate a bootable Trisquel image. Use the "install via command line" option. This works with SeaBios, but GRUB doesn't detect the USB drive for LibreBoot 20190907.

Graphical issues and workaround

When using Libreboot, there are issues with full resolution graphics. Using VGA resolution mode exclusively works around the issue. This issue seems to be limited to some monitors with some image positioning or color adjustment settings.

To work around this, add the following to your /etc/default/grub file:

GRUB_CMDLINE_LINUX_DEFAULT="[...] nomodeset vga=normal [...]"
...
GRUB_TERMINAL_OUTPUT="vga_text"

(Note that the during boot, there is a deprecation warning on boot saying to use set gfxpayload=vga=normal instead. I'm not sure whether it applies to Grub or Linux. info)

Then run update-grub and reboot.

See below for a full grub config with serial output.

grub config

Put this in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="[...] console=tty0 console=ttyS0,115200n8"

GRUB_TERMINAL_INPUT="serial console"
GRUB_TERMINAL_OUTPUT="serial console vga_text"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

For lods of grub debug output, put this in /etc/grub.d/40_custom:

set debug=all

Then run update-grub.

ixgbe issues with multiple cards

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1245938

Put this in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="[...] pci=realloc=off"

fan control

driver

sensors-detect is likely to mis-identify the fan driver.

$ modprobe w83795
$ cat /etc/modules
w83795

sensors

To see various sensor readings:

$ sensors

fan control

Note that the thinkfan configs we are using are managed via ansible. We deploy a script that generates the proper thinkfan configuration file, given that there are multiple pwm1 files in /sys/ with two sensor drivers loaded. The text below is a bit out of date.

The fancontrol program from lm_sensors doesn't support tracking more than two fans associated with one pwm device. This mobo (for the 2016-09-07 version of libreboot) has 5 fans controlled by pwm1. fancontrol is also unable to monitor multiple sensors in order to control one pwm device.

Thinkfan supports tracking multiple generic thermal hwmon sensors and controlling with pwm devices. Use thinkfan instead of lm_sensors/fancontrol.

$ cat /etc/thinkfan.conf

sensor /sys/class/hwmon/hwmon6/device/temp1_input
sensor /sys/class/hwmon/hwmon6/device/temp7_input
sensor /sys/class/hwmon/hwmon6/device/temp8_input

# these should change when pci/pcie cards are added or removed. otherwise, thinkfan will not start.
sensor /sys/module/k10temp/drivers/pci:k10temp/0000:00:18.3/hwmon/hwmon2/temp1_input
sensor /sys/module/k10temp/drivers/pci:k10temp/0000:00:19.3/hwmon/hwmon3/temp1_input
sensor /sys/module/k10temp/drivers/pci:k10temp/0000:00:1a.3/hwmon/hwmon4/temp1_input
sensor /sys/module/k10temp/drivers/pci:k10temp/0000:00:1b.3/hwmon/hwmon5/temp1_input


fan /sys/class/hwmon/hwmon6/device/pwm1

(0,     0,      48)
(40,    44,     52)
(85,    48,     56)
(130,   52,     60)
(175,   56,     64)
(210,   60,     68)
(255,   64,     32767)

^ Check to make sure that your devices are properly named I saw hwmon6 get renamed as hwmon0 and the other names shifted, across a reboot. Check for PCIe device scaled temperature sensors with this command:

ls /sys/module/k10temp/drivers/pci\:k10temp/0000\:00\:1*/hwmon/hwmon?/temp1_input

If thinkfan does not start due to changes in the PCIe card setup, or due to changes in the "hwmon?" number/path, then the fans should run at their previous speed if thinkfan has not been successfully run since boot up. This should be sufficient to avoid overheating if the thinkfan config breaks across boots, since it appears that Libreboot sets fans at full speed during the early boot process and they stay that way until something changes the fan speeds.

It's not clear what temp1 refers to, but it gets the hottest of the three sensors when the cpus are mostly idle. Thinkfan can monitor multiple sensors, so that shouldn't be a problem.

$ sensors
...
temp1:        +55.0 C  (high = +70.0 C, hyst = +65.0 C)
                       (crit = +85.0 C, hyst = +80.0 C)  sensor = thermal diode
temp7:        +23.2 C  (high = +70.0 C, hyst = +65.0 C)
                       (crit = +85.0 C, hyst = +80.0 C)  sensor = AMD AMDSI
temp8:        +21.5 C  (high = +70.0 C, hyst = +65.0 C)
                       (crit = +85.0 C, hyst = +80.0 C)  sensor = AMD AMDSI
...

Test, start and enable service:

$ thinkfan -n
...
^C

$ cat /etc/default/thinkfan
...
START=yes

$ /etc/init.d/thinkfan start
$ update-rc.d thinkfan enable