64-bit – Fix 13.10 Showing 1GB Less RAM Than 13.04

13.1064-bitkubuntulubuntuxubuntu

Multiple 64-bit versions (Kubuntu, Lubuntu and Xubuntu) once installed on my ThinkPad R60 show 3GB of RAM, not the correct 4GB of RAM. Last week with 13.04, I had 4GB of RAM (which matches the BIOS) and this week I have 3GB available. Inquiring minds want to know. Details follow:

Linux R60 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
r60

free -m reports:

_             total       used       free     shared    buffers     cached
Mem:          3001        854       2146          0         22        486
-/+ buffers/cache:        346       2655
Swap:            0          0          0

. . . . . .

lshw shows:

description: Notebook
product: 9459AT8 ()
vendor: LENOVO
version: ThinkPad R60/R60i
serial: redacted
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall32
configuration: administrator_password=disabled boot=normal chassis=notebook family=ThinkPad R60/R60i frontpanel_password=unknown keyboard_password=disabled power-on_password=disabled uuid=126E4001-48CA-11CB-9D53-B982AE0D1ABB
*-core
description: Motherboard
product: 9459AT8
vendor: LENOVO
physical id: 0
version: Not Available
*-firmware
description: BIOS
vendor: LENOVO
physical id: 0
version: 7CETC1WW (2.11 )
date: 01/09/2007
size: 144KiB
capacity: 1984KiB
capabilities: pci pcmcia pnp upgrade shadowing escd cdboot bootselect socketedrom edd acpi usb biosbootspecification
{snip}
*-memory
description: System Memory
physical id: 29
slot: System board or motherboard
size: 4GiB
*-bank:0
description: SODIMM DDR2 Synchronous
physical id: 0
slot: DIMM 1
size: 2GiB
width: 64 bits
*-bank:1
description: SODIMM DDR2 Synchronous
physical id: 1
slot: DIMM 2
size: 2GiB
width: 64 bits

dpkg -l linux-* returns:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version                                 Description
+++-======================================-=======================================-==========================================================================
un  linux-doc-3.2.0                        <none>                                  (no description available)
ii  linux-firmware                         1.79.6                                  Firmware for Linux kernel drivers
ii  linux-generic                          3.2.0.52.62                             Complete Generic Linux kernel
un  linux-headers                          <none>                                  (no description available)
un  linux-headers-3                        <none>                                  (no description available)
un  linux-headers-3.0                      <none>                                  (no description available)
un  linux-headers-3.2.0-23                 <none>                                  (no description available)
un  linux-headers-3.2.0-23-generic         <none>                                  (no description available)
ii  linux-headers-3.2.0-52                 3.2.0-52.78                             Header files related to Linux kernel version 3.2.0
ii  linux-headers-3.2.0-52-generic         3.2.0-52.78                             Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
ii  linux-headers-generic                  3.2.0.52.62                             Generic Linux kernel headers
un  linux-image                            <none>                                  (no description available)
un  linux-image-3.0                        <none>                                  (no description available)
ii  linux-image-3.2.0-52-generic           3.2.0-52.78                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-generic                    3.2.0.52.62                             Generic Linux kernel image
un  linux-initramfs-tool                   <none>                                  (no description available)
un  linux-kernel-headers                   <none>                                  (no description available)
un  linux-kernel-log-daemon                <none>                                  (no description available)
ii  linux-libc-dev                         3.2.0-52.78                             Linux Kernel Headers for development
un  linux-restricted-common                <none>                                  (no description available)
ii  linux-sound-base                       1.0.25+dfsg-0ubuntu1.1                  base package for ALSA and OSS sound systems
un  linux-source-3.2.0                     <none>                                  (no description available)
un  linux-tools                            <none>                                  (no description available)

Best Answer

You're measuring apples and oranges.

Your kernel still sees 4 gigs of RAM. free only returns map-able RAM. You have 1 Gig of RAM that can not be accessed. This can happen because of several things, but I would guess that the update updated video drivers and that your card is "using" part of that RAM.

You may want to check that your RAM is not "marked bad" with something like BadRam.

Finally you may want to look (though I don't think this is it) to make sure the kernel isn't mapping RAM in an odd way.

cat /var/log/dmesg | grep -a 40 "BIOS-provided physical RAM map:"

should get you started down this path. Though you may try just loading the older kernel if you did an update and see.

Basically you need to figure out where the missing memory is. It's there, your system sees it, it's just mapped to something different then your used to.

Related Question