NBFC(1)

πŸ“¦
version 0.5.4 Β· 2 versions
, in nixpkgs unstable

πŸ’– NBFC(1) β€” nbfc, the Notebook FanControl client πŸ’–

Hii bestie! Welcome to the NBFC(1) page from the General Commands Manual β€” it’s all about nbfc, and yes, it’s giving β€œcontrol your notebook fans” main character energy. πŸŽ€

✨ NAME ✨

nbfc β€” Notebook FanControl client

🌸 DESCRIPTION 🌸

This program is used to control the NoteBook FanControl service. That’s the whole vibe, lowkey. πŸ’…

πŸ¦‹ SYNOPSIS πŸ¦‹

🌟 SERVICE CONTROL COMMANDS 🌟

nbfc {start | stop | restart | status | config | set | sensors} [OPTIONS]

🌈 MISCELLANEOUS COMMANDS 🌈

nbfc {update | rate-config | test-config | acpi-dump | get-model-name | xml2json | support | warranty | faq | help} [OPTIONS]

πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” Show help message and exit.
  • --version β€” Show program’s version number and exit.

πŸ‘‘ COMMANDS πŸ‘‘

🫢 start [OPTIONS]

Start the service. Slay. ✨

  • -r, --read-only β€” Start in read-only mode.

πŸ’œ stop

Stop the service.

πŸ¦‹ restart [OPTIONS]

Restart the service. Iconic little refresh moment. πŸ”₯

  • -r, --read-only β€” Start in read-only mode.

🌸 status [OPTIONS]

Show the service status.

  • -a, --all β€” Show service and fan status (default).
  • -s, --service β€” Show service status.
  • -f, --fan FAN INDEX β€” Show fan status.
  • -w, --watch SECONDS β€” Show status periodically.
  • -j, --json β€” Use JSON output.
If -j/--json is specified, all other options are ignored. Periodt. πŸ’€

πŸŽ€ config [OPTIONS]

List or apply configs.

  • -l, --list β€” List all available configs.
  • -r, --recommend β€” List configs with a similar notebook model name.
  • -s, --set CONFIG β€” Set a config.

If CONFIG is auto, the service will attempt to automatically select a matching configuration.

CONFIG is the configuration filename without the .json extension, not the value of the NotebookModel field inside the configuration file. Bestie, this distinction matters. πŸ’…

🧚 set [OPTIONS]

Control fan speed.

  • -a, --auto β€” Set fan speed to profile-based control.
  • -s, --speed PERCENT β€” Set fan speed to PERCENT.
  • -f, --fan FAN INDEX β€” Fan index (zero based). If not given, all available fans are set to speed.

🌈 sensors {list | set | show} [OPTIONS]

Configure fan sensors.

list β€” List all available sensors and their temperature files.

show β€” Show all available fans and their sensor configuration.

set [OPTIONS] β€” Configure which sensors are attached to a fan.

  • -f, --fan FAN INDEX β€” Specifies the fan to configure.
  • -s, --sensor SENSOR β€” Sensor to add. Can be specified multiple times.
  • -a, --algorithm ALGORITHM β€” Algorithm (Average, Min, Max).
  • --force β€” Force applying a sensor if it could not be found.

πŸ“ update [OPTIONS]

Download new configuration files from the internet.

Downloaded files will be stored in /var/lib/nbfc/configs.

  • -p, --parallel NUM β€” Set the number of parallel downloads (default: 10).
  • -q, --quiet β€” Set quiet mode.

πŸ’€ rate-config [FILE] [OPTIONS]

Rates a configuration by analyzing whether it appears safe to execute on the current system.

By default, the DSDT and all SSDTs are read from /sys/firmware/acpi/tables.

  • -H, --full-help β€” Show help on how to interpret the results.
  • -a, --all β€” Rate all available configuration files.
  • -b, --bad β€” List only bad configs that are otherwise omitted.
  • -d, --dsdt FILE β€” Use an alternative DSDT file. Can be specified multiple times.
  • -D, --dsdt-dir DIRECTORY β€” Use an alternative DSDT directory.
  • -f, --fan-count NUMBER β€” Limit output to configurations with the specified number of fans.
  • -i, --input FILE β€” Read configuration files from FILE.
  • -j, --json β€” Use JSON output.
  • -m, --min-score SCORE β€” Set minimum rating threshold for displaying configurations (default: 9.0).
  • -n, --no-download β€” Don’t download configuration rules from the repository.
  • -r, --rules FILE β€” Use an alternative rules file.
  • -u, --unverified β€” Normally, only registers belonging to an EmbeddedControl operation region are taken into account when rating a configuration. With this option, registers from SystemMemory operation regions that may be accessible through the embedded controller are also considered. Their accessibility through the embedded controller cannot be guaranteed.
  • -q, --quiet β€” Do not print register ratings.
  • --print-rules β€” Print configuration rating rules.

πŸ”₯ test-config {run | evaluate} [OPTIONS]

Test configurations automatically.

⚠️ This command should only be used in conjunction with nbfc rate-config.

For example:

sudo nbfc rate-config -aqq | sudo nbfc test-config run

It should not be used to test arbitrary configurations.

run [OPTIONS] β€” Reads a list of configuration files from an input file (default: stdin).

Configurations will be loaded in read-only mode.

The notebook’s fans will be spinned up by stressing the CPU/GPU while reading back the fan speed for each configuration.

