4

Installed Ubuntu on a nice little asus CN60 chromebox via this method (real hardware, not virtualized) and it's been running great for a while. I wanted to install some additional RAM recently and that's when I noticed some weirdness with the RAM sizes listed.

dmidecode shows this listing, correctly identifying the size of the two RAM sticks installed:

# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0006, DMI type 17, 40 bytes
Memory Device
    Array Handle: 0x0005
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 4096 MB
    Form Factor: SODIMM
    Set: None
    Locator: Channel-0-DIMM-0
    Bank Locator: BANK 0
    Type: DDR3
    Type Detail: Synchronous
    Speed: 1600 MHz
    Manufacturer: Unknown (0)
    Serial Number: None
    Asset Tag: Not Specified
    Part Number: Not Specified
    Rank: 1
    Configured Clock Speed: 1600 MHz
    Minimum Voltage: Unknown
    Maximum Voltage: Unknown
    Configured Voltage: Unknown

Handle 0x0007, DMI type 17, 40 bytes
Memory Device
    Array Handle: 0x0005
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 8192 MB
    Form Factor: SODIMM
    Set: None
    Locator: Channel-1-DIMM-0
    Bank Locator: BANK 2
    Type: DDR3
    Type Detail: Synchronous
    Speed: 1600 MHz
    Manufacturer: Unknown (0)
    Serial Number: None
    Asset Tag: Not Specified
    Part Number: Not Specified
    Rank: 2
    Configured Clock Speed: 1600 MHz
    Minimum Voltage: Unknown
    Maximum Voltage: Unknown
    Configured Voltage: Unknown

Whereas free -m and htop both show a lot less:

              total        used        free      shared  buff/cache   available
Mem:           1990         252        1434           3         303        1574
Swap:          3971           0        3971

What's going on here? Am I missing some setting for redirecting RAM?

Update Additionally, setting mem=12G in grub while booting doesn't change this behavior.

uname -a outputs the following:

Linux chromebox 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Nick
  • 93

1 Answers1

4

According to the specifications of your system, it is limited to 4GB RAM.

dmidecode shows the correct size of the memory modules, because the size is read from the EEPROM on the memory modules, and is correctly reported by the BIOS. Then the BIOS limit the usable size to what this machine is able to handle.

This is most likely a hardware limitation of the motherboard. Supporting bigger RAM requires more address lines to be connected on the motherboard (from the CPU to the RAM slots). More lines on a PCB means making either the PCB bigger or with tighter tolerances, resulting in an extra cost.

Even in desktop computers, this is not really uncommon. My Dell OptiPlex 7040 is limited to 16GB even it's processor (core i7-6700) can manage up to 64GB RAM. Now this 64-bit CPU is limited to 64GB RAM for exactly the same reason your motherboard is limited to 4GB! More lines in the silicon, means extra cost...

In your case, you see 2GB of RAM instead of the 4GB specified maximum, because of a difference in the number of row and columns addresses supported or because of a BIOS bug. I've already seen computers simply refusing to boot, even in the BIOS, just beeping or blinking because an unsupported memory module was plugged-in.

About the 16 GB RAM (and relationship to Core i3)

Searching the internet, I could not find any reference for the 16 GB RAM support, but I found many references worded like that:

ASUS Chromebox CN60 M075U - Core i3 4010U 1.7 GHz - 4 GB - 16 GB

Unfortunately, 16 GB in this description is not the maximum RAM size, it's the SSD size, and I think this wording caused confusion.

pim
  • 3,350