Page 1 of 10 123 ... LastLast
Results 1 to 10 of 96

Thread: [HowTo] Undervolting the AMD Turion X2 (and some others)

  1. #1
    Join Date
    Jun 2009
    Location
    San Diego,California
    Beans
    65
    Distro
    Ubuntu 12.04 Precise Pangolin

    Exclamation [HowTo] Undervolting the AMD Turion X2 (and some others)

    As most are aware,AMD's processors tend to overheat ... a lot.Worried due to the heat, I searched for some solutions.Undervolting is one of the easier ones,but finding a suitable tool to do the job on the k8 line is difficult.Through my searches I came across TurionPowerControl.
    quoting Ares Drake from HowTo: Undervolt your notebook CPU for longer battery life
    <quote>From wikipedia: Undervolting is the practice of reducing the supply voltage of a computer's CPU. There are many reasons to perform this sort of modification, but a common one is to reduce power consumption and thus heat generation in laptop computers. Lower heat generation provided by undervolting and underclocking is also helpful in making computers quieter.
    Performance will not suffer as the energy you will save was just wasted (as heat) before.

    Safety:
    Undervolting notebook processors is not uncommon. My older notebook (Toshiba S1) even came with a Windows utility that did automatic undervolting preinstalled. So the "undervolted" processor is nothing dangerous.
    </quote>

    Still I take no responsibilities for any damage you may cause to your system.Do this at your own discretion.

    Here are the steps I followed:
    1)Download the TurionPowerControl rar from http://amdath800.dyndns.org/amd/tpc-0.12.rar
    2)Extract the rar.Read the readme.txt.Fire up a terminal ,navigate to the linux src sub-directory and enter
    Code:
     c++ TurionPowerControl.cpp Processor.cpp cpuPrimitives.cpp -o TurionPowerControl
    .This will create a binary file by the name of TurionPowerControl in that folder.Copy this file over to /bin (requires root access).
    3)Now the program is in place.To execute it,you need to first load the modules cpuid and msr.
    Code:
    sudo modprobe msr
    sudo modprobe cpuid
    Thats it. To run it simply execute
    Code:
    sudo TurionPowerControl -{*}
    Replace the {*} with suitable commands,listed in the readme.

    I have a Turion X2 2.1 ghz processor,and this works for me.At least from what TPC tells.Do tell if you know of a more official/ better way to verify the processor voltages.

    Tip: I would suggest creating a shell script with the repetitive commands needed to set the correct voltages to all the states, and executing it with sudo ( this has to be done at every startup.)
    Or even better,make this script execution automatic.I don't know how to automatically execute a script as superuser at startup, please do tell if you know.

  2. #2
    Join Date
    Mar 2010
    Beans
    4

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Hi again.
    It looks like it doesn't work on processor MV-40 (aka Amd Athlon Neo).
    Code:
    Turion Power States Optimization and Control - by blackshard - v0.12
    cpuid:pread: Invalid argument
    Cpuid_Fn8000_0008 Instruction failed
    Error: unable to get processor specifications
    To bad. Do you think that there may be a special file/package for this cpu?
    Last edited by ChaosHead; March 20th, 2010 at 07:18 AM.

  3. #3
    Join Date
    Jun 2009
    Location
    San Diego,California
    Beans
    65
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Sorry to hear that.Unfortunately I have no idea about any package for your cpu.I found the tpc reference here http://forum.notebookreview.com/showthread.php?t=373878. Maybe they might have some ideas.

    This thread might also be of some help (it uses a different program to undervolt - the linux_phc) http://www.linux-phc.org/forum/viewtopic.php?f=8&t=113

  4. #4
    Join Date
    Mar 2010
    Beans
    4

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Thanks for your help and time. I'll maybe write some guide when I get it to work .

  5. #5
    Join Date
    May 2008
    Beans
    2,526

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Interesting, and a nice how to. I have the AMD Turion X2 and while I may consider doing this at some point it wont be right now. My CPU's run at about 38C so I'm not concerned about the heat right now. But I may want to cut down on the battery drain one day soon.

    Now if you find a way to monitor the fan speed using the GNOME Sensors Applet I would be interested in doing that.

    Nice write up and thanks for sharing the info with us. I'll certainly be saving the info and the package for a later date.
    Ultimate Edition Links

  6. #6
    Join Date
    Mar 2009
    Beans
    43

    Wink Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Quote Originally Posted by ChaosHead View Post
    Hi again.
    It looks like it doesn't work on processor MV-40 (aka Amd Athlon Neo).
    Code:
    Turion Power States Optimization and Control - by blackshard - v0.12
    cpuid:pread: Invalid argument
    Cpuid_Fn8000_0008 Instruction failed
    Error: unable to get processor specifications
    To bad. Do you think that there may be a special file/package for this cpu?
    I have had the same problem! My error was:

    Code:
    Turion Power States Optimization and Control - by blackshard - v0.12
    cpuid:pread: Invalid argument
    Cpuid_Fn8000_0008 Instruction failed
    Error: unable to get processor specifications
    tpc-0.12 is written for 64-bit boxes. Just add option -D_FILE_OFFSET_BITS=64 to the cflags.


    Code:
    c++ -D_FILE_OFFSET_BITS=64 TurionPowerControl.cpp cpuPrimitives.cpp >Processor.cpp config.cpp -o TurionPowerControl

  7. #7
    Join Date
    Feb 2009
    Beans
    3

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    I also have an HP DV2 with AMD Athlon Neo processor, however when I try and create the binary I get the following error:

    skythus@skythus-laptop:~/Downloads/tpc/linux src$ c++ -D_FILE_OFFSET_BITS=64 TurionPowerControl.cpp cpuPrimitives.cpp >Processor.cpp config.cpp -o TurionPowerControl
    c++: config.cpp: No such file or directory
    TurionPowerControl.cpp: In function ‘void processorStatus(Processor*)’:
    TurionPowerControl.cpp:222: warning: NULL used in arithmetic

    Any thoughts?

  8. #8
    Join Date
    Mar 2009
    Beans
    43

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    Hi skythus,

    this must be a typo! The "greater than" sign isn't that meaningful in this context! My apologize!

    PHP Code:
    c++ -D_FILE_OFFSET_BITS=64 TurionPowerControl.cpp cpuPrimitives.cpp Processor.cpp config.cpp -o TurionPowerControl 
    Here is my config:

    TurionPowerControl -pallc 0 37 0 14
    TurionPowerControl -pallc 1 54 1 16
    TurionPowerControl -pallc 2 61 2 19
    TurionPowerControl -nbvid 54
    TurionPowerControl -rampuptime 3
    TurionPowerControl -rampdowntime 3
    TurionPowerControl -pallc 6 41 1 20
    TurionPowerControl -pallc 7 41 1 20
    TurionPowerControl -altvidslamtime 5

    And here is what it looks like (I have a ZM-82):

    Turion Power States Optimization and Control - by blackshard - v0.21
    Detected CPU:
    Family: 0xf Model: 0x3 Stepping: 0x1
    Extended Family: 0x11 Extended Model: 0x3
    Package Type: 0x2 BrandId: 0x520
    Detected Physical Cores: 2
    Processor has 3 Power Planes (not accurate)
    Detected processor: Turion Ultra ZM processor
    Processor has 2 cores
    Processor has 8 p-states

    Power States table:
    core 0 pstate 0 - En:1 VID:37 FID:14 DID:0 Freq:2200 VCore: 1.0875
    core 0 pstate 1 - En:1 VID:54 FID:16 DID:1 Freq:1200 VCore: 0.8750
    core 0 pstate 2 - En:1 VID:61 FID:19 DID:2 Freq:675 VCore: 0.7875
    core 0 pstate 3 - En:0 VID:48 FID:14 DID:1 Freq:1100 VCore: 0.9500
    core 0 pstate 4 - En:0 VID:0 FID:0 DID:0 Freq:800 VCore: 1.5500
    core 0 pstate 5 - En:0 VID:0 FID:0 DID:0 Freq:800 VCore: 1.5500
    core 0 pstate 6 - En:0 VID:41 FID:20 DID:1 Freq:1400 VCore: 1.0375
    core 0 pstate 7 - En:0 VID:41 FID:20 DID:1 Freq:1400 VCore: 1.0375
    core 1 pstate 0 - En:1 VID:37 FID:14 DID:0 Freq:2200 VCore: 1.0875
    core 1 pstate 1 - En:1 VID:54 FID:16 DID:1 Freq:1200 VCore: 0.8750
    core 1 pstate 2 - En:1 VID:61 FID:19 DID:2 Freq:675 VCore: 0.7875
    core 1 pstate 3 - En:0 VID:48 FID:14 DID:1 Freq:1100 VCore: 0.9500
    core 1 pstate 4 - En:0 VID:0 FID:0 DID:0 Freq:800 VCore: 1.5500
    core 1 pstate 5 - En:0 VID:0 FID:0 DID:0 Freq:800 VCore: 1.5500
    core 1 pstate 6 - En:0 VID:41 FID:20 DID:1 Freq:1400 VCore: 1.0375
    core 1 pstate 7 - En:0 VID:41 FID:20 DID:1 Freq:1400 VCore: 1.0375
    Processor Maximum PState: 2
    Processor Startup PState: 3

    Minimum allowed VID: 64 (0.750v) - Maximum allowed VID 28 (1.200v)
    Processor AltVID: 64 (0.750v)
    Processor Northbridge VID: 54 (0.875v)

    SMAF7 is disabled; processor is using LMM Configuration
    Registers for Power Management
    DID to apply when in C1E state: 0

    Voltage Regulator Slamming time register: 5
    Voltage Regulator AltVID Slamming time register: 5
    Voltage Regulator Step Up Ramp Time: 3
    Voltage Regulator Step Down Ramp Time: 3

    Best regards!
    Last edited by mothersh1p; September 4th, 2011 at 02:32 PM. Reason: edit

  9. #9
    Join Date
    Feb 2009
    Beans
    3

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    I'm still getting errors, which I think has to do with the fact that I need to install Linux PHC to be able to gain access to undervolting. I will read up on patching the kernel (possibly Zen) and going from there. Thanks for the info Mothersh1p!

  10. #10
    Join Date
    Mar 2009
    Beans
    43

    Re: [HowTo] Undervolting the AMD Turion X2 (and some others)

    You are welcome! In fact you have only to enable the model-specific-register support in the kernel (http://cateee.net/lkddb/web-lkddb/X86_MSR.html). Linux-PHC is not helpful here and AFAIK has some bugs.

    FYI: When compiling I'm getting a warning, but it doesn't control the binary.

    TurionPowerControl.cpp: In function ‘void processorStatus(Processor*)’:
    TurionPowerControl.cpp:227: warning: NULL used in arithmetic
    Last edited by mothersh1p; May 12th, 2010 at 03:45 AM.

Page 1 of 10 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •