Added Gentoo support and enhanced README.md

This commit is contained in:
Daniel Graziotin 2012-08-23 11:08:17 +02:00
commit 03ac20500b
6 changed files with 113 additions and 39 deletions

View file

@ -1,12 +1,13 @@
MAINTAINERS AND CONTRIBUTORS AUTHORS, CONTRIBUTORS, MAINTAINERS
---------------------------- ----------------------------------
Daniel Graziotin <dgraziotin AT task3 DOT cc> Daniel Graziotin <dgraziotin AT task3 DOT cc>
Ismail Khatib <ikhatib AT gmail DOT com> Ismail Khatib <ikhatib AT gmail DOT com>
Trevor Joynson Trevor Joynson
Magnus Stubman <magnus AT stubman DOT eu>
ORIGINARY AUTHORS ORIGINARY AUTHORS
----------------- -----------------
Allan McRae mbpfan <http://allanmcrae.com/2010/05/simple-macbook-pro-fan-daemon> Allan McRae mbpfan <http://allanmcrae.com/2010/05/simple-macbook-pro-fan-daemon>
rvega <https://github.com/rvega/Fan-Control-Daemon> rvega <https://github.com/rvega/Fan-Control-Daemon>

View file

@ -78,4 +78,4 @@ install:
@echo " sudo make tests" @echo " sudo make tests"
@echo "" @echo ""
rebuild: clean all rebuild: clean all
#rebuild is not entirely correct #rebuild is not entirely correct

103
README.md
View file

