Re: BIOS erkennt 5GB, bigmem-Kernel aber nur 3,3GB
Matthias Meyer <matthias.meyer@gmx.li> wrote:
> Sven Hartge wrote:
>> Matthias Meyer <Matthias.Meyer@gmx.li> wrote:
>>> Ich habe einen Compaq DC7600 mit Intel C2D 2x2.80GHz
>>> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
>>> mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
>>> constant_tsc pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr lahf_lm
>>> address sizes : 36 bits physical, 48 bits virtual
>>
>>> und Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub
>>> (rev 02)
>>
>>> Obwohl das BIOS 5GB erkennt, werden vom 2.6.32-5-686-bigmem Kernel nur
>>> 3,3GB erkannt.
>>> # grep -i mem /var/log/dmesg
>>> [ 0.000000] Linux version 2.6.32-5-686-bigmem (Debian 2.6.32-35)
>>> [ (dannf@debian.org)
>>> (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jun 13 05:03:09 UTC 2011
>>> [ 0.000000] initial memory mapped : 0 - 01a00000
>>> [ 0.000000] init_memory_mapping: 0000000000000000-00000000377fe000
>>> [ 0.000000] 2431MB HIGHMEM available.
>>> [ 0.000000] 887MB LOWMEM available.
>>
>> Bitte mal die ersten 150 Zeilen von /var/log/dmesg posten, dort stehen
>> alle relevanten Speicher-Infos drin, vor allem das Mapping.
>>
>>> Das gleiche übrigens auch beim 2.6.32-5-amd64 Kernel.
>>
>> Dann riecht das nach defektem BIOS.
>>
>>> Weiß jemand was ich machen könnte um die vollen 5GB zu erreichen?
>>
>> BIOS auf den aktuellen Stand bringen wäre ein erster Schritt.
> Ich werd mich mal nach nem BIOS-Update umschauen.
Solltest du. Das BIOS berichtet dem Kernel nur von 4GB RAM.
,----
| [ 0.000000] BIOS-provided physical RAM map:
| [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
| [ 0.000000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
| [ 0.000000] BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
| [ 0.000000] BIOS-e820: 0000000000100000 - 00000000cf7cf300 (usable)
| [ 0.000000] BIOS-e820: 00000000cf7cf300 - 00000000d0000000 (reserved)
| [ 0.000000] BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
| [ 0.000000] BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
`----
Wie man sieht, ist bei 0x100000000 Schluss (wobei das eigentlich ein Bug
ist, es sollte 0x0ffffffff lauten, aber egal), was genau 2^32 Bytes RAM
sind.
Und das BIOS remappt den vom PCI-Raum überdeckten Bereich nicht nach
oberhalb von 4GB, das sähe dann z.B. so aus:
,----[mein Rechner, 4GB RAM]
| [ 0.000000] BIOS-provided physical RAM map:
| [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
| [ 0.000000] BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
| [ 0.000000] BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
| [ 0.000000] BIOS-e820: 0000000000100000 - 00000000bff70000 (usable)
| [ 0.000000] BIOS-e820: 00000000bff70000 - 00000000bff7e000 (ACPI data)
| [ 0.000000] BIOS-e820: 00000000bff7e000 - 00000000bffd0000 (ACPI NVS)
| [ 0.000000] BIOS-e820: 00000000bffd0000 - 00000000c0000000 (reserved)
| [ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
| [ 0.000000] BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
| [ 0.000000] BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
`----
Hier sieht man, wie von 0x100000000 - 0x140000000 ein überdeckter
Speicherberich umgemappt wurde, damit er verfügbar ist.
Dein Problem liegt also im BIOS und nicht im Kernel. Der macht nur, was
ihm gesagt wird.
S°
--
Sigmentation fault. Core dumped.
Reply to: