Welcome to our peer-to-peer forums, where owners help owners. Need help now? Visit eSupport here.

English Community

Lenovo NotebooksLenovo C, E, K, M, N and V Series Notebooks
All Forum Topics
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 11 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-21, 20:16 PM

Thanks for help! It works perfectly well. I haven't used NHC(Notebook Hardware Control) before and didn't know that the folder acpi is created after the installation of this software.

 

Here is the link to NHC:   http://www.pbus-167.com/

 

Can't we copy the files from the forum or do you want people to register there? I respect the right to do that and just ask before possible uploading it somewhere where it's more available for the people who don't understand German at all :).

It would be good to place it here.

 

I haven't really figured out what's the difference between FAN_ON_TEMP_MINIMUM and FAN_ON_TEMP classes ? 

What are default, min, max values? I set all of them except max to 60 C but I'd like to know :)

 

 

 

Reply
Options

27 Posts

04-19-2008

Berlin, Germany

147 Signins

975 Page Views

  • Posts: 27
  • Registered: ‎04-19-2008
  • Location: Berlin, Germany
  • Views: 975
  • Message 12 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-21, 20:34 PM

Well, I didn't write this script and so I can't explain it to you. If I knew how to upload the script to this forum, I would have done that already but as far as I know it isn't possible...

I didn't change any values in the script directly, I just adjusted the temperatures inside NHC.

 

 

UPDATE: I have uploaded the script

Message Edited by mattmilten on 07-21-2008 10:52 PM
______________________________________

3000 N200 BDG, Vista Business 32bit
Reply
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 13 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-21, 20:51 PM

Ok, I get it now.

First open NHC, then go to ACPI fold, then "Show ACPI Control System details", then "Fan config".

 

FAN_ON_TEMP - FAN ON -at this temperature the fan is turned on

FAN_ON_TEMP_MINIMUMFAN OFF - at this temperature the fan turns off

 

Min - minimum value you can enter

Max - max value you can enter 

Default - what values are on default

 

But the basic indicators are : temp for FAN ON and temp for FAN OFF

 

I'll write to the author about publishing it here.

Reply
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 14 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-22, 12:16 PM

First of all, read this thread from the beginning.

You are doing it at your own risk, no guarantee is provided.

I'm not the author of this solution. I only found it helpful and wanted to alleviate the pain for everybody else stuck with this problem. The original thread here

Thanks  mattmilten for letting us know about this solution and thanks Hallo32 from thinkpad-forum.de for the code!

 

If you have any questions ask here.

 

 Lenovo.xml (Copy the code below and paste it in a txt file - name it Lenovo.xml and put it into C:\Program Files\Notebook Hardware Control\acpi . Change the text in bold to your version of laptop)


 <?xml version="1.0"?>
<Lenovo>
<Model name="0769BMG" location="SYSTEM" class="N200" file="Lenovo.cs" />
</Lenovo>

 

 

 

Reply
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 15 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-22, 12:17 PM

Lenovo.cs  (Copy the code below and paste it in a txt file - name it Lenovo.cs and put it into C:\Program Files\Notebook Hardware Control\acpi)

 

//
//  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//  N o t e b o o k   H a r d w a r e   C o n t r o l   A C P I   D L L
//  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//
//  This file is provided "as is" with no expressed or implied warranty.
//  The authors accepts no liability for any damage/loss of business that
//  this product may cause.
//
//

public static class Lenovo
{

   #region Notebook Lenovo : class N200
    //
    // class author: Daniel Albers (Kontakt: www.P35-Forum.de "Hallo32") mit der Unterstützung von Yardi & ilikedirt (bei @ www.p35-forum.de)
    //
    //Version 1.0 (erste Final Version)
    //Modified for Lenovo N200 by AndySeven Version 0.21 http://www.thinkpad-forum.de/thread.php?threadid=33888
    //Version 0.22 fan in silent mode with temperatur 42° not 45° thanks to Semusa
 
 public  class N200

 {
  
    #region Thermal Zone class for CPU Temperature : class THRM
        //
        public static class THRM                                                    // If the name of the Thermal Zone class is the same as the name of an existing thermal zone in the system then NHC will overwrite the system thermal zone
        {
            
      
                                                                                    // Info
            public const string description = "CPU Temperature";                    // Description of current class
            public const bool default_enable = true;                                // false = By default the current class is disabled in NHC
            public const int icon = 5;                                              // 0 = Hardware icon, 1 = Brightness icon, 2 = Fan icon, 3 = Battery icon, 4 = Audio icon, 5 = Temperature icon
            public const bool thermal_zone = true;                                  // NHC will interpret this class as a Thermal Zone zone class if this value is true                  

