28

I have an Asus G50vt-x5 laptop with 4GB of RAM installed. But Ubuntu 10.10 shows only 3GB of RAM. Why is it only showing 3GB of RAM instead of the full 4GB? output of free command is :

neal@ubuntu:~$ free
             total       used       free     shared    buffers     cached
Mem:       3095668    2972784     122884          0     747996    1590044
-/+ buffers/cache:     634744    2460924
Swap:            0          0          0
2
  • Just for the curious among us, can you post the output of the free command?
    – arrange
    Mar 27, 2011 at 16:31
  • see also this answer
    – Takkat
    Mar 27, 2011 at 16:37

6 Answers 6

40

You can install 64bit version, but if you don't want to do this, you can install PAE (Physical Address Extension) enabled kernel on the 32-bit version.

After 10.04, Ubuntu automatically installs the PAE enabled kernel if it detects more than 3 Gb of memory. But ubuntu wiki says:

In the case of the liveCD, a working network connection is required, since the PAE enabled kernel packages are not present on the CD.

So I guess you installed Ubuntu using CD without an internet connection.

Try this:

sudo apt-get install linux-generic-pae linux-headers-generic-pae


What is PAE?

Physical Address Extension is a technology which allows 32 bit operating systems to use up to 64 Gb of memory (RAM), something which is normally achieved by switching to a 64 bit system. PAE is supported on the majority of computers today and it is an easy procedure to enable it in Ubuntu, if it is not already. To check if your processor supports PAE, try

grep --color=always -i PAE /proc/cpuinfo

In general, a proper 64 bit system is recommended if you have 4 Gb or more memory and/or want to get the full benefit of the 64 bit architecture (see 32bit_and_64bit), but in some cases making a complete switch to 64 bit is not desirable, and using PAE can be a viable compromise.

It should be noted that there is no Virtual Address Extension. i.e. The applications still get the same amount of virtual memory since the Virtual addresses are still 32 bits while the Physical Addresses are of 36 bits. Therefore PAE is not at all equivalent to a 64 bit system.

4
  • 1
    Any performance overheads?
    – Ashfame
    Mar 27, 2011 at 17:06
  • but isn't 64-bit systems for AMD processors only?
    – Starx
    Jul 24, 2011 at 14:44
  • 1
    @Pedram thanks a lot! This should be the correct answer because it introduces another possibility of bypassing the limit without reinstalling the system. I installed those linux kernel packages and after reboot I have my 4GB of RAM available. Thanks a lot. Aug 16, 2011 at 16:38
  • Note that these days, Ubuntu did away with the non PAE 32 bit kernel.
    – psusi
    Feb 7, 2013 at 14:45
30

If you installed the 32-bit version of Ubuntu, it won't recognize over 4GB of memory. You will need to install the 64-bit version of Ubuntu for the system to recognize more than 4GB of memory.

See also:


Note that the standard now is for the Ubuntu images to build and ship with the PAE enabled kernel which allows the use of more than 4GB RAM on 32-bit systems. However, this requires the use of a PAE-capable processor in your system. If your system is sufficiently old, the PAE kernels will not work, and the above restriction of a 4GB memory limit will still stand.

15
  • 30
    Or the 32-bit PAE version of kernel.
    – arrange
    Mar 27, 2011 at 16:31
  • 2
    @aneal: In this situation Ubuntu won't use any amount of memory over 3GB.I added the reason to my answer.So you must install 64-bit version or PAE.
    – Pedram
    Mar 27, 2011 at 16:45
  • 2
    @EvilPhoenix: That's not strictly true, if they boot a 64bit livecd and install ubuntu by hand (aka debootstrap/cdebootstrap) their settings/files will be intact except of course /etc.
    – OneOfOne
    Mar 27, 2011 at 21:39
  • 2
    The limit of the non pae 32 bit kernel is 4gb, not 3.
    – psusi
    Mar 28, 2011 at 1:07
  • 2
    @psusi the maximum is 3.6 GB of memory of non-PAE kernels, also Thomas, take into account that Ubuntu now builds pae kernels for everything, there isn't a non-pae kernel in recent releases.
    – Braiam
    Aug 25, 2013 at 5:59
2

Open /var/log/dmesg/dmesg and look for the section near the beginning that looks like this:

[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009d800 (usable)
[    0.000000]  BIOS-e820: 000000000009d800 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)

Post that section for detailed analysis. Also look for another line a little further down like this:

[    0.000000] Memory: 4019820k/4972544k available (5694k kernel code, 798616k absent, 154108k reserved, 2514k data, 944k init)

Often times there are things like video memory taking up space in the 3-4 gb area. On some systems that memory is simply lost. On others, it can be remapped, often above the 4gb mark, which you need either the pae or 64bit kernel to access.

1
  • 2
    Just wanted to comment that I have an Asus board that lost 1GB of memory, even after installing 64bit. I had to enable remapping in the bios, as alluded to in this answer.
    – user1974
    Apr 21, 2011 at 23:33
1

You have three solutions, two of which have already been suggested:

  • install a 64-bit kernel on your i386 installation; on Debian it's only a matter of installing kernel-image-2.6-amd64-k8 and amd64-libs
  • install a 32-bit kernel with PAE activated
  • reinstall a complete 64-bit system
4
  • but isn't 64-bit systems for AMD processors only?
    – Starx
    Jul 24, 2011 at 14:44
  • No, Intel adopted the amd64 instruction set when its Itanium series failed and it's become the de facto standard. Jul 24, 2011 at 20:43
  • I got Intel core i 7 720 qm. Will it run there?
    – Starx
    Jul 24, 2011 at 21:00
  • Yes. See a list of compatible Intel CPUs here: en.wikipedia.org/wiki/X86-64#Intel_64_implementations Jul 25, 2011 at 20:18
0

Rum memtest ("Test memory") from the boot menu (or the installation medium) if the first screen reports less than your 4Gb, upgrade (Flash *ROM) your BIOS.

Run sudo lshw to determine the model of your motherboard, then head up to vendor's site and DL tje latest BIOS.

0

I know this is a bit too localised, but the dedicated question was marked as duplicated and now redirects to this one.

For Dell XPS 13 L321X users, there is a BIOS update that introduced this issue/feature. So if you want to retrieve your 4G of RAM, you need to downgrade to A04 BIOS. There are two topics mentioning this issue on the Dell community:

  1. Dell XPS 13 3.3GB Available Memory out of 4GB
  2. XPS 13 Ultrabook - 690 MB Hardware Reserved RAM

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .