I can't properly configure this tool

Asked by Muhammad Gelbana

Dell Inspiron SE 7520 | Ubuntu 13.10

There are so many tutorials online, for old version and new ones, but none seem to "fully" work for me. The man page is only 70% clear. It doesn't "clearly":

1. State where should I put my configuration
2. Explain the configuration in details

I like this tool a lot because it actually works, but it doesn't work when the machine starts and I have to run it my self. Even running it in daemon mode (i8kmon -a -d -t 1) doesn't work, it doesn't leave the terminal, meaning if I close the terminal, the monitor applet will close.

I once reached a temp of 88 for my CPU and I can't let that happen again :(

Question information

Language:
English Edit question
Status:
Solved
For:
i8kutils Edit question
Assignee:
No assignee Edit question
Solved by:
Muhammad Gelbana
Solved:
Last query:
Last reply:
Revision history for this message
vitorafsr (vitorafsr) said :
#1

I hope this solves.

1. Install i8kutils: sudo apt-get install 'i8kutils'
2. Config file '/etc/i8kmon.conf' (below is this file)
3. Enable monitor at '/etc/default/i8kmon'; put 'ENABLED=1'
4. Init service: 'sudo service i8kmon start'

# Sample i8kmon configuration file (/etc/i8kmon.conf, ~/.i8kmon).

# Kernel I8K status file
set config(proc_i8k) /proc/i8k

# Kernel APM status file
set config(proc_apm) /proc/apm

# Kernel ACPI status file
set config(proc_acpi) /proc/acpi/ac_adapter/0/status

# External program to control the fans
set config(i8kfan) /usr/bin/i8kfan

# Applet geometry, override with --geometry option
set config(geometry) {}

# Run as daemon, override with --daemon option
set config(daemon) 0

# Automatic fan control, override with --auto option
set config(auto) 1

# Report status on stdout, override with --verbose option
set config(verbose) 0

# Status check timeout (seconds), override with --timeout option
set config(timeout) 5

# Temperature display unit (C/F), override with --unit option
set config(unit) C

# Temperature threshold at which the temperature is displayed in red
set config(t_high) 80

# Minimum expected fan speed
set config(min_speed) 1800

# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
# These were tested on the I8000. If you have a different Dell laptop model
# you should check the BIOS temperature monitoring and set the appropriate
# thresholds here. In doubt start with low values and gradually rise them
# until the fans are not always on when the cpu is idle.
set config(0) {{- 0} -1 55 -1 55}
set config(1) {{- 0} -1 55 -1 55}
set config(2) {{- 1} 50 65 50 65}
set config(3) {{- 2} 55 128 55 128}

# end of file

Revision history for this message
Muhammad Gelbana (m-gelbana) said :
#2

These files don't exist:
/proc/apm
/proc/acpi/ac_adapter/0/status (Only /proc/acpi/ directory exists)

Will they be created automatically ?

How can I make sure the service starts automatically when Ubuntu starts without having to run step 4 ? Will step 3 be enough considering that I restart my machine ?

About the geometry, is this a valid example regardless the dimension, is this avalid format ?
set config(geometry) {48x48}

*What does the "daemon" configuration do ? make the service run in the background ? Isn't a service considered a daemon already ?!

I see in your sample that you considered that I have one fan, how did you know that just by knowing my model ? How can I know that my self ? And why state 0 and 1 (i.e. config(0) and config(1)) are exactly the same ?!

I'm a Java developer and I don't know C nor TCL, is there ANY way I can help with development ? I'd really like to support this tool.

Thank a lot for answering my question and pardon my load of questions :)

Revision history for this message
vitorafsr (vitorafsr) said :
#3

I that have to say thank you: thanks for the questions. They are very elucidative; your doubts help to priorize information.

Now, lets go to the answers.

i8kutils was implemented reverse engineering a file from Windows that controls the fans speed. And from this file there exist a 'core' assemble code that is the base of everything. (This assemble code is in the kernel module 'i8k'.) This basis provide information from the hardware in a try and error basis. That put, thereis no formal way to know the components of hardware inside a Dell notebook besides the information that we could collect over the years from users saying what work and what not. Dell never helped this development, nor provided any doc, data sheet, any info, and there is no official standard.

With this I can answer the question concerning how I know you have just the right fan. The case is, your right fan can be turned on issuing 'i8kfan - 2', and can be turned off with 'i8kfan - 0', but you can not do this with 'i8kfan 2 -' and 'i8kfan 0 -'. And this is the majority of cases with Dell models. So, this is known from knowledge base.

And about the duplicated states 0 and 1: this is due historical reasons. In the first versions, the configuration file was for models with two fans, and 4 states were used to define a set of thresholds to keep notebook cold and quiet. Updating that and keeping four states, one state is duplicated.

The files /proc/apm and /proc/acpi/ac_adapter/0/status are there for others models, others OSes with different set of packages. The case of this development is that it is not a self contained software, clean, that keeps just what is needed. Along the years, everything that is added, have to be keept for compatibility, so there are some unused thing for some people.

The geometry set to {} is to disable the applet. If you think it is interesting to have, just put

 set config(geometry) 48x48

(without curly brackets.)

In the installation, the scripts update the OS to start the monitor at boot. It is necessary just to perform step 3 as you suspected.

Now I'd say that I began updating this package this year as I bought a Dell notebook. The only thing I think about help is you contribute with your view of this package, of how this package would be improved. So, let's change sides. In advance, pardon for the questions.

How was your first impression of this package considering all the information found over the net?

Is this really necessary to have a graphical user interface? Do you consider useful to have a applet showing information about the monitor in action? Or just a daemon monitor running in background is sufficient.

Today, the software uses two sets of thresholds: one for the notebook on-line with AC adapter plugged, and one when batery powered. Do you consider this really necessary, or the same threshold for both cases are ok?

I consider this a helpful contribution. And in all other cases of bugs, it is just to report the bugs.

Revision history for this message
Muhammad Gelbana (m-gelbana) said :
#4

Thanks a lot for your patience to answer my question. And for your contribution to the community :)

Now let me answer your questions:

About the information on the internet, I simply suffered. After 2.5 months of using Ubuntu I considered switching back to Windows numerous times but I hated the idea of using microsoft products again. Someone kindly directed me to i8kutils (https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1272781). That's how I knew about it. Unfortunately Google doesn't direct someone easily to your tool, specially that it doesn't have a homepage or something. A simple home page would be awesome, with all the information mentioned here put on it, installation steps for different Ubuntu\Linux versions. A wiki may be.

Installation wasn't easy, as I said, updated configuration (i.e. for Ubuntu 13.10) was hard to find.

It is VERY necessary to have a UI. Linux newbies like my self need it. The fan issue alone could make someone leave Linux and switch back to Windows. I mean, how could an operating system not be able to handle a fan !!!!! It's really frustrating, specially the noise !

-"Do you consider useful to have a applet showing information about the monitor in action? Or just a daemon monitor running in background is sufficient."

I don't understand your question clearly. By applet you mean the monitor application that could be started by i8kmon ? By daemon monitor you mean a monitor running as a service (in the background) ?

I don't think 2 thresholds are necessary. One cannot sacrifice his hardware for longer battery life !

Revision history for this message
Muhammad Gelbana (m-gelbana) said :
#5

Forgot to say that my current version is 1.27 while the latest one is 1.40 for Trusty and 1.39 for Saucy (My version) but I still didn't get an update.