64ビットLinuxカーネルでは、2つの2 GBメモリしか利用できません

64ビットLinuxカーネルでは、2つの2 GBメモリしか利用できません

Debian Linux(Wheezy)を64ビットカーネルとユーザーモードのバイナリにアップグレードし、PAEなしでシステムで4 GBのメモリを使用しようとしました。

カーネルとパッケージの交換はうまくいくようですが、期待した結果は得られません。

mymachine:~# dmesg | grep Memory
[    0.000000] Memory: 2007644k/2062784k available (3494k kernel code, 452k absent,
                       54688k reserved, 3042k data, 476k init)

mymachine:~# uname -m
x86_64

原因は何ですか?メモリをもっと拡張したいのですが、現在4GBも使えなくなったらちょっと役に立たなかったんです:)

lshw出力は、メモリが正しく取り付けられていることを示しています。

 *-memory
      description: System Memory
      physical id: 29
      slot: System board or motherboard
      size: 4GiB
    *-bank:0
         description: DIMM DDR Synchronous 1333 MHz (0.8 ns)
         product: PartNum0
         vendor: Manufacturer0
         physical id: 0
         serial: SerNum0
         slot: DIMM A1
         size: 2GiB
         width: 64 bits
         clock: 1333MHz (0.8ns)
    *-bank:1
         description: DIMM DDR Synchronous 1333 MHz (0.8 ns)
         product: PartNum1
         vendor: Manufacturer1
         physical id: 1
         serial: SerNum1
         slot: DIMM B1
         size: 2GiB
         width: 64 bits
         clock: 1333MHz (0.8ns)

私のBIOSでメモリの再マッピングが有効になっています。

答え1

明らかに、マザーボードが2GBしかサポートしていないか、何か問題があるようです。 BIOSがカーネルに知らせるメモリの量については、カーネルブートメッセージのBIOS e820セクションを参照してください。

答え2

ハードウェアエラーかもしれません。少なくともこれが私がこの問題を経験している理由です。

  • このハードウェアエラーはエラーとして報告されず、カーネル(UbuntuのLinux 4.15 x64)ログに疑わしい内容はありません。

  • lshw(およびデュアルブートのWindows)は、インストールされている4 Gb RAM、2 Gb x 2を報告します。

ただし、free -mWindowsのタスクマネージャには2Gbしか利用できないRAMが表示されていることに加えて、BIOS-e820は以下も報告します。

BIOS-e820: [mem 0x0000000000100000-0x00000000784cefff] usable

(これは2Gb間隔です)

ハードウェア:個別に1つずつ挿入する場合、最初のDIMMは2Gbの合計メモリを提供し、他のDIMMは0Gbを提供します。

DIMM RAM接点をきれいにすることは解決策です:)

良い結末:システムを清掃して再接続すると4GBになります。

関連情報