With what command is possible know the mainboard requirements about the RAM?

For a computer and/or laptop used for developing and as server purposes, of course, it according with the hardware itself.

Question

With what command is possible know the mainboard requirements about the RAM? It such as:

  • DDR type
  • MHz
  • ECC or non-UCC
  • Buffered or Unbuffered

Goal

Confirm that all the Mobo requirements were matched by the installed RAM, according with my understanding the dmidecode command covers the current RAM installed.

Therefore, for example, about the MHz is need it to detect if the installed RAM, , is downgraded due if it has a higher frequency than the Mainboard’s requested. For example if the Mobo requests 1333MHz and the RAM has 1600MHz, so the latter is downgraded because the former only can work with 1333MHz.

1 Like

Hi Manuel,
Do you know the correct brand and model of the motherboard?

Jorge

Hello Jorge

Yes, it is for old notebook, sadly the info in the web is not detailed, and I want do RAM upgrade for other laptops HP, Toshiba and 2 MacBook Pro … I want absolutely sure the Info of the web (even when is not fully updated) is the same as Linux reports - it to buy the correct RAM for each one

1 Like

Hi Manuel,
I understand your concern.

I find it difficult to discuss this subject because, in my view, it’s quite complex.
As far as I know, the CPU limits the speed of the RAM.
Without knowing the CPU and motherboard, I can’t tell you the characteristics of your system. There may be a way to find out, but I don’t know.

DDR Type
This subject is easier.
The different DDRs have different numbers of pins and the key notch positions ares in a different place.

Please see the picture of DDR Key Notch Positions at this link:
DDR Key Notch Positions

ECC or non-ECC
I don’t have an opinion on this, but here are some links from RAM manufacturers on the subject:
ECC vs. Non-ECC MEMORY
ECC vs. non-ECC - What do I Have and Can I Mix?

Buffered or Unbuffered
I can’t help with this: I only use unbuffered RAM at home. I think buffered RAM is more commonly used on servers
Here are some links on the subject:
The Main Difference Between Buffered Ram and UnBuffered
What’s the difference between unbuffered and fully buffered memory?

I hope one of the forum members can answer your questions

Jorge

Hello Jorge

Huge thanks for all the valuable set of links … about the quote … well, I didn’t know that … But because the RAM is installed in the Mobo I assumed this one establishes the contraints of the RAM. Yes, I know the CPU is one among other chips included in the Mobo - so, again, I assumed the OS gets access to that setttings and contraints about the RAM and other components of the Mobo through some especial access of one of that Chips. Something like the Bios. Well always there is something to learn.

1 Like

As I mentioned in one of the other threads you started (this is the THIRD one) : it is EXTREMELY unlikely that you will have to concern yourself with ECC RAM - AFAIK (As Far As I Know) - there is no such thing as ECC SODIMM memory modules for laptops.

If you say it’s an old laptop - say older than 5 years, but no older than 10 years, it’s a safe bet it will be DDR3 SO-DIMMs, in some cases something else you will need to consider - are the slots LPDDR3 (“low power”). Having said that - there’s a risk also that the laptop you want RAM for is DDR4…

I have a Dell laptop, circa 2014, it only takes LPDDR3 modules, same thing for a Gigabyte Brix mini-PC (it’s like a NUC, takes laptop memory - and I can swap the RAM between the two of them).

Not sure about MacBooks however - I suspect they’re also LPDDR3… Although it might be a slightly different standard called DDR3L (don’t ask me the difference - I don’t know - never had an Intel CPU MacBook).

So - IGNORE ECC - you will be extremely unlikely to find this in laptop form factor size. If it even exists, you will probably find that it’s exponentially more expensive than Non-ECC RAM.

What you need to know is if the laptop can use ONLY LPDDR, or if it CANNOT use LPDDR, or - if it can use both!

I’ve bought LPDDR3 modules from typical corner store Computer outlets - and never had an issue with compatibility…

I’ve bought DDR4 SO-DIMM, and they just worked too… So I guess I’m lucky. e.g. my 2016/17 Dell can swap its DDR4 SO-DIMM modules with my 2020 ThinkPad E495…

