All Projects → nbfc-linux → nbfc-linux

nbfc-linux / nbfc-linux

Licence: GPL-3.0 License
NoteBook FanControl ported to Linux

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
Makefile
30231 projects
Nix
1067 projects

Projects that are alternatives of or similar to nbfc-linux

Hackintosh-ASUS-A455LF-Notebook
EFI Folder for ASUS A455LF-WX039D Notebook Series with Clover/OpenCore Legacy or UEFI
Stars: ✭ 27 (-60.87%)
Mutual labels:  notebook, laptop
MSI-Modern15-Hackintosh
My MSI Modern 15 Hackintosh repo
Stars: ✭ 16 (-76.81%)
Mutual labels:  notebook, laptop
mlfc
MSI Laptop Fan Control
Stars: ✭ 39 (-43.48%)
Mutual labels:  laptop, fan
flawesome
Productivity Tool
Stars: ✭ 56 (-18.84%)
Mutual labels:  notebook
dmind
jupyter notebook 的思维导图插件
Stars: ✭ 21 (-69.57%)
Mutual labels:  notebook
Kaio-machine-learning-human-face-detection
Machine Learning project a case study focused on the interaction with digital characters, using a character called "Kaio", which, based on the automatic detection of facial expressions and classification of emotions, interacts with humans by classifying emotions and imitating expressions
Stars: ✭ 18 (-73.91%)
Mutual labels:  notebook
macstats
Mac OS X Statistics - Battery, Fans, CPU
Stars: ✭ 55 (-20.29%)
Mutual labels:  fan
vnote
A dairy note edit and manage tool in vim
Stars: ✭ 17 (-75.36%)
Mutual labels:  notebook
technote
My technique notebook.
Stars: ✭ 125 (+81.16%)
Mutual labels:  notebook
httpbook
Quickly and easily send REST, Soap, GraphQL, GRPC, MQTT and WebSocket requests directly within Visual Studio Code
Stars: ✭ 18 (-73.91%)
Mutual labels:  notebook
MGT-python
Musical Gestures Toolbox for Python
Stars: ✭ 25 (-63.77%)
Mutual labels:  notebook
oceanpress
将 Markdown 文件转换为 HTML 生成静态站点的工具,专为思源笔记实现了许多特有渲染效果。
Stars: ✭ 61 (-11.59%)
Mutual labels:  notebook
observable-to-standalone
Importing an Observable notebook into a standalone application
Stars: ✭ 31 (-55.07%)
Mutual labels:  notebook
vertex-ai-samples
Sample code and notebooks for Vertex AI, the end-to-end machine learning platform on Google Cloud
Stars: ✭ 270 (+291.3%)
Mutual labels:  notebook
percival
📝 Web-based, reactive Datalog notebooks for data analysis and visualization
Stars: ✭ 285 (+313.04%)
Mutual labels:  notebook
pytest-notebook
A pytest plugin for regression testing and regenerating Jupyter Notebooks
Stars: ✭ 35 (-49.28%)
Mutual labels:  notebook
docker-stacks
Ready-to-run Docker images containing Jupyter applications
Stars: ✭ 6,573 (+9426.09%)
Mutual labels:  notebook
For 0416
당신의 컴퓨터에 노란리본을 달아드립니다. For_0416 & Remember 0416
Stars: ✭ 70 (+1.45%)
Mutual labels:  laptop
visualize-data-with-python
A Jupyter notebook using some standard techniques for data science and data engineering to analyze data for the 2017 flooding in Houston, TX.
Stars: ✭ 60 (-13.04%)
Mutual labels:  notebook
dnotebook
Dnotebook is a Jupyter-like library for javaScript environment. It allows you to create and share pages that contain live code, text and visualizations.
Stars: ✭ 109 (+57.97%)
Mutual labels:  notebook

NoteBook FanControl

This is a C port of Stefan Hirschmann's NoteBook FanControl.

It provides the same utilities with the same interfaces as the original NBFC, although the implementation differs.

Comparison of NBFC C# and NBFC Linux

