You need to use biosdecode command line utility. Dmidecode is a tool or dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format. The output contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. This command works on Linux, UNIX and *BSD based computers.
How to check ram speed and type on Linux or Unix-like system:
- Open the terminal app or log in using ssh.
- Type the “sudo dmidecode --type 17” command.
- Look out for “Type:” line in the output for ram type and “Speed:” for ram speed.

Examples
Open a shell prompt and type the following command as root user:
$ sudo dmidecode --type 17
OR
$ sudo dmidecode --type 17 | more
Sample output:
# dmidecode 2.9
SMBIOS 2.4 present.
Handle 0x0018, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0017
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: J6H1
Bank Locator: CHAN A DIMM 0
Type: DDR2
Type Detail: Synchronous
Speed: 800 MHz (1.2 ns)
Manufacturer: 0x2CFFFFFFFFFFFFFF
Serial Number: 0x00000000
Asset Tag: Unknown
Part Number: 0x5A494F4E203830302D3247422D413131382D
Handle 0x001A, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0017
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: J6H2
Bank Locator: CHAN A DIMM 1
Type: DDR2
Type Detail: None
Speed: Unknown
Manufacturer: NO DIMM
Serial Number: NO DIMM
Asset Tag: NO DIMM
Part Number: NO DIMM
You can just grep speed and skip all other the details using the following syntax:
dmidecode --type 17 | grep -i speed |
Sample outputs:
Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns)
Say hello to lshw
You can use the following command too:
$ sudo lshw -short -C memory
Sample outputs:
/0/0 memory 64KiB BIOS
/0/55/45 memory 1MiB L2 cache
/0/55/46 memory 256KiB L1 cache
/0/55/47 memory 8MiB L3 cache
/0/48 memory 32GiB System Memory
/0/48/0 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/1 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/2 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/3 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)