The result will be written to nbfc.test-config.result.json.

  • -i, --input FILE β€” Specify input file.
  • -o, --output FILE β€” Specify output file.
  • -c, --cpu NUMBER β€” Specify number of CPU workers.
  • -g, --gpu NUMBER β€” Specify number of GPU workers (default: no workers).
  • -I, --interval SECONDS β€” Set sample interval (default: 0.5).
  • -t, --threshold DELTA β€” Stop when temperature difference falls below DELTA (default: 2.0).
  • -b, --break SECONDS β€” Stop after the temperature difference has remained below DELTA for SECONDS consecutive seconds (default: 10.0).

evaluate [OPTIONS] β€” Evaluates a previously generated result file. Default: nbfc.test-config.result.json.

  • -i, --input FILE β€” Specify input file.

πŸ¦‹ acpi-dump {registers | ec-registers | methods | dsl | map} [OPTIONS]

Dumps information of your ACPI tables.

By default, the DSDT and all SSDTs are read from /sys/firmware/acpi/tables.

registers β€” List all available registers.

ec-registers [-u|--unverified] β€” List all available embedded controller registers.

Normally, only registers belonging to an EmbeddedControl operation region are printed. If -u|--unverified is specified, also registers from SystemMemory operation regions that may be accessible through the embedded controller are printed. Their accessibility through the embedded controller cannot be guaranteed.

methods β€” List all available ACPI methods.

dsl β€” Disassemble your ACPI tables.

map [-u|--unverified] β€” Generate a map file that can be used by ec_probe -m|--map. The map contains detected registers with their names and addresses as well as ACPI method names.

Normally, only registers belonging to an EmbeddedControl operation region are printed. If -u|--unverified is specified, also registers from SystemMemory operation regions that may be accessible through the embedded controller are printed. Their accessibility through the embedded controller cannot be guaranteed.

  • -d, --dsdt FILE β€” Use an alternative DSDT file. Can be specified multiple times.
  • -D, --dsdt-dir DIRECTORY β€” Use an alternative DSDT directory.
  • -j, --json β€” Use JSON output.

🫢 support [OPTIONS]

Show how to support the project.

  • --upload-firmware β€” Upload your notebook firmware without prompting.
  • --print-command β€” Print command for manual firmware upload.
  • --create-archive FILE β€” Creates a compressed tar.gz archive containing information required for support and hardware analysis.

The archive includes:

  • The output of nbfc get-model-name
  • The output of nbfc sensors list
  • Firmware DSDT (/sys/firmware/acpi/tables/DSDT)
  • Firmware SSDTs (/sys/firmware/acpi/tables/SSDT*)

🌟 get-model-name

Print out the notebook’s model name.

πŸŽ€ xml2json FILE

Convert an XML configuration file to JSON.

This command can be used to convert configurations from the original NBFC project into the NBFC-Linux format.

πŸ’œ warranty

Show warranty.

🌸 faq

Show NBFC FAQ manual page.

✨ help

Show help.

πŸ—‚οΈ FILES πŸ—‚οΈ

okay so here's the lil map of where everything lives on your system, bestie β€” memorize these paths, they're important πŸ’…

  • /nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/etc/nbfc/nbfc.json β€” the main configuration file for nbfc_service, like the whole personality of the service lives here. see nbfc_service.json(5) for further details ✨
  • /run/nbfc_service.pid β€” file containing the PID of the currently running nbfc_service, so you can find your baby in the process list πŸŽ€
  • /run/nbfc_service.socket β€” the socket file of nbfc_service. this is how you talk to it, iykyk πŸ¦‹
  • /nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/share/nbfc/configs/*.json β€” configuration files for various notebook models, the whole squad of them. see nbfc_service.json(5) for further details 🌸
  • /nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/share/nbfc/model_support.json β€” the model support database, no cap. this file maps notebook model names to configuration files πŸ“š
  • /var/lib/nbfc/configs/*.json β€” configuration files downloaded from the internet. and listen: files in this directory take precedence over those in /nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/share/nbfc/configs β€” the downloaded ones are literally the main characters πŸ‘‘
  • /var/lib/nbfc/model_support.json β€” model support database downloaded from the internet. both /var/lib/nbfc/model_support.json and /nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/share/nbfc/model_support.json are taken into account, so they're both pulling up to the function, periodt πŸ’œ
  • /var/lib/nbfc/state.json β€” the state file of nbfc_service. this holds the current fan speeds, like a little diary entry of how fast everything's spinning rn πŸŒ€

πŸ’€ EXIT STATUS πŸ’€

vibe check on how things went, bestie β€” here's what the numbers mean:

  • 0 β€” everything fine ✨ iconic, flawless, we love to see it
  • 1 β€” generic error 😭 just... a general oops
  • 2 β€” command-line error πŸ™ˆ like, you typed something and the shell was not having it
  • 3 β€” initialization error πŸ’€ it tried to start and simply could not
  • 5 β€” fatal error (memory allocation failure) 🚨 the big one, memory said no
ngl, if you're seeing 5, that's a whole situation. the manpage is very clear: fatal error, memory allocation failure. no dressing that up 🫢

πŸ› BUGS πŸ›

found something cursed? report bugs to https://github.com/nbfc-linux/nbfc-linux β€” the maintainers wanna hear it fr fr πŸ’–


πŸ‘‘ AUTHOR πŸ‘‘

Benjamin Abendroth (braph93@gmx.de) β€” the actual legend behind all of this πŸŒˆπŸ‘‘


πŸ”— SEE ALSO πŸ”—

go read these too, they're all connected, bestie 🧚


and that's the whole page, bestie!! πŸŽ€ you just read Notebook FanControl 0.5.4, dated APRIL 2026 β€” go forth and keep those fans cool, mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from