데비안 스퀴즈 (x64)를 실행 중입니다.
# uname -srvmo
Linux 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux
G31M-S 마더 보드 에 2 개의 호환 가능한 2GB DDR2 스틱이 있습니다. 최대 8GB를 지원합니다.
이것은 서버이기 때문에 그래픽에 관심이 없습니다. 그래서 가장 낮게 설정했습니다.
Internal Graphics Mode Select: Auto
Enabled, 1MB <--
Enabled, 8MB
DVMT Mode Select: Fixed Mode <--
Auto
DVMT/FIXED Memory: 128MB <--
256MB
그러나 Linux는 3.19GiB의 메모리 만 감지합니다.
# cat /proc/meminfo
MemTotal: 3350712 kB
...
상기 찾고 E820지도 :
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000cfdb0000 (usable)
[ 0.000000] BIOS-e820: 00000000cfdb0000 - 00000000cfdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000cfdc0000 - 00000000cfdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000cfdf0000 - 00000000cfe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
그리고 약간의 수학을하는 :
>>> ((0x9F800 - 0x10000) + (0xCF6B0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
3.240476608276367
우리는 거의 같은 대답을 얻습니다.
내가 무엇을 놓치고 있습니까?
"PCI 주소 공간"인수를 완전히 구매하지는 않습니다. 2GB 2 개 중 하나를 꺼내면 설정 화면에 2048MB가 표시됩니다.
# cat /proc/meminfo
MemTotal: 2058432 kB
1.96GB입니다.
다시 E820지도 :
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007fdb0000 (usable)
[ 0.000000] BIOS-e820: 000000007fdb0000 - 000000007fdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007fdc0000 - 000000007fdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007fdf0000 - 000000007fe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
그리고 수학은 ...
>>> ((0x9F800 - 0x10000) + (0x7fdb0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
1.9973125457763672
그래서 2GB / 2GB를 얻었습니다. /proc/cpuinfo
내 프로세서가 36 비트 물리적 주소 지정을 지원함을 보여줍니다. 2 ^ 36 = 64GB로, 가까운 곳에 있지 않습니다.
# ./smem -R 4G -w
Area Used Cache Noncache
firmware/hardware 843592 0 843592
kernel image 0 0 0
kernel dynamic memory 181116 134616 46500
userspace memory 287784 19736 268048
free memory 2881812 2881812 0
BIOS에서 메모리 다시 매핑이 켜져 있는지 확인하십시오 .
—
David Schwartz
@DavidSchwartz 나는 그것을 켜려고 시도했고 커널은 부팅시 당황했다. 그래도 라이브 CD로 시도해 볼 수 있습니다.
—
Jonathon Reinhart
@DavidSchwartz 당신은 절대적으로 맞습니다. 메모리 리매핑을 켜면 트릭을 수행 한 것 같습니다. 켜져 있지 않으면 Memtest86 +는 ~ 3300MB를보고합니다. 켜져 있으면 4086MB를보고합니다. 그 대답을한다면 기꺼이 받아들입니다.
—
Jonathon Reinhart