What NBFC Mono NBFC Linux
Portability Crossplatform Linux
Configuration files XML (956KB) JSON (840KB)
Runtime Mono Native
Memory consumption (ps_mem) ~50MB ~350KB
Package size (pkg.tar.gz) 448K 100K
Service control rights Any user Only root
IPC Concept TCP/IP Files
IPC Protocol Binary JSON

The service and the probing tool are written in C. The client is written in Python. Another client has also been written in C.

Installation

  • Arch Linux:

    • Either via AUR (yaourt -S nbfc-linux)
    • Or by using the PKGBUILD nbfc-linux-git
  • With Nix:

    • With legacy nix (nix-env -if .)
    • With nix flakes (nix profile install)
  • In general:

    • make && sudo make install

Getting started

When running NBFC for the first time, you need to give it a configuration file for your laptop model.

If you are lucky, sudo nbfc config --set auto will find a matching one and set it.

sudo nbfc config --recommend (requires dmidecode) will give a list of configuration files that may match your laptop.

With sudo nbfc config --set <MODEL> a configuration is selected.

sudo nbfc start will start the service.

It can be queried by sudo nbfc status -a.

If you wish nbfc_service to get started on boot, use sudo systemctl enable nbfc_service.

Differences in detail

Files NBFC Mono NBFC Linux
Systemd service file nbfc.service nbfc_service.service
EC Probing tool ec-probe ec_probe
Notebook configuration files /opt/nbfc/Configs/*.xml /usr/share/nbfc/configs/*.json
Service binary /opt/nbfc/nbfcservice.sh /bin/nbfc_service
PID File /run/nbfc.pid /run/nbfc_service.pid
State file - /run/nbfc_service.state.json
Config file ? /etc/nbfc/nbfc.json
  • The original NBFC service is queried and controlled by the client using TCP/IP. - NBFC Linux does not implement any "real" IPC. Information about the service can be queried by reading its state file. The client controls the service by simply rewriting its configuration file and reloading it.

  • The original NBFC service adjusts the fan speeds in intervals of EcPollIntervall according to TemperatureThresholds. - NBFC Linux directly sets the fan speed (also according to TemperatureThresholds).

  • The original NBFC service selects a TemperatureThreshold and applies its FanSpeed when the temperature exceeds its UpThreshold. In contrast, NBFC Linux will select the next TemperatureThreshold and apply its FanSpeed when the temperature exceeds the current UpThreshold. The provided config files have been reconfigured to account for this change, so that they provide the same behaviour as the original NBFC service. If you have a custom config file that works well with the original service, you can port it to NBFC Linux using the provided tool (requires python3-lxml).

  • NBFC Linux dropped the Autostart option, since it relies on the systemd service file only.

Troubleshooting

The preferred way of running nbfc is using the ECSysLinux implementation, which depends on the ec_sys kernel module. There is also an alternative implementation which uses /dev/port, called ec_linux. It can be specified on the commandline using --embedded-controller=ec_linux and permanently set in /etc/nbfc/nbfc.json with "EmbeddedControllerType": "ec_linux".

For running NBFC with Secure Boot and Lockdown Kernel, see acpi_ec

Shell autocompletion

NBFC-Linux comes with shell completion scripts for bash, fish and zsh.

~ $ nbfc_service <TAB>
--config-file          -c  -- Use alternative config file (default /etc/nbfc/nbfc.json)
--debug                -d  -- Enable tracing of reads and writes of the embedded controller
--embedded-controller  -e  -- Specify embedded controller to use
--fork                 -f  -- Switch process to background after sucessfully started
--help                 -h  -- show this help message and exit
--readonly             -r  -- Start in read-only mode
--state-file           -s  -- Write state to an alternative file (default /var/run/nbfc_service.state.json)

~ $ nbfc <TAB>
config   -- List or apply configs
help     -- Show help
restart  -- Restart the service
set      -- Control fan speed
start    -- Start the service
status   -- Show the service status
stop     -- Stop the service

See also the documentation about the nbfc configuration.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].