Tag Archives: synology

Synology DS923+ DSM Memory Compatibility Warnings

Synology’s OS warns when encountering untested memory configurations on most newer hardware, and the only configurations that are tested are the official expansion modules (which actually ship different chips depending on availability) D4ES02-4G, D4ES02-8G, and D4ES02-16G.

They ship and update a list of the compatible modules in /var/lib/memory-compatibility/ds923+_mem_host.db which is just a (compacted) JSON file (which can be pretty-printed using jq . ds923+_mem_host.db):

{
  "success": 1,
  "list": [
    {
      "model_number": "Blacklist",
      "recommend": true,
      "manufacturer": "[\"0198\",\"Kingston\",\"014F\",\"Transcend\"]"
    },
    {
      "model_number": "D4ES02-4G",
      "recommend": true,
      "part_number": "M4DE-4GSSPC0M-FA14",
      "manufacturer": "[\"86F1\",\"Innodisk\"]",
      "rank": "1",
      "speed": "3200"
    },
    {
      "model_number": "D4ES02-8G",
      "recommend": true,
      "part_number": "AD4B320038G22 BSSC",
      "manufacturer": "[\"86F1\",\"Innodisk\",\"04CB\",\"Adata\"]",
      "rank": "1",
      "speed": "3200"
    },
    {
      "model_number": "D4ES01-16G",
      "recommend": true,
      "part_number": "M4DE-AGS2PC0M-AA14",
      "manufacturer": "[\"86F1\",\"Innodisk\"]",
      "rank": "1",
      "speed": "3200"
    }
  ],
  "nas_model": "ds923+"
}

I’ve bought two Kingston KSM26SES8/16HC modules, since they were reasonably cheap. They work fine but cause said memory warning, since they’re not one of the configurations shipped as official memory expansions. But we can just edit the compatibility database to make that warning go away. To do that properly, we need the part_number of our memory modules, for which we use dmidecode -t memory:

Handle 0x001F, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x001E
	Error Information Handle: 0x0022
	Total Width: 72 bits
	Data Width: 64 bits
	Size: 16384 MB
	Form Factor: SODIMM
	Set: None
	Locator: DIMM 0
	Bank Locator: P0 CHANNEL A
	Type: DDR4
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 2667 MT/s
	Manufacturer: Kingston
	Serial Number: XXXXXXXX
	Asset Tag: Not Specified
	Part Number: 9965787-004.A00G    
	Rank: 1
	Configured Memory Speed: 2400 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V

And with that, we can add a new compatible module to the database:

    {
      "model_number": "D4ES01-16G*",
      "recommend": true,
      "part_number": "9965787-004.A00G",
      "manufacturer": "[\"Kingston\"]",
      "rank": "1",
      "speed": "3200"
    }

And after a reboot, no more warnings! Note that DSM occasionally updates this .db file, so you may want to keep both a backup of the original file as well as your changes, so you can easily reapply them after an update.