From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9m7W-0000ue-FL for guix-patches@gnu.org; Sun, 14 May 2017 01:31:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9m7S-0004mQ-B3 for guix-patches@gnu.org; Sun, 14 May 2017 01:31:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:40800) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9m7S-0004m9-66 for guix-patches@gnu.org; Sun, 14 May 2017 01:31:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d9m7S-0000bB-0E for guix-patches@gnu.org; Sun, 14 May 2017 01:31:02 -0400 Subject: bug#26919: [PATCH] Add thermald and thermald-service-type (for cpu frequency scaling) Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9m6F-0000e3-NK for guix-patches@gnu.org; Sun, 14 May 2017 01:29:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9m6C-00040F-F5 for guix-patches@gnu.org; Sun, 14 May 2017 01:29:47 -0400 Received: from dustycloud.org ([50.116.34.160]:39528) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d9m6C-000407-9C for guix-patches@gnu.org; Sun, 14 May 2017 01:29:44 -0400 Received: from oolong (localhost [127.0.0.1]) by dustycloud.org (Postfix) with ESMTPS id 3AF1A265D4 for ; Sun, 14 May 2017 01:29:42 -0400 (EDT) From: Christopher Allan Webber Date: Sun, 14 May 2017 00:29:36 -0500 Message-ID: <87y3u080qn.fsf@dustycloud.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 26919@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Trying again, since last time I accidentally sent to bug-guix... oops. Hello! I got tired of my laptop crashing so much due to overheating, so here's a package for thermald as well as a service type. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-thermald.patch Content-Transfer-Encoding: quoted-printable From=2056c7019d58d4a064fe44e626a1396b62cbf808b0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 May 2017 19:36:01 -0500 Subject: [PATCH 1/2] gnu: Add thermald. * gnu/packages/admin.scm (thermald): New variable. =2D-- gnu/packages/admin.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ff0431999..20cb8f180 100644 =2D-- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -17,6 +17,7 @@ ;;; Copyright =C2=A9 2016 John Darrington ;;; Copyright =C2=A9 2017 Ben Sturmfels ;;; Copyright =C2=A9 2017 Ethan R. Jones +;;; Copyright =C2=A9 2017 Christopher Allan Webber ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,7 +81,8 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) #:use-module (gnu packages kerberos) =2D #:use-module (gnu packages gtk)) + #:use-module (gnu packages gtk) + #:use-module (gnu packages xml)) =20 (define-public aide (package @@ -2130,3 +2132,53 @@ logo, or any ASCII file of your choice. The main pu= rpose of Neofetch is to be used in screenshots to show other users what operating system or distribut= ion you are running, what theme or icon set you are using, etc.") (license license:expat))) + +(define-public thermald + (package + (name "thermald") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/01org/thermal_daemon/archive= /v" + version ".tar.gz")) + (sha256 (base32 + "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after + 'unpack 'autogen.sh-and-fix-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; upstartconfir is hardcoded to /etc/init and the = build + ;; system tries to mkdir that. We don't even need = upstart + ;; files at all; this is a fast and kludgy workarou= nd + (substitute* "data/Makefile.am" + (("upstartconfdir =3D /etc/init") + (string-append "upstartconfdir =3D " + out "/etc/init"))) + ;; Now run autogen + (zero? (system* "sh" "autogen.sh")))))) + #:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "--sysconfdir=3D" + out "/etc") + (string-append "--with-udev-dir=3D" + out "/lib/udev") + (string-append "--with-dbus-sys-dir=3D" + out "/etc/dbus-1/system.d") + "--localstatedir=3D/var")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("glib" ,glib "bin") ; for glib-genmarshal, etc. + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("libxml2" ,libxml2))) + (home-page "https://01.org/linux-thermal-daemon/") + (synopsis "CPU scaling for thermal management") + (description "The Linux Thermal Daemon helps monitor and control tempe= rature +on systems running the Linux kernel.") + (license license:gpl2+))) =2D-=20 2.12.2 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-services-Add-thermald-service-type.patch Content-Transfer-Encoding: quoted-printable From=20de2045cdc81ddef7b01b3445fb731a3252f5b4a8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 May 2017 19:37:02 -0500 Subject: [PATCH 2/2] services: Add 'thermald-service-type'. * gnu/services/admin.scm (): New record type. (thermald-shepherd-service, thermald-service-type): New variables. * doc/guix.texi (Thermal Management): New section documenting thermald. =2D-- doc/guix.texi | 23 ++++++++++++++++++++++- gnu/services/admin.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++= ---- 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 22dc8b3f9..1fee7616c 100644 =2D-- a/doc/guix.texi +++ b/doc/guix.texi @@ -35,7 +35,8 @@ Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* =2DCopyright @copyright{} 2017 humanitiesNerd +Copyright @copyright{} 2017 humanitiesNerd@* +Copyright @copyright{} 2017 Christopher Allan Webber =20 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -14746,6 +14747,26 @@ The following is an example @code{dicod-service} c= onfiguration. %dicod-database:gcide)))) @end example =20 +@subsection Thermal Management + +The @code{(gnu services admin)} module provides an interface to +thermald, a cpu frequency scaling service which helps prevent overheating. + +@defvr {Scheme Variable} thermald-service-type +This is the service type for thermald. +@end defvr + +@deftp {Data Type} thermald-configuration +Data type representing the configuration of THERMALD-SERVICE. + +@table @asis +@item @code{ignore-cpuid-check?} {default: @code{#f}} +Ignore cpuid check for supported CPU models. + +@end table +@end deftp + + @subsubsection Version Control =20 The @code{(gnu services version-control)} module provides the following se= rvices: diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 6ac24e32b..ec274b416 100644 =2D-- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -32,17 +32,27 @@ rottlog-configuration rottlog-configuration? rottlog-service =2D rottlog-service-type)) + rottlog-service-type + + thermald-configuration + thermald-service-type)) =20 ;;; Commentary: ;;; =2D;;; This module implements configuration of rottlog by writing +;;; Various administration services. +;;; +;;; Code: + + + +;;; +;;; Rotlog +;;; +;;; This service implements configuration of rottlog by writing ;;; /etc/rottlog/{rc,hourly|daily|weekly}. Example usage ;;; ;;; (mcron-service) ;;; (service rottlog-service-type (rottlog-configuration)) =2D;;; =2D;;; Code: =20 (define %rotated-files ;; Syslog files subject to rotation. @@ -118,4 +128,37 @@ (compose list rottlog-rottlog)))) (default-value (rottlog-configuration)))) =20 + + +;;; +;;; thermald +;;; +;;; This service implements cpu scaling. Helps prevent overheating! + +(define-record-type* + thermald-configuration make-thermald-configuration + thermald-configuration? + (ignore-cpuid-check? thermald-ignore-cpuid-check? + (default #f))) + +(define (thermald-shepherd-service config) + (list + (shepherd-service + (provision '(thermald)) + (documentation "Run thermald cpu frequency scaling.") + (start #~(make-forkexec-constructor + '(#$(file-append thermald "/sbin/thermald") + "--no-daemon" + #$@(if (thermald-ignore-cpuid-check? config) + '("--ignore-cpuid-check") + '())))) + (stop #~(make-kill-destructor))))) + +(define thermald-service-type + (service-type + (name 'thermald) + (extensions (list (service-extension shepherd-root-service-type + thermald-shepherd-service))) + (default-value (thermald-configuration)))) + ;;; admin.scm ends here =2D-=20 2.12.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEUQqGKOKndniPjHCcS8Alkl/49NMFAlkX60AACgkQS8Alkl/4 9NN8yA/8Cdy1Iiq0ctXa98jM+Mk3Ceo2yA6swZj9OTKPJdjtV76y4wGREoykkJ3z c7i8G99NCggNK7XV1QClCTOASB2spVluuiBhRT+Cpel7T8wKN2rNI1fowXJNR1GK 4pnmb0ax71E+pN4y7I9IMEVKcHrqQHeyeYZDHZ2Y+qtoj6CrzsCB4+Ru7mKdIHEc K+IRmgKsKCY/jM/5nO/j6XdXWTUkY3KDobTtJ/kLxf6OrrhxVuI9vK2tCPN3kO4i dyU6A17Xg/L2SsFm58fSW94g8WsWaOBbKlAVROXwz5Slfq/CKwvrFhBxLNW6PMFb ZcVAIeeKMen4G6UKPJ8rYvGivBDYimuODMQQD5e+u2Oo3189rwYZxhZ6bZkGDd8L ABawLt4nG7+Jb5hUjEALTPwepdjiAtM6I/YgPczfTN+7qNwI2JoKR/UE35FJjYBf k3WaCE2DSb8iyIzlnQzizv8ZWwA5+CrZMh8LAG15B4WTwyDrWj5GRpzFFfm3Lt2U 1FcjNvc+VSuYiVN/Qsi6FLkZnMH1M05yhXpOcui+vP1GH7/McWvj7kA958r395K6 7IENyoN1pDVOfUYofvsJSaayNFE65Om0LUHSaEqdxg9LS90Ji8xA6HTZRERqbYli SXjeVdsqWE3f9RutDSPDzq2mClQGVnlcnZ3RFy30bHi0Pt3zXRg= =C1/K -----END PGP SIGNATURE----- --==-=-=--