echo 75000 > /sys/class/thermal/thermal_zone0/trip_point_1_temp - Permission denied!!

Seth Forshee seth.forshee at canonical.com
Mon Jun 9 19:34:14 UTC 2014


On Mon, Jun 09, 2014 at 03:25:26PM -0400, John Hupp wrote:
> On 6/9/2014 2:25 PM, Seth Forshee wrote:
> >On Mon, Jun 09, 2014 at 12:57:38PM -0400, John Hupp wrote:
> >>On 6/9/2014 10:20 AM, Seth Forshee wrote:
> >>>On Thu, Jun 05, 2014 at 10:39:46AM -0400, John Hupp wrote:
> >>>>Trying to edit an acpi thermal trip point, I show from
> >>>>/sys/class/thermal/thermal_zone0:
> >>>>
> >>>>$ echo 75000 > trip_point_1_temp
> >>>>bash: trip_point_1_temp: Permission denied
> >>>This command isn't going to work unless you're in a root shell.
> >>>
> >>>>I get the same result using sudo.
> >>>Is it really the same, or does it say "Operation not permitted" instead?
> >>>If so, then it probably means that the driver behind that trip point
> >>>does not support changing the trip point temperature (which isn't
> >>>necessarily a bug, it might really be impossible to change it).
> >>Yes, I verify "Permission  denied":
> >>$ sudo sh -c "echo 75000 > trip_point_1_temp"
> >>sh: 1: cannot create trip_point_1_temp: Permission denied
> >>
> >>Since posting, I found this 2007 article that says the kernel no
> >>longer (as of 2.6.22) supports changing the trip points:
> >>http://lwn.net/Articles/244595/
> >>
> >>Many people reportedly complained about that kernel change, so I
> >>wonder, is the current kernel design still such that the trip points
> >>cannot be changed?
> >>
> >>Since there are currently no active fan cooling trip points set for
> >>this Lenovo 3000, only the passive one at 87 C and the critical one
> >>at 102 C, if I want some active cooling, is my only recourse to
> >>modify the DSDT?  That would seem like a needlessly deep dive, but
> >>I'd like to know if it's my only option.
> >You don't say what kernel you're running, so I'm looking at the trusty
> >kernel source. There it's possible to change the set points if the
> >platform thermal driver supplies a set_trip_temp() callback. But if
> >that's not there the call should return EPERM, "Operation not
> >permitted," rather than EACCESS, "Permission denied." So maybe the error
> >comes from elsewhere.
> >
> >If this is truly the ACPI thermal driver though (hint: cat /sys/.../type)
> >then it does not supply a set_trip_temp() callback, so attempting to
> >override the values in the ACPI tables isn't going to work.
> 
> Yes, I omitted that info in the original post.  In the hasty
> follow-up I supplied:
>     This is under Lubuntu 14.04 32-bit desktop version, with kernel
> 3.13.0-27.50-generic.

So you did, my mistake.

> And thanks, I need hints.  The thermal zone Type is acpitz, and your
> note above that the ACPI thermal driver does not supply a
> set_trip_temp() callback seems to answer my question about whether
> the current kernel supports creating/changing acpi trip points.  The
> answer would be NO.
> 
> Colin Ian King's suggestion to try the newly minted thermald
> (https://wiki.ubuntu.com/Kernel/PowerManagement/ThermalIssues) seems
> to aim at solving just the kind of problem I'm pointing out.

Yep, if that works out then it's your best option.

> But if it didn't, I would still have the (unlikeable) option of
> telling the kernel to use a modified DSDT table, wouldn't I?

I suppose either that or building a kernel without the ACPI thermal
driver, or with the driver modified to suit your needs.




More information about the kernel-team mailing list