NBFC(1)
π 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/--jsonis 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 toPERCENT.-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 fromFILE.-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 anEmbeddedControloperation region are taken into account when rating a configuration. With this option, registers fromSystemMemoryoperation 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 belowDELTA(default: 2.0).-b,--break SECONDSβ Stop after the temperature difference has remained belowDELTAforSECONDSconsecutive 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 compressedtar.gzarchive 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 fornbfc_service, like the whole personality of the service lives here. seenbfc_service.json(5)for further details β¨/run/nbfc_service.pidβ file containing the PID of the currently runningnbfc_service, so you can find your baby in the process list π/run/nbfc_service.socketβ the socket file ofnbfc_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. seenbfc_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.jsonand/nix/store/48mhb6ci6w735jxaz60mhn63p4ccn956-nbfc-linux-0.5.4/share/nbfc/model_support.jsonare taken into account, so they're both pulling up to the function, periodt π/var/lib/nbfc/state.jsonβ the state file ofnbfc_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 it1β generic error π just... a general oops2β command-line error π like, you typed something and the shell was not having it3β initialization error π it tried to start and simply could not5β 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 π§
nbfc_service(1)nbfc_service.json(5)ec_probe(1)fancontrol(1)
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
- nixpkgs unstable: nbfc-linux 0.5.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms