Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Why does Ubuntu 10.10 amd64 not addresses more of 3GB ram? Please if somebody knows about that, tell me the solution.

My machine is a Toshiba P205-S6287 Intel centrino duo 64 bits procesor and 4GB ram 667MHz.

share|improve this question
It's a mystery, can you report the output of uname -a, the output of free -m and also confirm that you have more than 3GB of ram active by looking at your dmidecode. –  Martin Owens -doctormo- Jan 8 '11 at 8:08
And are you sure you have 64bit version of Ubuntu. What does uname -a say? –  Vojtech Trefny Jan 8 '11 at 8:09
same problem, optiplex gx620 5 Gb Ram –  Knock_ Jan 12 '11 at 21:02

3 Answers 3

This is due to the Mobile Intel 945GM Express in your laptop.

I own a Thinkpad T60, which uses the same chipset. It was one of the first northbridges from intel for the Core2Duo 64-bit CPUs. They failed in designing it.

The chipset can only theoretically address 4GB of RAM, yet also has to address other hardware (I/O memory). It reserves the upper 1GB memory range for that. The 64bit logical memory address support in the Linux kernel doesn't help, because the mainboard and northbridge only provide for a 32bit physical address bus to the CPU. And there is no workaround.

There is a theoretical option in devising memory bank switching. Yet the kernel does not support it, nor would it make sense on the x86 architecture. The i810 memory controller of the 945GM is probably too lazy for that to make sense.

share|improve this answer

There are several possible reasons. One is that you are, in fact, not running the amd64 build. Another is that your motherboard and/or bios are broken and not reporting the correct amount of ram. Another is that you have video memory and other hardware resources taking up space in the 3-4 gb area of memory, and your motherboard/bios is incapable of hoisting the shadowed ram to higher addresses so that it can be accessed.

Figuring out which requires looking at your dmesg.

share|improve this answer

psusi is right.

I have the same situation here:

Although they call it "64Bit cpu" you can often not address 4GB+ memory.

Most old motherboard do only have 32Bit for the addresses and from this pool the graphics card needs to get their addresses too.

= 4GB - Graphicscard memory(1GB) = 3 GB.

I fear there is no possibility to fix this by patching or upgrading firmware of anything.

If you are interessted in detail i recommend: http://en.wikipedia.org/wiki/Physical_Address_Extension

share|improve this answer
Also: If at all possible, the normal 32 bit installer will automatically enable the Physical Address Extension kernel if needed, allowing you to use all your memory. –  Stefano Palazzo Jan 8 '11 at 17:15
As it is been notified by @StefanoPalazzo and others installing PAE kernel solves the issue Just search for PAE kernel in synaptic package manager and install: hailubuntu.blogspot.com/2010/09/ubuntu-detecting-less-ram.html –  wisemonkey Jan 23 '12 at 20:17
@wisemonkey: no an PAE kernel does not gave me the full 4GB. Because i already use an 64bit kernel and even the bios reports: 4GB total -> 3.2GB useable. –  aatdark Aug 9 '12 at 20:56
@aatdark: Does your BIOS setup have field "Shared video memory" ? If yes can you disable it (only recommended if you have discrete graphics card) but then again as you said if its old computer then complete memory is not addressable. –  wisemonkey Aug 11 '12 at 2:28
"The Intel Intel® 945 bases Chipsets provide a maximum address space of 4GB and does not support memory remapping. As parts of that address need to be reserved for other devices, you will not be able to use more than 3.2 GB of system memory with your current system configuration. No BIOS Update or 64 Bit operating system will ever change that. This is a chipset rather than a board or BIOS limitation." –  aatdark Aug 11 '12 at 20:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.