mbpfan/README.md

223 lines
6.3 KiB
Markdown
Raw Normal View History

mbpfan
2012-06-09 14:40:12 +00:00
====================
Introduction
---------------------
2012-08-23 20:32:49 +00:00
This is an enhanced version of [Allan McRae mbpfan](http://allanmcrae.com/2010/05/simple-macbook-pro-fan-daemon/)
2012-06-09 14:25:28 +00:00
mbpfan is a daemon that uses input from coretemp module and sets the fan speed using the applesmc module.
2012-06-09 14:25:28 +00:00
This enhanced version assumes any number of processors and fans (max. 10).
2012-06-11 19:43:53 +00:00
* It only uses the temperatures from the processors as input.
* It requires coretemp and applesmc kernel modules to be loaded.
* It requires root use
2012-07-03 08:39:30 +00:00
* It daemonizes or stays in foreground
* Verbose mode for both syslog and stdout
* Users can configure it using the file /etc/mbpfan.conf
2012-06-09 14:25:28 +00:00
Supported GNU/Linux Distributions
---------------------------------
We provide scripts to to load mbpfan daemon at system boot for many distros.
2012-10-20 15:18:30 +00:00
Please note that the support is provided by volunteers. mbpfan needs tests and bug reports.
Supported distributions:
- Ubuntu
- Debian
- Archlinux
- Fedora
- RedHat
- CentOS
- Gentoo
2017-03-27 15:44:34 +00:00
- Alpine
- Trisquel
2017-07-13 01:15:38 +00:00
Tested MacBook Models
2012-06-09 14:40:12 +00:00
---------------------
2014-05-14 07:14:26 +00:00
This section reports those models where mbpfan was tested successfully. It does not necessarily mean that the daemon does not work on non-listed models.
2015-12-20 15:22:52 +00:00
- MacBook Pro 12,1 13" (Intel i5 - Linux 4.20)
2014-06-21 17:35:56 +00:00
- MacBook Pro 11,1 13" (Intel i5 - Linux 3.14, Linux 3.15)
- MacBook Pro 9,2 13" (Intel i5/i7 - Linux 3.10)
2014-06-23 09:00:18 +00:00
- MacBook Pro 8,2 15" (Intel i7 - Linux 3.6.2)
- MacBook Pro 8,1 13" (Intel i7 - Linux 3.2.0)
2014-06-23 09:00:18 +00:00
- MacBook Pro 7,1 15" (Intel Core 2 Duo - Linux 3.13)
- MacBook Pro 6,2 15" (Intel i7 - Linux 3.5.0)
- MacBook Pro 6,2 15" (Intel i7 - Linux 3.2.0)
- MacBook Pro 2,2 15" (Intel Core 2 Duo - Linux 3.4.4)
- MacBook Air 5,2 13" (Intel i5 - Linux 3.16)
- MacBook Air 1,1 13" (Intel Core Duo - Linux 4.4, Linux 4.8)
2017-04-02 19:45:36 +00:00
- MacBook Air 7,2 13" (Intel Core Duo - Linux 4.10)
- MacBook 1,1 (Intel Core Duo - Linux 3.16)
2017-07-13 01:15:38 +00:00
Tested iMac/Mac Mini Models
2015-08-31 02:04:01 +00:00
------------------
This section reports the iMac/Mac-mini models where mbpfan was tested successfully.
2015-08-31 02:04:01 +00:00
- iMac Retina 16.2 21.5" (Intel i5 - Linux 4.4.0 Ubuntu 16.04)
- iMac 12,1 21.5" (Intel i7 - Linux 4.6.4)
- iMac 5,1 17" (Intel T7400 (Core 2 Duo) - Linux 14.04 Ubuntu)
- Mac Mini 2,1 (Core 2 Duo - Linux 4.4.0)
Add Macmini5,3 to supported list sudo dmidecode -s system-product-name Macmini5,3 uname -a Linux elementaty-mini 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux sudo make tests make install make[1]: Entering directory '/home/wmoore/Source/mbpfan' make make[2]: Entering directory '/home/wmoore/Source/mbpfan' Linking... g++ -g -lm src/settings.o src/daemon.o src/mbpfan.o src/main.o src/minunit.o src/strmap.o -lm -o bin/mbpfan make[2]: Leaving directory '/home/wmoore/Source/mbpfan' install -d /usr/sbin install -d /etc install -d /lib/systemd/system install -d /usr/share/doc/mbpfan install bin/mbpfan /usr/sbin install -m644 mbpfan.conf /etc install -m644 README.md /usr/share/doc/mbpfan install -d /usr/share/man/man8 install -m644 mbpfan.8.gz /usr/share/man/man8 ****************** INSTALL COMPLETED ****************** A configuration file has been copied (might overwrite existing file) to /etc/mbpfan.conf. See README.md file to have mbpfan automatically started at system boot. Please run the tests now with the command sudo make tests make[1]: Leaving directory '/home/wmoore/Source/mbpfan' /usr/sbin/mbpfan -f -v -t Starting the tests.. It is normal for them to take a bit to finish. Detected kernel version: 4 Detected kernel minor revision: 4 Detected kernel version: 4 Detected kernel minor revision: 4 Using new sensor path for kernel >= 3.0.15 Found hwmon path at /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp Found 5 sensors Found 1 fans Detected kernel version: 4 Detected kernel minor revision: 4 Using new sensor path for kernel >= 3.0.15 Found hwmon path at /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp Found 5 sensors Testing the _supplied_ mbpfan.conf (not the one you are using).. ALL TESTS PASSED Tests run: 8
2017-01-16 00:46:47 +00:00
- Mac Mini 5,3 (Core i7 2.0 - Linux 4.4.0 elementary/Ubuntu)
2016-09-13 08:03:12 +00:00
- Mac Mini 6,1 (Core i7 2.3 - Linux 4.7.3-4-ck Archlinux)
2012-06-09 14:40:12 +00:00
Warning
-------
Be sure to load the kernel modules **applesmc** and **coretemp**.
2017-07-13 01:15:38 +00:00
These modules are often automatically loaded when booting up GNU/Linux on a MacBook. If that is not the case, you should make sure to load them at system startup. This is _usually_ achieved by inserting the following two lines in the file `/etc/modules`
```
coretemp
applesmc
```
Please check the relevant documentation of your GNU/Linux distribution.
Arch Linux
---------
See [mbpfan-git at AUR](https://aur.archlinux.org/packages/mbpfan-git/).
Otherwise, please refer to the Generic Instructions.
Ubuntu
------
Install the ```build-essential``` package.
Then, refer to the Generic Install Instructions.
2016-01-30 16:36:45 +00:00
Otherwise, a step-by-step [tutorial for beginners is available on my website](https://ineed.coffee/3838/a-beginners-mbpfan-tutorial-for-ubuntu/).
Gentoo
------
Install the ```mbpfan``` package with:
sudo emerge -av app-laptop/mbpfan
Generic Install Instructions
-------------------------
2012-06-09 14:25:28 +00:00
Compile with
make
2012-06-09 14:40:12 +00:00
2012-06-15 19:12:51 +00:00
Install with
2012-06-15 19:47:23 +00:00
sudo make install
2012-06-15 19:47:23 +00:00
It copies mbpfan to /usr/sbin, mbpfan.conf to /etc (and overwrites existing files),
README.md to /usr/share/doc/mbpfan, and mbpfan.8.gz to /usr/share/man/man8
2012-06-15 19:47:23 +00:00
Run the tests now, see two sections below.
If you would like to compile with Clang instead of GCC, simply set your system's
default compiler to be Clang. Tested with Clang 3.8 and 3.9. Tested with Clang
4.0 along with llvm-lld (The LLVM Linker).
2012-06-15 19:12:51 +00:00
Run The Tests (Recommended)
---------------------------
It is recommended to run the tests after installing the program. Please run the following command _from within the source directory_.
sudo ./bin/mbpfan -t
or
2012-06-09 14:25:28 +00:00
sudo make tests
2012-06-15 19:12:51 +00:00
2012-06-09 14:40:12 +00:00
Run Instructions
----------------
2012-06-15 19:47:23 +00:00
If not installed, run with
sudo bin/mbpfan
2012-06-09 14:40:12 +00:00
2012-06-15 19:47:23 +00:00
If installed, manually run with
sudo mbpfan
2012-06-15 19:47:23 +00:00
If installed and using the init file, run with (Ubuntu example)
sudo service mbpfan start
2012-06-15 19:47:23 +00:00
Starting at boot
----------------
2012-08-22 13:53:07 +00:00
**Ubuntu**
For systemd based init systems (Ubuntu 16.04+), the file mbpfan.service
has been provided.
For using it, execute:
sudo cp mbpfan.service /etc/systemd/system/
sudo systemctl enable mbpfan.service
For upstart based init systems (Ubuntu before 16.04), an example upstart job has been provided.
For using it, execute:
sudo cp mbpfan.upstart /etc/init/mbpfan.conf
sudo start mbpfan
2012-08-22 13:53:07 +00:00
**Debian**
An init file suitable for /lib/lsb/init-functions (Debian)
is located in the main folder of the source files, called mbpfan.init.debian
Rename it to mbpfan, give it execution permissions (chmod +x mbpfan)
and move it to /etc/init.d
Then, add it to the default runlevels with (as root):
sudo update-rc.d mbpfan defaults
2012-08-22 13:53:07 +00:00
**Redhat, CentOS, Fedora**
An init file suitable for /etc/rc.d/init.d/functions
(RHEL/CentOS & Fedora) is also located at the same place, this file is called
mbpfan.init.redhat. Also rename it to mbpfan, give it execution permissions
and move it to /etc/init.d
To add the script to the default runlevels, run the following as root:
chkconfig --level 2345 mbpfan on && chkconfig --level 016 mbpfan off
**Gentoo**
To automatically run mbpfan at boot, run as root:
rc-update add mbpfan default
2012-08-22 13:53:07 +00:00
**systemd**
As a special bonus, a service file for systemd is also included. To use it,
execute the following (as root):
2015-10-22 12:33:30 +00:00
sudo cp mbpfan.service /etc/systemd/system/
sudo systemctl enable mbpfan.service
sudo systemctl daemon-reload
sudo systemctl start mbpfan.service
2012-08-22 13:53:07 +00:00
To start the service automatically at boot, also execute the following:
sudo systemctl enable mbpfan.service
2012-07-03 08:39:30 +00:00
Usage
-------
Usage: ./mbpfan OPTION(S)
-h Show the help screen
-f Run in foreground
-t Run the tests
-v Be (a lot) verbose
2012-07-03 08:39:30 +00:00
2012-06-09 14:40:12 +00:00
License
---------------------
GNU General Public License version 3
2012-06-09 14:25:28 +00:00
2012-01-25 15:26:01 +00:00
2012-06-09 14:40:12 +00:00
Based On
---------------------
2012-06-11 19:43:53 +00:00
* http://allanmcrae.com/2010/05/simple-macbook-pro-fan-daemon/
* http://allanmcrae.com/2011/08/mbp-fan-daemon-update/
* https://launchpad.net/macfanctld
* http://paste2.org/p/862259
* http://www.lobotomo.com/products/FanControl/