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.