            #region Value class for _TZ : class _TZ
            //
            public static class _TZ
            {
                // Properties of the value class
                public const string description = "Thermal Zone";                    // Description of current value
                public const bool nhc_visible = true;                               // true -> value is visible in NHC

                                                                                    // Value              
                public static int _tz = 0;                                             // It must have the same name as the class (case are ignored)
                public static int fan_on_modus = 0;
                public const string unit = "°C";                                    // unit of the example_value class.              
            }
            //
            #endregion

          
            public const int refresh_interval=1;                                    // Highspeed Fkt führt zu Fehlern, evtl. sehr langsamer EC
            public static bool refresh()
            {
                int max_temp=0;
                int cache1 = 0;
                int cache2 = 0;
                int cache3 = 0;

                if(ACPI.FIELD.ReadByOffset("_SB.PCI0.LPCB.EC0.ERAM", ref cache1, 0xB0, 8)==false) {return false;}
                if(ACPI.FIELD.ReadByOffset("_SB.PCI0.LPCB.EC0.ERAM", ref cache2, 0xB1, 8)==false) {return false;}
                if(ACPI.FIELD.ReadByOffset("_SB.PCI0.LPCB.EC0.ERAM", ref cache3, 0xB5, 8) == false) { return false; }

                max_temp = cache1;
                if (cache2 > max_temp)
                {
                    max_temp = cache2;
                }
                if (cache3 > max_temp)
                {
                    max_temp = cache3;
                }
              
                //if(ACPI.FIELD.ReadByOffset("_SB.PCI0.LPCB.EC0.ERAM", ref cache, 176, 8)==false) {return false;}     // get TZ temperature

                if (cache1 != 42 && cache1 != 51 && cache1 != 61)
                {
                    _TZ._tz = cache1;
                }


                if ((_TZ._tz <= FAN_CONFIG.FAN_ON_TEMP_MINIMUM.fan_on_temp_minimum) || _TZ.fan_on_modus == 0)
              
                {  
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 42, 181, 8)==false) {return false;}
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 42, 177, 8)==false) {return false;}
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 42, 176, 8)==false) {return false;}
                    _TZ.fan_on_modus = 0;
                 }


                if ((_TZ._tz > FAN_CONFIG.FAN_ON_TEMP.fan_on_temp && _TZ._tz <= FAN_CONFIG.FAN_ON_TEMP.fan_on_temp + 5) || _TZ.fan_on_modus == 1)
                 {
                     if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 51, 181, 8) == false) { return false; }
                     if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 51, 177, 8) == false) { return false; }
                     if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 51, 176, 8) == false) { return false; }
                     _TZ.fan_on_modus = 1;
                 }

                if ((_TZ._tz > FAN_CONFIG.FAN_ON_TEMP.fan_on_temp + 5 && _TZ._tz<=70)|| _TZ.fan_on_modus == 2)
              
                {  
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 61, 181, 8)==false) {return false;}
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 61, 177, 8)==false) {return false;}
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 61, 176, 8)==false) {return false;}
                    _TZ.fan_on_modus = 2;
                }
                if ((max_temp > 70 && max_temp < 80) || _TZ.fan_on_modus == 3)
                {
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 70, 181, 8) == false) { return false; }
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 70, 177, 8) == false) { return false; }
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 70, 176, 8) == false) { return false; }
                    _TZ.fan_on_modus = 3;
                }
                if (max_temp >= 80)
                {
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 90, 181, 8) == false) { return false; }
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 90, 177, 8) == false) { return false; }
                    if (ACPI.FIELD.WriteByOffset("_SB.PCI0.LPCB.EC0.ERAM", 90, 176, 8) == false) { return false; }
                    _TZ.fan_on_modus = 4;
                }
                                   
                   return true;
            }
        }
        //
       #endregion
