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 mainboardrequirements 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.
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
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.
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.
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…
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
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
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.)
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:
The Machine requires “1600” but the put RAM has “1000” (sample number). So is not used “600”
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 …
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!
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
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.)