Temperatures inside pc high?
So this thread here is just gonne semi-related to Trisquel.
Well... more accurately it will either be related or unrelated depending on the comments I guess.
Anyway, after I switched from MacOS to Trisquel Mini I experienced a very hot machine, like I could not remember from before. I should mention that I didn't actually actively measure the temperatures before I switched. So this could very well just be a result of me kinda "looking for problems".
But still, the machine seems unnecessary warm, even at CPU percentage use around 0%.
I see some of the sensors showing around 70-80 degrees celsius at 0% use.
My question is: any other people in here struggle with this, and if so, what computer do you have etc?
I am on a MacBook Pro 9.1 for reference.
Wouf... "gonne", that was a chilling typo.. sorry about that
In my experience, macbook pro's run very hot on Trisquel, though I thought this was especially the case when watching videos.
The machines ran much cooler on apple's proprietary OS. I used one of the machines with Parabola and it also ran much cooler. I never really looked into fixing this issue though, but it was annoying.
All of these observations are based on subjective experience.
Since you are running Trisquel Mini I'm not sure if that could narrow down the possible cause.
Interesting. I wonder why they would run hotter under Trisquel than Parabola? I assume Parabola uses the same Linux-libre kernel that Trisquel does. Perhaps it's a kernel version thing? With Parabola's rolling distribution, it's probably using a newer kernel than Trisquel and maybe they've improved the support for more recent Apple hardware. Would be good to try one with Trisquel 8 and see if it is any better.
Maybe the OP could try booting a Parabola live USB and let us know if it improves?
(EDIT: The table on this page shows that Parabola is using quite a 'bleeding edge' kernel:
Or, simpler, install a 4.14 Linux-libre kernel using jxself's repository: https://jxself.org/linux-libre/
Good idea :-D
Tried to follow the instructions there and on the first command I got "E: Invalid operation eidt-sources" :/
Do you see your typo there? That's why.
I'm so sorry, you're absolutely correct. I'll try again.
Both macbook pro's where this happened were using jxself's kernel. Most likely lts, but I'm not sure.
Okay, I corrected my typo and I got "Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
Choose 1-4 [2]:
"
Is this something I have to choose because this is the first time I am using this command or something like this? :)
This step isn't mentioned in the link
If you are not experienced, just use nano. Be aware that you can only use the keyboard when working with nano, not the mouse/touchpad. You usually get prompted things like that when setting up some programs.
Allright! I just chose the nano for simplicity for now. But then I got this thing (see screenshot).
Is this also some kind of step I have to go through because it is the first time I do this?
As https://jxself.org/linux-libre/ instructs, add the following line:
deb http://linux-libre.fsfla.org/pub/linux-libre/freesh/ freesh main
That said, here is an alternative way to add the line, without a text editor. This command:
$ echo 'deb http://linux-libre.fsfla.org/pub/linux-libre/freesh/ freesh main' | sudo tee -a /etc/apt/sources.list
Given your record of typos, I suggest you copy-paste this command in a terminal. If you forget the "-a" option, you would actually overwrite the content of /etc/apt/sources.list instead of appending a line to it!
Once the line added (whatever the method), proceed with the subsequent instructions on https://jxself.org/linux-libre/
Okay so I just added that line just atop all that stuff. Then I presses ctrl+x to exit and then saved the changes. I didn't specifically choose the format, I just pressed enter. And then I was taken back to the terminal.
Then I did the wget https://jxself.org/gpg.inc
Then I checked the key. And the key was good.
Then I did the sudo apt-key add gpg.inc
- And got "OK" after I confirmed my password.
Then I did the rm gpg.inc
- But nothing at all happened. The terminal just hopped down to receive another command as if nothing happened.
Then I did sudo apt update
- All packages are up to date.
Then I did grep --color=always -i PAE /proc/cpuinfo
- PAE was indeed highlighted in red, so I interpreted that as a "good to go".
Then I did sudo apt install linux-libre-4.14
- I got this:
"Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-libre-4.14
E: Couldn't find any package by glob 'linux-libre-4.14'
E: Couldn't find any package by regex 'linux-libre-4.14'
"
:/
I tried to be veeery cautious about my typos, but should I try the whole shabang one more time, from the beginning?
That looks all right... unless you did not properly copied the line in /etc/apt/sources.list. Double-check it and modify it if necessary. I suggest you use a graphical text editor to feel more at ease. Since you are using Trisquel 8, here is how to open /etc/apt/sources.list with the pluma text editor and administrative privileges:
$ gksu pluma /etc/apt/sources.list
I double checked the line in the sources list, and I moved it down amongst the other lines that had the similar kinda look to check if the helped. It didn't. But what do you actually mean with "/etc/apt/sources.list"?
Edit: Oh, you were referring to the text editor version?
It is the file 'sudo apt edit-sources' edits. It looks like "linux-libre-4.14" is really absent from the repository (and "linux-libre-4.13" is still there): https://linux-libre.fsfla.org/pub/linux-libre/freesh/pool/main/l/
Try this command, which will install the Linux-libre 4.14 but will switch to the next LTS version once available:
$ sudo apt install linux-libre-lts
Next reboot will be on that version indeed.
On a side note, 'sudo apt-get autoremove' would remove some packages that you no longer need.
Awesome :) Thank you for everything. So I need to restart computer for changes to take effect?:)
Yes. A kernel update is the only case where the system needs to be rebooted to use the newer version.
When you say "reboot", do you mean the same as "restart"?
Anyway, I restarted the computer and at first sight it actually looks a little bit better.
My temps now (Package id 0, core 0, core 1, core 2, core 3 and "temp 1" have not yet gone over 72 celsius, and they seem to stabilize around 68, which is effectively 10 degrees lower than before. But I'll give it some more time
A "reboot" is a "restart" of the computer (you can "restart" a single program). 'reboot' also is the name of a command to, well, reboot.
What is the fan speed showing as? (and what max. is shown with the 'sensors' command?)
Now I just opened the laptop from suspend, and the fans are at 2000 rpm, max is 6000
Ok. Is the fan getting up to the max rpm when the machine is hot? In the hot condition, what are the values of fan1_output and fan1_input in the directory I gave in the post below?
"It looks like "linux-libre-4.14" is really absent from the repository (and "linux-libre-4.13" is still there):"
Oh wow; I will get that fixed.
OK; this is fixed now.
But this means that my Linux-libre repo has been slightly broken since 4.14 came out back in November. I wonder why no one ever reported this to me directly? Out of happenstance I happened to find a reference in a thread here, but surely GrevenGull isn't the only person to run into this. Makes me wonder why no one ever said anything to me. Anyway, it is fixed.
I doubt many users install the packages with fixed version numbers.
This is interesting. I use a Macbook 2,1, which is compatible with Libreboot, although my wife has a later Macbook Pro, which I have not attempted to install GNU/Linux on (yet!).
I think the big question is whether the onboard controller that manages the temperature sensors and fan has a free driver. If not, then I would assume linux-libre (which Trisquel uses) would not include the kernel module for it. Is the fan running at all? If you type 'lsmod' to view the installed kernel modules, does it include 'applesmc' (or something similar)? If you have the 'lm-sensors' Trisquel package installed, you can also type 'sensors' on the command line, which should report the temperatures and tell you what rpm the fan is running at. That would be interesting to see.
If the fan is running at a fairly high rpm, then it may be that the machine is just running hotter with the Linux kernel. I read somewhere that the Apple machines can run hotter under Linux, because it doesn't make such effective use of the CPU 'states' when idling, as the Apple kernel does. If that is the case, then you may have to just put up with a hotter machine under Linux (or use an external cooling pad or something). Did you install any other GNU/Linux distro on it, which uses the 'vanilla' Linux kernel, with blobs? Did that perform any better thermally? You can always try that with a live USB and see if it is any better (not that I am recommending switching to non-libre, just curious to know what happens).
It is also possible that the fan may be faulty, although that sounds unlikely, as you indicated that it seemed noticeably hotter after you switched to Trisquel.
If the thermal management is not as good then you should be a bit careful. You might be able to get away with just running a hotter machine, although if the problem is really severe, then you might find it will trip the thermal cut-out (especially at high CPU load), which would be very annoying.
When I type "lsmod" int he terminal, it does indeed include applesmc.
But the fan thing you mention is interesting, because when you mention it, I think I have not heard the fans at all since I switched. So you might be on to something there.
What does the fan speed show as if you use the 'sensors' command (with the lm-sensors package)? If the machine is hot and the fan speed is very low or zero then, if upgrading the kernel doesn't improve it, it's possible that the fan may be faulty. I believe they can be replaced - I got a replacement for my Macbook 2,1 fan from ifixit.com. They may have a replacement for the newer model.
Please note that I am to a large extent speculating here. The Macbook Pro 9,1 is much newer than the Macbook I'm using and I don't know to what extent the hardware is supported by Linux-libre. I recommend trying the newer kernel first.
I installed the lm-sensors through the package manager, but I can't seem to find it anywhere in the menu. I also tried to rund it from alt-F2 and from the terminal, but with no luck.
Yeah, I think I'm going to try the new kernel, because my fans were working properly before I switched. But the site that MagicBanana linked didn't help me unfortunately, unless I misinterpreted the procedure.
If you have 'lm-sensors' installed, then just typing 'sensors' in any terminal prompt should show you the temperatures and fan speed. If not, then there may be a PATH issue.
Ah, cheers! :)
But right now the fans started and I checked also and they running firmly at 4000 ca rpm, so fans are good. Check.
4000 rpm sounds a bit low to me. If your system is set up like mine, the folder /sys/devices/platform/applesmc.768
should contain some files that provide info and configuration options for the fan and sensors. For example, if I cd to that folder and type:
cat fan1_max
it prints '6200', which is the max speed of my fan in rpm. So, assuming your system is similar to mine, 4000 rpm seems a bit low (for the max). What does your fan1_max say?
There are some other useful files in there that might also give you some insight:
cat fan1_input
should show the current speed of the fan.
cat fan1_output
shows what speed is being demanded by the system (signal sent to the fan). If, when your machine is hot, fan1_output is higher than fan1_input, then that shows that the fan isn't able to get up to the speed that the system is demanding, which might be a sign of a faulty fan. Otherwise, if fan1_output isn't equal to fan1_max when your system is hot, that might suggest that whichever software tool is supposed to be controlling the fan (applesmc kernel module?) isn't doing a good job.
Another useful one is fan1_manual, which should be set to 0 by default (auto control), but if you change it to 1, that should allow you to set the fan speed manually, by changing the value of fan1_output. That way, you can play with the fan and see if it is able to get up to a speed that will adequately cool the system.
However, I think the newer kernel is still worth a try too.
What do you mean with "if I "cd" to that folder"?
Edit:
Okay I think I figured it out. I just open terminal and type:
cd /sys/devices/platform/applesmc.768
And then when I write those commands you gave, I get the same info as doing the
sensors
But what I haven't figured out is how I change the fan1_manual to 1.
When I do the
cat fan1_manual
It just prints 0.
cd = change directory. You can change the working directory to that folder by typing:
cd /sys/devices/platform/applesmc.768
Then, you should be able to view the values in the fan1_input and fan1_output files that I mentioned, to see more details of what the fan is doing. With, for example:
cat fan1_input
I'm assuming that your system is similar to mine, although the exact names of the files and directories might be slightly different.
If I do that right now I get:
Output: 3784
Input: 3787
Ok. Is that when the machine is running hot, under load? If so, then that would suggest to me that the controller is not good, because it is not demanding the max rpm when the machine is hot.
Try setting the fan speed to 5800 manually and see if that brings the temperature down.
What do you get if you type:
cat fan1_output
and
cat fan1_input
when the machine is running hot?
fan1_manual will be set to 0 by default, as it will be in 'auto' control mode. I tried setting it to 1 with:
sudo echo 1 > fan1_manual
but that didn't work for some reason. However, I was able to change it by editing the file with:
sudo nano fan1_manual
Once it is set to 1, you should be able to change the fan speed manually, by changing the value of fan1_output in a similar way. You can change back to 'auto' mode when you're done by changing fan1_manual back to 0.
Okay.
Yeah, so my pc is fairly hot right now (even though I'm not doing anything heavy at all, simply using this forum basically.
I have 6 sensors showing at my panel which are in this order: "Package id 0", "Core 0", "Core 1", "Core 2", "Core 3" and "temp1". They're showing at the time of writing, 74, 71, 74, 70, 60 (bopping a little bit up and down).
cat fan1_output: 3677
cat fan1_input: 3680
When using the
sudo nano fan1_manual
Should I just change the blinking 0 to a 1 and then ctrl+x and then press "y" for yes, and then just enter? And then what?
Yes. Just replace the 0 with a 1 and that puts it into manual mode. Then, you can manually change the demanded fan speed by editing fan1_output in the same way. I suggest upping it to around 5800 to see if that helps bring the temps down.
I see! I got it! :D thank you so much! I just set it at max which is 6200.
Can I do this with the fan2 also? What are the potential harms of running the fans at full speed?
Oh, that laptop has 2 fans? I've only got 1 in mine. Were they both running previously? That might explain why they were running at a lower rpm, if you've got two to help with the airflow. I don't see why you shouldn't be able to do the same thing with the second fan to increase the speed. Are there fan2_manual and fan2_output files present in that same folder?
In terms of possible harm/downside of running the fans at a higher speed, the main things I can think of are:
- The laptop will probably be more noisy
- It will use more power and probably drain the battery faster
- You will probably wear out the fans more quickly and need to replace them sooner
These issues will probably be exacerbated as well, if you use the manual mode to set the fans to max constantly, even if the system is not under load. If you can do some coding, you might be able to write some sort of daemon process, that takes over control of the fans using those files, but that is a bit more involved (I haven't done it myself).
The thing is, if the underlying issue is that the CPU is generating more heat under Linux, then you've only really got two options: either accept that the machine will run hotter, or increase the fan speed to deal with the heat.
Oh, that laptop has 2 fans? I've only got 1 in mine. Were they both running previously? That might explain why they were running at a lower rpm, if you've got two to help with the airflow. I don't see why you shouldn't be able to do the same thing with the second fan to increase the speed. Are there fan2_manual and fan2_output files present in that same folder?
Yes I have 2 fans, fan1 is left side I think (the side that gets hot) and fan2 is right side.
Both were running previously.
The left side of the pc gets really hot, while the right side seems much cooler, even though the two fans were running at same rpm.
Yes there are fan2 everything.
Interesting notice: I have now set both fans to 6200 (which is max for both) for some minutes, and while the fan1 was revving up to 6200 immediately, fan2 is still going in 5000. So it seems like either the terminal is guessing wrong, that the max speed for the right (fan2) fan is actually 5000 and not 6200. Or that it is broken in some way. Idk.
If you can do some coding, you might be able to write some sort of daemon process, that takes over control of the fans using those files, but that is a bit more involved (I haven't done it myself).
This seems over my level for now.
The thing is, if the underlying issue is that the CPU is generating more heat under Linux, then you've only really got two options: either accept that the machine will run hotter, or increase the fan speed to deal with the heat.
Fan speed it is xD
Also, you can try doing something more intensive, such as compiling something using multiple cores or playing a video or game. If you do that, does the fan speed increase to help manage the temperature? If not, again, that probably suggests that the controller is not doing its job well, especially if the fan will go faster when adjusted manually.
Well, I'd rather not try that at the moment in fear of frying my pc :p
But shouldn't the controller already be ramping up the rpms, with the temps I gave you in the other reply?
I have now run the fan1 on 6200 and fan2 on 500 for about... some minutes, and the same temp sensors are showing around 68-63
I don't think there should be too much concern about 'frying' the PC. There should be a thermal cut-out that will immediately shut the power off if the machine gets too hot. When I bought my Macbook 2,1 off of Ebay, the fan wasn't working at all and, after 20 mins or so of use, the temps were getting up to around 100C and it was thermally cutting out. Since I replaced the fan with a new one, it's been working great.
Yes, the applesmc controller should be ramping up the fan speed automatically to deal with the heat. Which is why, if it isn't, then it seems like it's not working properly. That was why I mentioned about making a daemon process, to override it. It might be worth finding out which person/team maintains the applesmc kernel module and submitting a bug report to them. That way, they might be able to improve it in a later kernel version (although that probably isn't going to help you much in the short-term).