37 comment
lol; i like you’re site and your howto’s very very much. However, now I know I have to follow your stuff with an unknown type of ram, at an unknown speed. lol
seriously, keep up the good work! :D
If only there was a way to see what rank it is too :(.
I’m using Ubuntu 8.10 alpha 3 32bits.
Using dmidecode I get the following results:
jp@jp-desktop810:~$ sudo dmidecode –type 17
[sudo] password for jp:
# dmidecode 2.9
SMBIOS 2.2 present.
Invalid entry length (0). DMI table is broken! Stop.
jp@jp-desktop810:~$ sudo dmidecode –type 17 | more
# dmidecode 2.9
SMBIOS 2.2 present.
Invalid entry length (0). DMI table is broken! Stop.
So, dmidecode is same version, SMBIOS is 2.2 instead of 2.4. And I didn’t get the information from dmidecode.
Juan,
You may need to report bug to Ubuntu team. There is not much we can do to fix this issue.
Mark,
ditto
I get only this:
# dmidecode 2.9
SMBIOS 2.3 present.
and no more info!
Tried both commands.
How can i get info like size, speed, type etc. ?
dmidecode –type memory
This should work as well :)
sajmon,
You can try using the following command combination and see if that works:
dmidecode |grep -A20 ^Memory
Gagan Brahmi,
Thanks, works well. :P
I am using Fedora 9. 2.6.25.14-108.fc9.i686
Intel(R) Pentium(R) 4 CPU 3.00GHz
Here is the dmidecode –type 17 output.
No type and speed info.
# dmidecode 2.9
SMBIOS 2.3 present.
Handle 0x0028, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: A0
Bank Locator: Bank0/1
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x0029, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A1
Bank Locator: Bank2/3
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x002A, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: A2
Bank Locator: Bank4/5
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x002B, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A3
Bank Locator: Bank6/7
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
What will be the problem?
Is this a white box?? That is what I can make out. Just try the following command to see the server model:
dmidecode –type system
or
dmidecode –type 1
Thanks A Lot for this information
Thank u So Much very useful tips..
Thank You very much. Keep this up.
Many thanks – useful tip!
Awesome dude…
Thanks for the post! This helped me out with a production server I couldn’t turn off. :)
I have the same problem. Speed : Unknown.
Running Ubuntu 9.04.
I get the following:
$ sudo dmidecode –type 17 | more
bash: $: command not found
[root@localhost bob]# demidecode –type 17
bash: demidecode: command not found
[root@localhost bob]# demidecode -type system
bash: demidecode: command not found
You show the command you type as:
[root@localhost bob]# demidecode –type 17
bash: demidecode: command not found
Yet the command should be:
[root@localhost bob]# dmidecode –type 17
Note the misspelling… the command is ‘dmidecode’ not ‘demidecode’.
Hi
Thanks for your good article
Unfortunately dmidecode can not give correct information about my memory!!
I have 4Gig DDR3 but dmideocde can not determine type my ram,and shoe “type= other” and “speed: 667Mhz”.
But speed of my ram is 1333 MHz.
Thanks for nay help or guidance
@nima
DDR = Double Data Rate
so if a clock speed of 667Mhz is displayed the data rate speed is: 1334Mhz
Hi
@munzli
Thanks for your reply
According to wikipedia http://en.wikipedia.org/wiki/Ddr3 :
DDR3 modules can transfer data at a rate of 800–2133 MT/s using both rising and falling edges of a 400–1066 MHz I/O clock. Sometimes, a vendor may misleadingly advertise the I/O clock rate by labeling the MT/s as MHz.
1333 is data rate not clock rate :P
I addition wikipedia web page, there is one good table for comparing.
Thanks again.
Thanks you for you information.
It is very very useful.
^^
Thanks for the tip! Knew this would be out there somewhere for a Linux machine since it can pretty much tell you every thing you want to know about your equipment. Glad there are people to pass on help.
Thanks!
It was very helpful dmicode –type 17
:)
Cheers
1333MHz PC3-1066 DDR3 DIMM Desktop Memory KVR1333D3N9K2/4G (Electronics) I scuuessfclly paired these sticks with Kingston KVR1333D3K2/4GR from another retailer in a dual-channel RAM configuration. So that makes a total of 4 sticks, 8 GB. In order to take advantage of this much memory, I’m running a 64-bit operating system (as opposed to a 32-bit one). These are DDR3 memory sticks, so be sure you have an AM3 motherboard if you like AMD processors, or whatever on the Intel side handles DDR3 if you go for Intel processors.
I typed: sudo dmidecode –type 17
and received information that the speed of my RAM is unknown. Here is the output:
Any ideas would be appreciated?
Superb. Thank you!
awesome man ! great tricks
The ram in one of my workstations shows:
Total Width: 72 bits
Data Width: 64 bits
Type Detail: Synchronous Unbuffered (Unregistered)
I imagine that the 72 vs 64 means it’s ECC but the type detail means “unregistered.”
This seem right?
On SalixOS dmidecode as in the article but with type 16 gave me the maximum amount of RAM that could be installed, handy, as HP’s own support page had misleading info.
Also, dmidecode > /home/usernamedude/Documents/dmi.txt writes a WHOLE LOT OF INFO to a text file in the given path.
Thanks for the article, this was really helpful.
FWIW, this only works on Intel-based Linux. There is no equivalent I could find for my RaspberryPi box.
Yes, but have you tried dmesg output?
Sure, but it’s not quite the same.
CoreFreq shows in a console UI the DRAM CAS & others timings , but also its frequency and the Bus speed, all queried from the chipset.
CoreFreq is on the
dmidecode is notorious for being incorrect, it might be better know but historically it lied, a lot. But there’s a chance you can talk to the eeprom on the dimms directly by using decode-dimms. It’s in the i2c-tools package in Debian. You’ll need to load the eeprom module, but if you BIOS is cool it’ll pass the call through to the RAM itself and you can get the real info. If the BIOS isn’t cool, it’ll block the call and you won’t be able to talk to the chips :-/.