NDCTL-INJECT-SMART(1)

๐Ÿ’– ndctl-inject-smart(1) โ€” the ndctl manual's glow-up edition โœจ

okay bestie, welcome to the ndctl-inject-smart page, straight out of the ndctl Manual ๐Ÿซถ


๐ŸŒธ NAME ๐ŸŒธ

ndctl-inject-smart โ€” perform smart threshold/injection operations on a DIMM ๐Ÿ’…


โœจ SYNOPSIS โœจ

ndctl inject-smart <dimm> [<options>]

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

So like, every memory device that shows up in the ACPI NFIT table โ€” or honestly any other platform NVDIMM resource discovery mechanism that does the same job โ€” gets its own generic DIMM device object registered, and that object is named /dev/nmemX. one per device. cute, right? ๐ŸŽ€

And ndctl-inject-smart is the tool you use to set smart thresholds and inject smart attributes. that's the whole vibe. it's giving "pretend the hardware said this" energy ๐Ÿ‘‘


๐ŸŒˆ EXAMPLES ๐ŸŒˆ

Example numero uno โ€” set the smart controller temperature and the spares threshold for DIMM-0 to 32C, set the spares threshold to 8, and enable the spares alarm:

ndctl inject-smart --ctrl-temperature-threshold=32 --spares-threshold=8 --spares-alarm nmem0

Example numero dos โ€” inject a media temperature value of 52 and the fatal health status flag for DIMM-0:

ndctl inject-smart --media-temperature=52 --health=fatal nmem0

๐Ÿ’… OPTIONS ๐Ÿ’…

  • -b, --bus= โ€” a bus id number, or a provider string (like "ACPI.NFIT" bestie). it restricts the operation to the bus(es) you named. you can also pass the keyword all to say "no restriction whatsoever" โ€” but lowkey that's the exact same thing as just not passing a --bus option at all ๐Ÿ™ˆ
  • -m, --media-temperature= โ€” inject <value> for the media temperature smart attribute ๐ŸŒก๏ธ
  • -M, --media-temperature-threshold= โ€” set <value> for the smart media temperature threshold ๐Ÿ“
  • --media-temperature-alarm= โ€” enable or disable the smart media temperature alarm. the options are on or off. pick one, no in-between ๐Ÿ””
  • --media-temperature-uninject โ€” uninject any media temperature you previously injected. undo button, but make it smart ๐Ÿ’ซ
  • -c, --ctrl-temperature= โ€” inject <value> for the controller temperature smart attribute ๐ŸŒก๏ธ
  • -C, --ctrl-temperature-threshold= โ€” set <value> for the smart controller temperature threshold ๐Ÿ“
  • --ctrl-temperature-alarm= โ€” enable or disable the smart controller temperature alarm. options are on or off ๐Ÿ””
  • --ctrl-temperature-uninject โ€” uninject any controller temperature you previously injected ๐Ÿ’ซ
  • -s, --spares= โ€” inject <value> for the spares smart attribute ๐Ÿงฉ
  • -S, --spares-threshold= โ€” set <value> for the smart spares threshold ๐Ÿ“
  • --spares-alarm= โ€” enable or disable the smart spares alarm. options are on or off ๐Ÿ””
  • --spares-uninject โ€” uninject any spare percentage you previously injected ๐Ÿ’ซ
  • -f, --fatal โ€” set the flag to spoof fatal health status ๐Ÿ’€ (spoofing! it's pretend! the vibes are fake!)
  • --fatal-uninject โ€” uninject the fatal health status flag ๐Ÿ’ซ
  • -U, --unsafe-shutdown โ€” set the flag to spoof an unsafe shutdown on the next power down โšก
  • --unsafe-shutdown-uninject โ€” uninject the unsafe shutdown flag ๐Ÿ’ซ
  • -N, --uninject-all โ€” uninject all possible smart fields/values, and it does NOT care whether they were previously injected or not. scorched earth, but make it tidy ๐Ÿ”ฅ
  • -v, --verbose โ€” emit debug messages for the error injection process, for when you simply must know everything ๐Ÿ‘€
  • -u, --human โ€” format numbers representing storage sizes, or offsets, as human readable strings with units instead of the default machine-friendly raw-integer data. and it also converts other numeric fields into hexadecimal strings ๐Ÿงฎ

Copyright ยฉ 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ๐Ÿซถ

no cap, the NO WARRANTY part is in all caps for a reason bestie โ€” read it, respect it ๐Ÿ’–

๐ŸŽ€ SEE ALSO ๐ŸŽ€


and that's the whole page, slay โœจ this was ndctl, dated 2026-07-07, and you absolutely ate reading all of it ๐Ÿ’…๐Ÿฆ‹๐ŸŒธ periodt ๐Ÿ’–

๐Ÿ“ฆ where this page comes from