As always destiny seems to challenge our will to reach the peak! > Another option to reduce the whistle is to run "powertop --auto-tune" > after boot. Here's a service definition I put into my OS config to > do this: > > --8<---------------cut here---------------start------------->8--- > (define (powertop-auto-tune-service) > (let ((powertop #~(string-append #$powertop "/sbin/powertop"))) > (with-monad %store-monad > (return > (service > (documentation "Run powertop --auto-tune.") > (provision '(powertop-auto-tune)) > (requirement '(user-processes)) > (start #~(lambda _ > (zero? (system* #$powertop "--auto-tune"))))))))) > --8<---------------cut here---------------end--------------->8--- > > And then include (powertop-auto-tune-service) in the 'services' field. > Note, you'll need to import some extra modules at the top of the file: > > --8<---------------cut here---------------start------------->8--- > (use-modules (gnu) > (gnu services) > (guix gexp) > (guix store) > (guix monads)) > --8<---------------cut here---------------end--------------->8--- > > [...] > > My workaround was to add another service that disables the > second CPU core when it gets too hot. Here's the service definition I > used: > > --8<---------------cut here---------------start------------->8--- > (define (temperature-regulation-service) > (with-monad %store-monad > (return > (service > (documentation "Regulate temperature on an overclocked Libreboot > X60.") > (provision '(temperature-regulation)) > (requirement '(user-processes)) > (start #~(lambda _ > (let ((pid (primitive-fork))) > (if (positive? pid) > pid > (let () > (define (current-temp) > (call-with-input-file > "/sys/class/thermal/thermal_zone0/temp" > read)) > (define (set-cpu1-online! online?) > (call-with-output-file > "/sys/devices/system/cpu/cpu1/online" > (lambda (port) > (write (if online? 1 0) port)))) > (let loop () > (let ((temp (current-temp))) > (cond ((< temp 88000) (set-cpu1-online! > #t)) > ((> temp 92000) (set-cpu1-online! > #f)))) > (sleep 2) > (loop))))))) > (stop #~(make-kill-destructor)) > (respawn? #t))))) > --8<---------------cut here---------------end--------------->8--- > > and as above, you'll need to add (temperature-regulation-service) to > the > services field, and of course run "guix system reconfigure " > and reboot. > Should i add (define (temperature-regulation-service)... and (define (powertop-auto-tune-service)... inside (operating-system) definition ? Actually "sudo guix system reconfigure /etc/config_20151024_B.scm" returns "/etc/config_20151024_B.scm:10:0: error: source expression failed to match any pattern". I've attached my config file for details". Where am i mistaking ? Note: as you can see i defined locale de_DE.utf8: if i redefine it to en_GB.utf8, does 'system reconfigure' will update my locales ? I'm actually planning to properly learn Scheme to correct this things autonomosly" Thanks for reading!