2 Likes

I don’t have a Linux command to answer your question but I use the following 2 companies to advise me where and what to buy.

Both in case they offer different advice. Then may buy elsewhere depending on price.
I am not connected to either company it’s just they offer useful tools

3 Likes

If you already run Linux on your machine ,install sudo apt install inxi and thereafter run inxi when you will see which hardware components are installed

Frank in County Wicklow Ireland

1 Like

Interesting “alternative” solution.
Thanks for the suggestion.

1 Like

To answer this question at face value, dmidecode is probably the most detailed information you’re going to be able to pull out of a running system in a standardized fashion. I don’t have a system with any empty RAM slots (…I don’t think I’ve EVER had a system with empty RAM slots…), but for the LOADED slots in my (ca. 2011, HP-branded) desktop, it shows:


$ dmidecode

Processor Information Handle 0x0004, DMI type 4, 42 bytes Processor Information Socket Designation: SOCKET 0 Type: Central Processor Family: Core i5 Manufacturer: Intel ID: A7 06 02 00 FF FB EB BF Signature: Type 0, Family 6, Model 42, Stepping 7 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Voltage: 1.2 V External Clock: 100 MHz Max Speed: 3800 MHz Current Speed: 3100 MHz Status: Populated, Enabled Upgrade: Socket BGA1155 L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: 0x0007 Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 4 Core Enabled: 4 Thread Count: 4 Characteristics: 64-bit capable Multi-Core Execute Protection Enhanced Virtualization Power/Performance Control Handle 0x0004, DMI type 4, 42 bytes Processor Information Socket Designation: SOCKET 0 Type: Central Processor Family: Core i5 Manufacturer: Intel ID: A7 06 02 00 FF FB EB BF Signature: Type 0, Family 6, Model 42, Stepping 7 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz Voltage: 1.2 V External Clock: 100 MHz Max Speed: 3800 MHz Current Speed: 3100 MHz Status: Populated, Enabled Upgrade: Socket BGA1155 L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: 0x0007 Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 4 Core Enabled: 4 Thread Count: 4 Characteristics: 64-bit capable Multi-Core Execute Protection Enhanced Virtualization Power/Performance Control
Cache Information Handle 0x0005, DMI type 7, 19 bytes Cache Information Socket Designation: Not Specified Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Through Location: Internal Installed Size: 256 kB Maximum Size: 256 kB Supported SRAM Types: Unknown Installed SRAM Type: Unknown Speed: Unknown Error Correction Type: Parity System Type: Unified Associativity: 8-way Set-associative Handle 0x0006, DMI type 7, 19 bytes Cache Information Socket Designation: Not Specified Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Through Location: Internal Installed Size: 1 MB Maximum Size: 1 MB Supported SRAM Types: Unknown Installed SRAM Type: Unknown Speed: Unknown Error Correction Type: Single-bit ECC System Type: Unified Associativity: 8-way Set-associative Handle 0x0007, DMI type 7, 19 bytes Cache Information Socket Designation: Not Specified Configuration: Enabled, Not Socketed, Level 3 Operational Mode: Write Back Location: Internal Installed Size: 6 MB Maximum Size: 6 MB Supported SRAM Types: Unknown Installed SRAM Type: Unknown Speed: Unknown Error Correction Type: Single-bit ECC System Type: Unified Associativity: Other
Physical Memory Array Handle 0x000A, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 32 GB Error Information Handle: No Error Number Of Devices: 4 Handle 0x000B, DMI type 18, 23 bytes 32-bit Memory Error Information Type: OK Granularity: Unknown Operation: Unknown Vendor Syndrome: Unknown Memory Array Address: Unknown Device Address: Unknown Resolution: Unknown Handle 0x000C, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000CF8003FF Range Size: 3320 MB Physical Array Handle: 0x000A Partition Width: 1 Handle 0x000D, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00100000000 Ending Address: 0x0052E0003FF Range Size: 17120 MB Physical Array Handle: 0x000A Partition Width: 1
Memory Device #1 Handle 0x000E, DMI type 17, 34 bytes Memory Device Array Handle: 0x000A Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 2 GB Form Factor: DIMM Set: None Locator: DIMM1 Bank Locator: Type: DDR3 Type Detail: Synchronous Speed: 1333 MT/s Manufacturer: Kingston Serial Number: [REDACTED] Asset Tag: Part Number: KP223C-ELD Rank: 2 Configured Memory Speed: 1333 MT/s Handle 0x000F, DMI type 18, 23 bytes 32-bit Memory Error Information Type: OK Granularity: Unknown Operation: Unknown Vendor Syndrome: Unknown Memory Array Address: Unknown Device Address: Unknown Resolution: Unknown Handle 0x0010, DMI type 20, 35 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x0007FFFFFFF Range Size: 2 GB Physical Device Handle: 0x000E Memory Array Mapped Address Handle: 0x000C Partition Row Position: 1
Memory Device #2 Handle 0x0011, DMI type 17, 34 bytes Memory Device Array Handle: 0x000A Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: DIMM Set: None Locator: DIMM2 Bank Locator: Type: DDR3 Type Detail: Synchronous Speed: 1333 MT/s Manufacturer: Undefined Serial Number: [REDACTED] Asset Tag: Part Number: TEAMGROUP-UD3-1600 Rank: 2 Configured Memory Speed: 1333 MT/s Handle 0x0012, DMI type 18, 23 bytes 32-bit Memory Error Information Type: OK Granularity: Unknown Operation: Unknown Vendor Syndrome: Unknown Memory Array Address: Unknown Device Address: Unknown Resolution: Unknown Handle 0x0013, DMI type 20, 35 bytes Memory Device Mapped Address Starting Address: 0x00080000000 Ending Address: 0x0027FFFFFFF Range Size: 8 GB Physical Device Handle: 0x0011 Memory Array Mapped Address Handle: 0x000C Partition Row Position: 1
Memory Device #3 Handle 0x0014, DMI type 17, 34 bytes Memory Device Array Handle: 0x000A Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 2 GB Form Factor: DIMM Set: None Locator: DIMM3 Bank Locator: Type: DDR3 Type Detail: Synchronous Speed: 1333 MT/s Manufacturer: Nanya Serial Number: [REDACTED] Asset Tag: Part Number: NT2GC64B8HC0NF-CG Rank: 2 Configured Memory Speed: 1333 MT/s Handle 0x0015, DMI type 18, 23 bytes 32-bit Memory Error Information Type: OK Granularity: Unknown Operation: Unknown Vendor Syndrome: Unknown Memory Array Address: Unknown Device Address: Unknown Resolution: Unknown Handle 0x0016, DMI type 20, 35 bytes Memory Device Mapped Address Starting Address: 0x00280000000 Ending Address: 0x002FFFFFFFF Range Size: 2 GB Physical Device Handle: 0x0014 Memory Array Mapped Address Handle: 0x000C Partition Row Position: 1
Memory Device #4 Handle 0x0017, DMI type 17, 34 bytes Memory Device Array Handle: 0x000A Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: DIMM Set: None Locator: DIMM4 Bank Locator: Type: DDR3 Type Detail: Synchronous Speed: 1333 MT/s Manufacturer: Undefined Serial Number: [REDACTED] Asset Tag: Part Number: TEAMGROUP-UD3-1600 Rank: 2 Configured Memory Speed: 1333 MT/s Handle 0x0018, DMI type 18, 23 bytes 32-bit Memory Error Information Type: OK Granularity: Unknown Operation: Unknown Vendor Syndrome: Unknown Memory Array Address: Unknown Device Address: Unknown Resolution: Unknown Handle 0x0019, DMI type 20, 35 bytes Memory Device Mapped Address Starting Address: 0x00300000000 Ending Address: 0x004FFFFFFFF Range Size: 8 GB Physical Device Handle: 0x0017 Memory Array Mapped Address Handle: 0x000C Partition Row Position: 1

