firmware icon indicating copy to clipboard operation
firmware copied to clipboard

No fan on chromebook pixel 2013 + ubuntu desktop 18.04

Open williamyoon opened this issue 5 years ago • 20 comments
trafficstars

Hi, I have flashed mr chomebox bios and installed ubuntu 18.04 on my google chromebook pixel 2013 (non lte). I noticed the fans are not running.

Is this caused by the firmware?

williamyoon avatar Apr 24 '20 02:04 williamyoon

fan is set to auto mode by the firmware on boot. mine fan speed is 1200 rpm, which is inaudible. Run something that stresses the CPU (like stress -c 4) and you will hear the fan kick in.

unrelated, it's not ideal to be running a 2 year old version of Ubuntu, even if it is LTS

MrChromebox avatar Apr 24 '20 03:04 MrChromebox

Hey, just chiming in on an old topic. There seems to be something going on with the Linux kernel. Anything from 5.3 and onwards will kill the fans to almost standstill while running anything 5.2.x or prior will ramp up the fan as necessary. (I'm currently using mainline 5.1.21 on Ubuntu 21.04) I'm a bit confused as to EC is supposed to be handling all the fan controls? (#92)

Also I'm okay with the fans running a bit louder than it currently is and wish to run the device a bit cooler, but I couldn't access or tune PWM with lm_sensors or fancontrol because... EC. Is there any way I could ramp the fan speed up a bit more aggressively?

LPFchan avatar Sep 18 '21 08:09 LPFchan

Google's ectool, which is part of the ChromeEC source, is the only user tool for interfacing with the fan, and getting it to compile/run is increasingly difficult. I have the fan set to auto mode on boot so the kernel shouldn't be screwing with it. Give me a distro I can live/boot and test which exhibits the problem and I'll see what I can find

MrChromebox avatar Sep 18 '21 22:09 MrChromebox

@MrChromebox Distro is Ubuntu 21.04. It seems like there's two different bugs currently affecting link and I'm not sure if those two are independent or correlated to each other. I've spent some time testing out many versions of mainline(upstream) kernels and here's what I found out:

Here are the problematic behaviours: Fan halts itself every 3.9 seconds approximately and doesn't speed up under load. And system doesn't go to suspend and wakes up instantly. cat /var/log/syslog reports Device cros-ec-lightbar.6.auto failed to suspend: error -22. Same thing happens both on the Ubuntu kernel and the Mainline(Upstream) kernels so I doubt this is distro-specific.

  • Ubuntu 21.04 Stock kernel (5.11.0-16-generic, 5.11.0-34-generic): Slow fan, Failed suspend
  • Upstream 5.11.0-051100-generic: Same behaviour
  • Upstream 5.10.0-051000-generic: Same behaviour
  • ...
  • Upstream 5.10.0-051000rc1-generic: Same behaviour (Slow fan, Failed suspend)
  • Upstream 5.9.16-050916-generic: Suspend works, Fan is slow on boot. However when I wake up from suspend the fan ramps up as normal.
  • ...
  • Upstream 5.8.0-050800-generic: Suspend works, Fan works sometimes and sometimes don't.
  • Upstream 5.7.19-050719-generic: Suspend and Fan works as it should pretty reliably

I can definitely work my way around the bug by setting 5.7.19 as grub default and daily driving it, but it would be rewarding to find out where the bug came from and see it fixed. Though I'm pretty sure this is a kernel issue but I just wanted make sure it's not UEFI/BIOS thing before taking this to bugzilla.kernel.org

LPFchan avatar Sep 19 '21 07:09 LPFchan

what happens if you blacklist the lightbar or chrome-ec-lpc driver(s)?

MrChromebox avatar Sep 19 '21 22:09 MrChromebox

Blacklisted the cros_ec_lightbar module only at first (on the latest 5.11.0-34-generic kernel) Fan is slow on boot, Suspend works, and then when it wakes up from suspend the fan starts to ramp up as normal. It behaves like 5.9.16-050916-generic.

Then I blacklisted the cros_ec_lpcs module, now fan and suspend works as it should. Though it seems like every cros module other than cros_kbd_led_backlight is gone after that? (cros_ec_chardev, cros_ec_debugfs, cros_ec_sysfs, cros_ec_lightbar, cros_kbd_led_backlight, cros_ec_dev)

$ lsmod | grep cros
cros_kbd_led_backlight    16384  0

(I checked the dependencies but I don't really understand why other modules went away with it)

$ modinfo -F depends cros_ec_lpcs
cros_ec
$ modinfo -F depends cros_ec     

LPFchan avatar Sep 20 '21 02:09 LPFchan

sounds like something broke in those drivers and/or the way they interact with the rest of the kernel in 5.9+

MrChromebox avatar Sep 20 '21 16:09 MrChromebox

Do you know for what purpose are those drivers there for in the first place? I've been running it blacklisted for a while and it seems like everything runs just as normal.

On Tue, Sep 21, 2021 at 1:12 AM MrChromebox @.***> wrote:

sounds like something broke in those drivers and/or the way they interact with the rest of the kernel in 5.9+

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/MrChromebox/firmware/issues/200#issuecomment-923070933, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALZWSKEJZFGLITE4R7B3WTUC5MOVANCNFSM4MPW6IVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

LPFchan avatar Sep 20 '21 16:09 LPFchan

I also had this fan issue with my Chromebook Pixel 2013 running Ubuntu 20.04 with kernel 5.11. I solved it by installing an older 5.4 kernel.

I followed this approach to keep the kernel on 5.4.x: https://askubuntu.com/a/1306420

erkserkserks avatar Dec 06 '21 01:12 erkserkserks

LPFchan and MrChromebox - you guys are brilliant - blacklisted cros_ec_lpcs by following this procedure (https://linuxconfig.org/how-to-blacklist-a-module-on-ubuntu-debian-linux) and worked like a charm!!! Thanks again!!!!

robotcarnival avatar Feb 23 '22 00:02 robotcarnival

LPFchan and MrChromebox - you guys are brilliant - blacklisted cros_ec_lpcs by following this procedure (https://linuxconfig.org/how-to-blacklist-a-module-on-ubuntu-debian-linux) and worked like a charm!!! Thanks again!!!!

This worked! Just tested it out on Elementary 6.1 and fan works perfectly now. Thank you thank you

bpvarsity avatar Feb 23 '22 03:02 bpvarsity

I am having an issue with the fans with Manjaro. I have tried 6 different kernels and no change there.

Its not like when on Mint, Elementary, Ubuntu etc where the fan doesn't spin or barely spins instead it seems to be having a fan curve issue.

I can run stress -c 4 and it doesn't ramp up until its 90 C and when it does its at 50% max fan speed. It will maintain 1200rpm until it hits 90C then it will go to 50%/6000rpm. The fans can go 9000rpm when at 100%,

I have even gotten the temps to 94 C and still no more than 50%. The problem is at 50% it can only maintain the 90-92 C temp not lower it. If I manually run ectool fanduty 100 I can kick those fans up and cool the cpu down quickly.

Is there anyway to change the fan curve? Lately I have been booting up and manually setting fans to 50% and when I do more intense actions I bump it up to 70-80% depending on the temp. I would prefer this to be automatic and have the ability to kick those fans beyond 50%.

Thanks for the help.

Edit: I have added cros_ec_lpcs to the blacklist.conf under /etc/modprobe.d but didn't see any differences.

Bortus-AI avatar Sep 19 '22 02:09 Bortus-AI

Okay well I found a solution. This python service lets you adjust the curve and its amazing! Starts on boot and I can set it to a preset curve profile or make my own.

Here it is for those who want this control as well

Edit forgot link. (https://github.com/TamtamHero/fw-fanctrl)

Bortus-AI avatar Sep 19 '22 03:09 Bortus-AI

LINK has an issue with the CPU speed being pegged at the base clock (1.8GHz) and not scaling up or down. That directly affects the CPU temp and therefor fan duty cycle. Keep an eye out on temps if you're going to be adjusting the speed manually

MrChromebox avatar Sep 19 '22 14:09 MrChromebox

LINK has an issue with the CPU speed being pegged at the base clock (1.8GHz) and not scaling up or down. That directly affects the CPU temp and therefor fan duty cycle. Keep an eye out on temps if you're going to be adjusting the speed manually

Do you know of a better way to do this? Its very annoying that the fans max out at 50% when set to auto. I am not a fan of the cpu holding at 90C when it could cool itself down if it just increased the fan speed

Bortus-AI avatar Sep 19 '22 14:09 Bortus-AI

I don't, just letting you know what the root cause is

MrChromebox avatar Sep 19 '22 15:09 MrChromebox

I don't, just letting you know what the root cause is

Ah I made a mistake in posting in this issue. I have the Chromebook Pixel 2015 LS Samus. I believe the 1.8GHz just affected the 2013 version unless I am mistaken.

Bortus-AI avatar Sep 19 '22 17:09 Bortus-AI

that's correct, the 2015 version is SAMUS

MrChromebox avatar Sep 19 '22 19:09 MrChromebox

I'm on a Dell Chromebox 3010 and I added blacklist cros_ec_lpcs to /etc/modprobe.d/blacklist.conf per the above notes.

It did remove the cros_ec_lpcs EC ID not detected error on boot but it appears the fan still just stays at one speed. I installed lm-sensors and it can see temps but not fan speed. Does the Chromebox not even have fan speed control?

user8446 avatar Dec 02 '22 18:12 user8446

@user8446 please open a separate issue for your device, it does not have an embedded controller

MrChromebox avatar Dec 02 '22 19:12 MrChromebox