Thursday, February 25, 2010

Followup on Super Hybrid Engine (SuperHE) on 1005PE

The solution for enabling SuperHE is trivial, for my purposes at least.

A modern kernel should load the eeepc_laptop kernel module, and this has support for SuperHE out of the box. UNR and other distributions will not enable it however. That's up to you.

The eeepc_laptop module exposes an interface via the sys filesystem.

#echo 2 > /sys/devices/platform/eeepc/cpufv

Will turn it on. (Note it's done as root.)
In order to have this be the case after a resume from suspend or hibernate, you have to add a bash script to the power management tools, located in /etc/pm/sleep.d

All scripts in this directory are called when your system sleeps or hibernates, or wakes up or resumes. It is passed a parameter matching that action. Resuming from sleep is "resume", and waking up from hibernate is "thaw".


#!/bin/sh
case "$1" in
resume|thaw)
echo 2 > /sys/devices/platform/eeepc/cpufv
;;
esac


I named this "10_superhe" as the other scripts were prefixed with a "10". My guess is it deals with ordering, much like the init system. It shouldn't really matter. Make sure it is executable "chmod a+x 10_superhe" and that should be it!

When my system resumes or thaws, there is an extra half second pause (this would always happen when enabling superhe), and so I could tell it was working. You can verify by "cat cpufv" within the eeepc directory.

Note that this won't run after a traditional boot. You can use rc.local or your .xinitrc for that. Note also that this makes SuperHE on maximum power save all the time. That is how I want it, as if I'm using this thing, I'm on battery. It charges near my desktop. I'm sure this script could hook in to laptop_mode or maybe even cpufreqd if you want superhe only on when on battery. It is possible that this would then only be enabled upon switching to battery, and wouldn't persist past a resume. In that case, you would have to use a more complex system that would track battery state.

3 comments:

  1. Thanks a lot. It works perfectly.
    Satya.

    ReplyDelete
  2. If you create a similar script in the /etc/pm/power.d folder with just the echo command, this will set the cpufv option to 2 on boot up.

    I'm sure there's a better way to do this, but that's working for me (I just took your info here and applied it in the power.d folder).

    ReplyDelete
  3. Hi there JST!

    Do you still own your Asus EeePC? You happen to have *exactly* the same model as I do, 1005PE-PU17 (the one with bluetooth and 14hrs battery). This is a *very* rare model, few people have it, and youre the only one Ive found so far.

    I also had Ubuntu + Windows in dual boot for over an year, but I somehow screwed up my recover partition. After restoring it from backup (glad I have it), I can still access its files, but it does not boot anymore. And Im trying to fix it.

    Could you PLEASE reply to me? Im desperate for some fdisk / dd images of bootsectors and such, so I can retore it to factory settings. I BEG you to contact me. Habing the same model as me, you are my only hope to find out how Restore Partition + BootBooster + ExpressGate are truly related.

    Email: rodrigosilva@rodrigosilva.com
    IM (MSN): mestrelion@hotmail.com
    Skype: mestrelion

    Please, youre my only hope!

    ReplyDelete