The CPU block doesn’t tell us much about memory requirements, but it does show clock rates and the all-important Upgrade: Socket BGA1155, which would be invaluable if looking for CPU upgrade options for an existing motherboard.

The cache info is merely a curiosity, since it’s all integrated with the CPU and can’t be tuned or upgraded.

The PMA block tells me that the system has four slots, each taking up to 8GB of non-ECC RAM (32GB total max capacity).

The device blocks show that I have, in order: 2GB, 8GB, 2GB, and 8GB of DDR3 RAM, all running at 1333 MT/s. The part numbers on the 8GB sticks show that they’re actually PC3-1600, but they’re running at PC3-1333 speeds either because that’s the speed of the 2GB sticks, or because the motherboard won’t go beyond PC3-1333. Heck, it even showed individual DIMM serial numbers (which I’ve redacted).

Things like CAS latency and all that jazz, you don’t get… but modern systems have gotten pretty good at autoconfiguring for that kind of stuff anyway. So it’s not like finding compatible RAM hinges on those kinds of tiny details — not anymore. (Definitely one of the things I do NOT have any nostalgia for.)

dmidecode spits out plenty more information beyond what I quoted here, unrelated to questions about RAM compatibility. Like, you get a list of every slot in the system, what its specs are, and whether it’s currently in use… every LED on the case, and what it’s for (but not whether it’s lit)… every internal fan header and power supply connector… and every single port directly attached to the motherboard is listed: any onboard video or network plugs, all the SATA ports (plus any legacy IDE/parallel/serial/etc…), each individual audio in/out plug, and of course the many, many, MANY USB ports.