@ -17,19 +17,49 @@ This enhanced version assumes any number of processors and fans (max. 10).
* Users can configure it using the file /etc/mbpfan.conf * Users can configure it using the file /etc/mbpfan.conf
Supported GNU/Linux Distributions
---------------------------------
We provide scripts to to load mbpfan daemon at system boot for many distros.
Please note that the support is provided by volunteers. mbpfan needs test and bug reports.
Supported distributions:
- Ubuntu
- Debian
- Fedora
- RedHat
- CentOS
- Gentoo
Tested Macbook Models
---------------------
- MacBook Pro 8.1 13" (Intel i7 - Linux 3.2)
- MacBook Pro 6,2 15" (Intel i7 - Linux 3.2)
- MacBook Pro 2,2 15" (Intel Core 2 Duo - Linux 3.4.4)
Warning
-------
Be sure to load the kernel modules **applesmc** and **coretemp**.
Compile Instructions Compile Instructions
--------------------- ---------------------
Compile with Compile with
make
make
Manually compile with Manually compile with
gcc -o bin/mbpfan src/mbpfan.c -lm
gcc -o bin/mbpfan src/mbpfan.c -lm
Install Instructions Install Instructions
-------------------- --------------------
Install with Install with
sudo make install
sudo make install
It copies mbpfan to /usr/sbin and mbpfan.conf to /etc It copies mbpfan to /usr/sbin and mbpfan.conf to /etc
@ -37,21 +67,27 @@ It copies mbpfan to /usr/sbin and mbpfan.conf to /etc
Run The Tests (Recommended) Run The Tests (Recommended)
--------------------------- ---------------------------
It is recommended to run the tests after installing the program It is recommended to run the tests after installing the program
sudo ./bin/mbpfan -t
sudo ./bin/mbpfan -t
or or
sudo make tests
sudo make tests
Run Instructions Run Instructions
---------------- ----------------
If not installed, run with If not installed, run with
sudo bin/mbpfan
sudo bin/mbpfan
If installed, manually run with If installed, manually run with
sudo mbpfan
sudo mbpfan
If installed and using the init file, run with (Ubuntu example) If installed and using the init file, run with (Ubuntu example)
sudo service mbpfan start
sudo service mbpfan start
Starting at boot Starting at boot
@ -60,15 +96,18 @@ Starting at boot
For upstart based init systems (Ubuntu), an example upstart job has been For upstart based init systems (Ubuntu), an example upstart job has been
provided for use in place of the LSB-style init script. provided for use in place of the LSB-style init script.
To use, execute: To use, execute:
sudo cp mbpfan.upstart /etc/init/mbpfan.conf
sudo start mbpfan sudo cp mbpfan.upstart /etc/init/mbpfan.conf
sudo start mbpfan
**Debian** **Debian**
An init file suitable for /lib/lsb/init-functions (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 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) Rename it to mbpfan, give it execution permissions (chmod +x mbpfan)
and move it to /etc/init.d and move it to /etc/init.d
Then, add it to the default runlevels with sudo update-rc.d mbpfan defaults Then, add it to the default runlevels with (as root):
sudo update-rc.d mbpfan defaults
**Redhat, CentOS, Fedora** **Redhat, CentOS, Fedora**
An init file suitable for /etc/rc.d/init.d/functions An init file suitable for /etc/rc.d/init.d/functions
@ -76,27 +115,43 @@ An init file suitable for /etc/rc.d/init.d/functions
mbpfan.init.redhat. Also rename it to mbpfan, give it execution permissions mbpfan.init.redhat. Also rename it to mbpfan, give it execution permissions
and move it to /etc/init.d and move it to /etc/init.d
To add the script to the default runlevels, run the following as root: To add the script to the default runlevels, run the following as root:
chkconfig --level 2345 mbpfan on && chkconfig --level 016 mbpfan off
chkconfig --level 2345 mbpfan on && chkconfig --level 016 mbpfan off
**Gentoo**
An init file is available for gentoo users: mbpfan.init.gentoo
To install, run as root:
cp mbpfan.init.gentoo /etc/init.d/mbpfan
To automatically run mbpfan at boot, run as root:
rc-update add mbpfan default
**systemd** **systemd**
As a special bonus, a service file for systemd is also included. To use it, As a special bonus, a service file for systemd is also included. To use it,
execute the following as root: execute the following (as root):
sudo cp mbpfan.service /usr/lib/systemd/system
sudo ln -s /usr/lib/systemd/system/mbpfan.service /etc/systemd/system/mbpfan.service sudo cp mbpfan.service /usr/lib/systemd/system
sudo systemctl daemon-reload sudo ln -s /usr/lib/systemd/system/mbpfan.service /etc/systemd/system/mbpfan.service
sudo systemctl start mbpfan.service sudo systemctl daemon-reload
sudo systemctl start mbpfan.service
To start the service automatically at boot, also execute the following: To start the service automatically at boot, also execute the following:
sudo systemctl enable mbpfan.service
sudo systemctl enable mbpfan.service
Usage Usage
------- -------
Usage: ./mbpfan OPTION(S)
-h Show the help screen Usage: ./mbpfan OPTION(S)
-f Run in foreground
-t Run the tests -h Show the help screen
-v Be (a lot) verbose -f Run in foreground
-t Run the tests
-v Be (a lot) verbose
License License
@ -110,4 +165,4 @@ Based On
* http://allanmcrae.com/2011/08/mbp-fan-daemon-update/ * http://allanmcrae.com/2011/08/mbp-fan-daemon-update/
* https://launchpad.net/macfanctld * https://launchpad.net/macfanctld
* http://paste2.org/p/862259 * http://paste2.org/p/862259
* http://www.lobotomo.com/products/FanControl/ * http://www.lobotomo.com/products/FanControl/

18
mbpfan.init.gentoo Executable file
View file

@ -0,0 +1,18 @@
#!/sbin/runscript
depend() {
use logger
}
start() {
ebegin "Starting mbpfan"
start-stop-daemon --start --quiet --exec /usr/sbin/mbpfan
eend $?
}
stop() {
ebegin "Stopping mbpfan"
start-stop-daemon --stop --quiet --exec /usr/sbin/mbpfan
eend $?
}

View file

@ -10,16 +10,6 @@
int tests_run = 0; int tests_run = 0;
struct s_sensors {
char* path;
char* fan_output_path;
char* fan_manual_path;
unsigned int temperature;
struct s_sensors *next;
};
typedef s_sensors t_sensors;
static char *test_sensor_paths() static char *test_sensor_paths()
{ {
t_sensors* sensors = retrieve_sensors(); t_sensors* sensors = retrieve_sensors();

View file

@ -5,6 +5,16 @@
#define mu_run_test(test) do { char *message = test(); tests_run++; \ #define mu_run_test(test) do { char *message = test(); tests_run++; \
if (message) return message; } while (0) if (message) return message; } while (0)
struct s_sensors {
char* path;
char* fan_output_path;
char* fan_manual_path;
unsigned int temperature;
struct s_sensors *next;
};
typedef s_sensors t_sensors;
extern int tests_run; extern int tests_run;
static char *test_sensor_paths(); static char *test_sensor_paths();