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
  • 7
  • Did you follow the manfacturer's recommendations on installing the ram sticks? Like maybe in adjacent banks, or largest stick in lowest bank, etc. – ubfan1 Nov 18 '17 at 00:28
  • I don't know if there are recommendations for how to install them but I have tried both sticks in both slots, and using just a single stick in the primary slot with the same results. – Nick Nov 18 '17 at 00:35
  • Are you running a 64 bit Ubuntu? Please post uname -a – ubfan1 Nov 18 '17 at 00:47
  • @ubfan1 I am, as noted in the title. I added `uname -a` to the question. – Nick Nov 18 '17 at 03:58
  • Is the CPU a celeron? Those spec a 4G max, did you try the 4G stick by itself? – ubfan1 Nov 18 '17 at 06:43
  • It's a Celeron 2955U - but specs everywhere list the max RAM as 16GB. I have tried the 4G stick alone and I still get 2G. – Nick Nov 19 '17 at 15:28
  • @ubfan1 furthermore, the specs for the 2955U say the max RAM is 16G. Not sure where you found that 4G number: https://ark.intel.com/products/75608/Intel-Celeron-Processor-2955U-2M-Cache-1_40-GHz – Nick Nov 19 '17 at 15:29
  • For the chromebox specs : https://www.cnet.com/products/asus-chromebox/specs/ Motherboard may offer less than the CPU, but this may be a hardware problem (broken board trace?). – ubfan1 Nov 19 '17 at 16:42
  • Or maybe the memory slots are limited to 2G apiece. – ubfan1 Nov 19 '17 at 16:50
  • 1
    I do not have Chromebox, but what its BIOS says about installed RAM? – N0rbert Nov 19 '17 at 19:52

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,240
  • 3
  • 20
  • 37
  • Interesting theory! There's a celeron and i3 model for the same model number (CN60) so I'm betting the i3 version is the one that I've seen that says 16GB supported. Not sure I catch the note on the 2GB vs 4GB though. Do you have a suggestion for diagnosing or fixing this case? – Nick Nov 20 '17 at 22:56
  • @Nick You would have to change the motherboard. Essentially, the only way to fix it is to buy a new machine. I have an old P4 that's limited to 1.5 GB RAM. Still running smooth, but boy would I like more! –  Nov 22 '17 at 12:06