(When you total up front-panel, rear-panel, and internal USB, on my system they range from Handle 0x0031 to Handle 0x003E, which if I haven’t forgotten how to do base-16 math is 14 USB connections — 10 of which account for the 6 rear-panel and 4 front-panel USB-A jacks.)

3 Likes

Thanks for the feedback

The part numbers on the 8GB sticks show that they’re actually PC3-1600, but they’re running at PC3-1333 speeds either because that’s the speed of the 2GB sticks, or because the motherboard won’t go beyond PC3-1333.

Your case happens the “undesired case #2” shown below

In general, It is my concern, I want the correct RAM to take all the capacity required by the Machine. So if it requires “1600” then the inserted RAM has “1600” too. It is ideal scenario.

So the two undesired scenarios are:

  1. The Machine requires “1600” but the put RAM has “1000” (sample number). So is not used “600”
  2. The Machine requires “1600” but the put RAM has “2000” (sample number). So is downgraded “400”

Heck, it even showed individual DIMM serial numbers (which I’ve redacted)

What shows the dmicode command? The current hardware of your ram running right? It should be theoretically about 1333 and not 1600. In other forums is not clear if is about the current hardware of the RAM itself (your 1600) or the current hardware recognized (1333) … it is problematic …

Thank You.

1 Like

Not always. There’s also an element of pragmatism involved. Like I bought those PC3-1600 sticks for this machine as an upgrade to the 2x2GB PC3-1333 sticks it came with. Why did I buy faster RAM than I needed, knowing it wouldn’t be run at full speed? Because it was CHEAPER than the equivalent PC3-1333 sticks!

4 Likes

The most important reason to do that “trick” is because you know that is possible do and expect that downgrade of capacity of the RAM … otherwise a hardware either could not startup or receive a temporal/permanent damage

1 Like

Not capacity, speed. The system gets 8GB of storage per DIMM, it just runs at slower than its maximum clock rate.

You can’t damage a system by underclocking something. Installing otherwise-compatible RAM that supports a faster clock rate than the system is always safe. (And if the RAM isn’t compatible, it’ll be notched differently and won’t fit in the slot.)

And like I said, these days manufacturers have solved the autoconfiguration problem, so there’s (no longer) any real worry about a motherboard rejecting RAM that supports higher clock rates than it runs at, or a module somehow failing to function properly if it’s running underclocked.

Which is why, as each generation/configuration of modules evolves, manufacturers tend to stop making/stocking anything but the fastest modules from each class. (That in turn drives the price down on those modules, so they end up as cheap or cheaper than even the ones rated for lower speeds.)

1 Like