While searching for a quick method of checking a systems memory type, I stumbled upon the dmidecode tool. Dmidecode was able to pull all of the memory information from my motherboard. Including open memory slots and values of the occupied ones.

Usage

Usage: dmidecode [OPTIONS]

Options are:
-d, --dev-mem FILE     Read memory from device FILE (default: /dev/mem)
-h, --help             Display this help text and exit
-q, --quiet            Less verbose output
-s, --string KEYWORD   Only display the value of the given DMI string
-t, --type TYPE        Only display the entries of given type
-u, --dump             Do not decode the entries  
     --dump-bin FILE    Dump the DMI data to a binary file
     --from-dump FILE   Read the DMI data from a binary file
-V, --version          Display the version and exit

dmidecode run without any options will dump everything it can determine from the Desktop Management Interface (dmi). The output can be limited to a specific dmi type.

DMI Types

DMI TYPES
       The SMBIOS specification defines the following DMI types:
       Type   Information
       ----------------------------------------
          0   BIOS
          1   System
          2   Base Board
          3   Chassis
          4   Processor
          5   Memory Controller
          6   Memory Module
          7   Cache
          8   Port Connector
          9   System Slots
         10   On Board Devices
         11   OEM Strings
         12   System Configuration Options
         13   BIOS Language
         14   Group Associations
         15   System Event Log
         16   Physical Memory Array
         17   Memory Device
         18   32-bit Memory Error
         19   Memory Array Mapped Address
         20   Memory Device Mapped Address
         21   Built-in Pointing Device
         22   Portable Battery
         23   System Reset
         24   Hardware Security
         25   System Power Controls
         26   Voltage Probe
         27   Cooling Device
         28   Temperature Probe
         29   Electrical Current Probe
         30   Out-of-band Remote Access
         31   Boot Integrity Services
         32   System Boot
         33   64-bit Memory Error
         34   Management Device
         35   Management Device Component
         36   Management Device Threshold Data
         37   Memory Channel
         38   IPMI Device
         39   Power Supply
         40   Additional Information
         41   Onboard Device

Identify Memory Device

Using the -t option, I have queried the dmi for type “17” “Memory Device”.

$ sudo dmidecode -t 17
# dmidecode 2.10
SMBIOS 2.3 present.
Handle 0x0028, DMI type 17, 23 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: 0x0025
Total Width: 16 bits
Data Width: 16 bits
Size: 128 MB
Form Factor: RIMM
Set: 3
Locator: J7J1
Bank Locator: RIMM1
Type: Other
Type Detail: RAMBus
Speed: 400 MHz
Handle 0x002A, DMI type 17, 23 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: 0x0025
Total Width: 16 bits
Data Width: 16 bits
Size: 128 MB
Form Factor: RIMM
Set: 3
Locator: J7J2
Bank Locator: RIMM2
Type: Other
Type Detail: RAMBus
Speed: 400 MHz
Handle 0x002C, DMI type 17, 23 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: 0x0025
Total Width: 16 bits
Data Width: 16 bits
Size: 128 MB
Form Factor: RIMM
Set: 3
Locator: J8J1
Bank Locator: RIMM3
Type: Other
Type Detail: RAMBus
Speed: 400 MHz
Handle 0x002E, DMI type 17, 23 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: 0x0025
Total Width: 16 bits
Data Width: 16 bits
Size: 128 MB
Form Factor: RIMM
Set: 3
Locator: J8J2
Bank Locator: RIMM4
Type: Other
Type Detail: RAMBus
Speed: 400 MHz