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
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