Checking ECC RAM with Linux

Using dmidecode:

dmidecode -t memory | grep 'Physical Memory Array' -A7

Using ecc_check.c (source):

wget -O ecc_check.c
gcc ecc_check.c -o ecc_check

The program will output a few lines of text; of which only the values in the far-right column are relevant. The values in this column represent whether ECC is working or not and correlate to the following:

0: ECC disabled 1: ECC is active in I/O; ECC logic is not active in this case. 2: ECC is disabled in I/O, but ECC logic is enabled. 3: ECC active in both I/O and ECC logic

In other words, anything but a 3 in this column indicates that this program does not detect that ECC is working. Again, this method is only an indicator that ECC is working properly, not that is it not working.

Tools using EDAC:

sudo modprobe edac_core
# Kernel 3.17 will include support for all Xeon E3-12xx CPUs (such as 1225v3):
sudo modprobe ie31200_edac

Via sysfs:

ls -la /sys/devices/system/edac/mc/*

Using edac-utils:

# Install on Ubuntu/Debian:
apt-get install edac-utils
# On Arch Linux, you can get it from AUR:

edac-ctl --status
edac-util --verbose --status
edac-util --verbose

Using mcelog:

apt-get install mcelog
# on Arch Linux:
systemctl enable mcelog.service
systemctl start mcelog.service

# then
mcelog --client