Posted
Filed under Computer/Linux
EDAC이라는 kernel module을 이용하여 memory error 또는 fail를 체크할수가 있다.

우선 자신의 메인보드가 지원가능한지 체크를 해보자.

# lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)
00:01.2 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)

이것처럼 RAM memory controller가 두개 이상 있는경우 MCP55 controller를 사용하는것은 대게 AMD 64bit (AMD64 or Opteron)CPU를 사용하는 경우에 주로 사용되는 메인보드이다.

만약에 아래처럼 intel dual core 이상 quad core를 쓸지라도 Memory controller가 아래와 같으면 내가 해본 경험상으로 메모리 뱅크 문제여부를 모니터링 하기가 힘들다.
# lspci
00:00.0 Host bridge: Intel Corporation Server DRAM Controller (rev 01)
00:01.0 PCI bridge: Intel Corporation Server Host-Primary PCI Express Bridge (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)

그러나 Intel dual core 이상을 쓰는 메인보드일지라도 아래와 같은경우에는 메모리 뱅크 error 모니터링이 가능하다.
# lspci
00:00.0 Host bridge: Intel Corporation E7520 Memory Controller Hub (rev 0c)
00:00.1 Class ff00: Intel Corporation E7525/E7520 Error Reporting Registers (rev 0c)
00:01.0 System peripheral: Intel Corporation E7520 DMA Controller (rev 0c)

MCP55 Memory controller를 쓰는 경우에는 amd64_edac.ko module를 사용함으로서 가능하고
E7520 Memory controller를 쓰는 경우에는  e752x_edac.ko 와 edac_mc.ko module를 사용하므로서 가능하다.

만약 AMD 계열 MCP55를 쓴다면 edac 사이트에서 다운받아 패치를 하면 된다.
redhat 5.1 default 커널 2.6.18-53.el5에는 series.2.6.18를 패치하면 가능하고 2.6.26-1 바닐라 커널을 다운받아서 사용할경우에는 series.2.6.26를 패치하면 잘된다. menuconfig에서 EDAC 속에서 AMD64_OPTERON=m을 해줘야 한다.

만약에 intel cpu를 사용하면서 E7520 DMA controller를 사용한다면 redhat 5.1을 쓴다면 그냥 default 커널인 2.6.18-53.el5 에서 "modprobe e752x_edac"으로 module를 loading하면 해결된다.
2008/10/15 17:35 2008/10/15 17:35
[로그인][오픈아이디란?]