Linux/ECC
Error-Correcting Code Random Access Memory
ECC RAM (Error-Correcting Code Random Access Memory) is a specialized type of computer memory that can detect and automatically correct single-bit data corruption in real time.
ECC needs to BOTH be Supported and Enabled
You can have ECC RAM installed, but not enabled. So you need to both check to see if the system supports it, and if it is enabled in both BIOS and OS.
Check if ECC is supported: [1]
sudo dmidecode -t memory | grep -i ecc sudo lshw | grep -i ecc sudo dmesg | grep -i EDAC
Check if ECC is enabled in the OS: [2] [3]
For dmidecode, you must look for the “Error Correction Type” field in the output. For example, If ECC RAM is installed, you should see '“Error Correction Type: ECC” or “Error Correction Type: Single-bit ECC” or “Error Correction Type: Multi-bit ECC” for the corresponding memory module(s) installed in the system.
for dmesg edac, look for "ecc RAM"
Python Check Script
Well, I was going to wait until tomorrow to do this, but when I get an itch, I have to scratch it. :-D I successfully ported the ecc_check C program to python, and it works perfectly. Here's what it gives me on my FreeNAS system:
5004-5007h: 20 0 62 3 5008-500Bh: 20 0 62 3The last byte can be decoded as such (according to this thread)
According to Intel's datasheet: 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 logicSo it seems I am running with ECC.
You can grab the python code here: http://pastebin.com/sxd7QcYj
If somebody doesn't beat me to it, I'll make another thread dedicated to the python version of this code tomorrow, so it's not buried here.
Now off to bed for me.
Thanks, Steve