Message Edited by cido on 07-22-2008 05:18 AM
Reply
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 16 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-22, 12:17 PM
 #region
       public static class FAN_CONFIG
        {
            // Info
            public const string description = "FAN Config";                            // Description of current class
            public const bool default_enable = true;                                // false = By default the current class is disabled in NHC
            public const int icon = 2;                                              // 0 = Hardware icon, 1 = Brightness icon, 2 = Fan icon, 3 = Battery icon, 4 = Audio icon, 5 = Temperature icon
                               
            #region Value class for FAN_ON_TEMP : class FAN_ON_TEMP
            //
            public static class FAN_ON_TEMP
            {
                                                                                    // Properties of the value class
                public const string description = "FAN ON Temperature";                // Description of current value
                public const bool nhc_visible = true;                               // true -> value is visible in NHC

                                                                                    // Value
                public static int fan_on_temp = 0;                                     // It must have the same name as the class (case are ignored)
                public const string unit = "°C";                                    // unit of value

                                                                                    // With this class it is possible to change the value in NHC on runtime
                 public static class NHC_WRITE
                {
                    public const bool nhc_write = true;                             // true -> it is possible to change the value in NHC
                    public const int nhc_minimum_value = 45;                        // the minimum value
                    public const int nhc_maximum_value = 65;                        // the maximum value 65 +5 = 70°
                    public const int nhc_default_value = 57;                        // the default value
                                  
                }
            }

            public static class FAN_ON_TEMP_MINIMUM
            {
                // Properties of the value class
                public const string description = "FAN OFF Temperature";                // Description of current value
                public const bool nhc_visible = true;                               // true -> value is visible in NHC

                // Value
                public static int fan_on_temp_minimum = 0;                                     // It must have the same name as the class (case are ignored)
                public const string unit = "°C";                                    // unit of value

                // With this class it is possible to change the value in NHC on runtime
                public static class NHC_WRITE
                {
                    public const bool nhc_write = true;                             // true -> it is possible to change the value in NHC
                    public const int nhc_minimum_value = 30;                        // the minimum value
                    public const int nhc_maximum_value = 62;                        // the maximum value
                    public const int nhc_default_value = 50;                        // the default value

                }
            }
            //
            #endregion
    }
    //
    #endregion
}
 #endregion
}

Reply
Options

15 Posts

07-20-2008

Poland

33 Signins

171 Page Views

  • Posts: 15
  • Registered: ‎07-20-2008
  • Location: Poland
  • Views: 171
  • Message 17 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-22, 12:22 PM

You may also download it from here:

http://rapidshare.com/files/131590731/LenovoN200_ACPI_0.22.zip.html

 

because there might be problems with comment lines.

Reply
Options

6 Posts

07-22-2008

Brazil

6 Signins

42 Page Views

  • Posts: 6
  • Registered: ‎07-22-2008
  • Location: Brazil
  • Views: 42
  • Message 18 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-22, 13:46 PM

Hi, people. I have just bought a N200 0769 AAP and noticed that its processors get extremely hot. They stay between 50 and 60 Celsius at normal activity, but get as high as 90 degrees when doing some intensive processing (as when installing software). It is unexpectedly turning off because of this (it might be reaching the critical temperature of 100 Celsius). It has even turned off during Windows Vista start-up. I am really disapointed with this situation. I have read that you got to a solution by using a piece of software, but I think it works under windows. Is there any similar software under Linux? I do much appreciate your considerations.

 

By the way, is Lenovo going to fix the problem. I didn't contact the support yet, since it's been four days since I bought my N200. But if I didn't find a solution by my own, I am going to complain by their desks.

Reply
Options

6 Posts

07-22-2008

Brazil

6 Signins

42 Page Views

  • Posts: 6
  • Registered: ‎07-22-2008
  • Location: Brazil
  • Views: 42
  • Message 19 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-07-25, 22:09 PM

Has anybody managed to carry out this procedure on Linux? I got to know that ACPI parameters may be set through /proc/acpi directory, but there are no files related to the setting of the so called "trip points" or fan speed. My notebook keeps shutting down by reaching critical temperature. This tipically occurs under intensive regimes, as when running a lot of applications at the same time or running a videogame. I am really upset with this situation. Just avoiding the pain in the neck of carrying it to technical support and waiting some days to get it repaired in case it 'features' a defect.

Reply
Options

1 Posts

12-18-2008

123

7 Signins

57 Page Views

  • Posts: 1
  • Registered: ‎12-18-2008
  • Location: 123
  • Views: 57
  • Message 20 of 24

Re: N200 769-EAG CPU FAN PROBLEM !!!

2008-12-18, 19:39 PM

Perfect! NHC works with the script above. Many many thanks guys, especially german folks, who managed to fix what Lenovo failed.

 

I mean jeez, increasing the threshold just a few degrees made so much difference. I can't imagine why this hasn't been fixed in bios updates.

Reply
Forum Home

Community Guidelines

Please review our Guidelines before posting.

Learn More

Check out current deals!

Go Shop
X

Save

X

Delete

X

No, I don’t want to share ideas Yes, I agree to these terms