diff --git a/AUTHORS b/AUTHORS index 9ff236c..941e824 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,12 +1,13 @@ -MAINTAINERS AND CONTRIBUTORS ----------------------------- +AUTHORS, CONTRIBUTORS, MAINTAINERS +---------------------------------- Daniel Graziotin Ismail Khatib -Trevor Joynson +Trevor Joynson +Magnus Stubman + ORIGINARY AUTHORS ----------------- - Allan McRae mbpfan rvega diff --git a/Makefile b/Makefile index 7e40233..125897b 100644 --- a/Makefile +++ b/Makefile @@ -78,4 +78,4 @@ install: @echo " sudo make tests" @echo "" rebuild: clean all -#rebuild is not entirely correct +#rebuild is not entirely correct \ No newline at end of file diff --git a/README.md b/README.md index 29ea2df..2137929 100644 --- a/README.md +++ b/README.md @@ -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 +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 with - make + + make Manually compile with - gcc -o bin/mbpfan src/mbpfan.c -lm + + gcc -o bin/mbpfan src/mbpfan.c -lm Install Instructions -------------------- Install with - sudo make install + + sudo make install 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) --------------------------- It is recommended to run the tests after installing the program - sudo ./bin/mbpfan -t + + sudo ./bin/mbpfan -t + or - sudo make tests + + sudo make tests Run Instructions ---------------- If not installed, run with -sudo bin/mbpfan + + sudo bin/mbpfan If installed, manually run with -sudo mbpfan + + sudo mbpfan If installed and using the init file, run with (Ubuntu example) -sudo service mbpfan start + + sudo service mbpfan start Starting at boot @@ -60,15 +96,18 @@ Starting at boot For upstart based init systems (Ubuntu), an example upstart job has been provided for use in place of the LSB-style init script. 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** 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 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** 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 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 + + 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** As a special bonus, a service file for systemd is also included. To use it, -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 systemctl daemon-reload -sudo systemctl start mbpfan.service +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 systemctl daemon-reload + sudo systemctl start mbpfan.service To start the service automatically at boot, also execute the following: -sudo systemctl enable mbpfan.service + + sudo systemctl enable mbpfan.service Usage ------- -Usage: ./mbpfan OPTION(S) --h Show the help screen --f Run in foreground --t Run the tests --v Be (a lot) verbose + + Usage: ./mbpfan OPTION(S) + + -h Show the help screen + -f Run in foreground + -t Run the tests + -v Be (a lot) verbose License @@ -110,4 +165,4 @@ Based On * http://allanmcrae.com/2011/08/mbp-fan-daemon-update/ * https://launchpad.net/macfanctld * http://paste2.org/p/862259 -* http://www.lobotomo.com/products/FanControl/ +* http://www.lobotomo.com/products/FanControl/ \ No newline at end of file diff --git a/mbpfan.init.gentoo b/mbpfan.init.gentoo new file mode 100755 index 0000000..30a35ea --- /dev/null +++ b/mbpfan.init.gentoo @@ -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 $? +} + diff --git a/src/minunit.c b/src/minunit.c index 0603047..9b43ce9 100644 --- a/src/minunit.c +++ b/src/minunit.c @@ -10,16 +10,6 @@ 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() { t_sensors* sensors = retrieve_sensors(); diff --git a/src/minunit.h b/src/minunit.h index 0565cdf..a83e6de 100644 --- a/src/minunit.h +++ b/src/minunit.h @@ -5,6 +5,16 @@ #define mu_run_test(test) do { char *message = test(); tests_run++; \ 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; static char *test_sensor_paths();