HP Pavilion G6 1209 temperature higher than usual and fan working in 11.10

3,567

After some researching and refering to the above link posted by hekiko81 my status is as following : After using only hekiko81's solution the system would boot but without fancy 3d effects and when I 'fglrxinfo' to get details about current VGA i get the following :

  Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  136 (GLX)
  Minor opcode of failed request:  19 (X_GLXQueryServerString)
  Serial number of failed request:  12
  Current serial number in output stream:  12

So my conclusion is that ati drivers aren't properly installed.
This is error was due failed ATI proprietary drivers downloaded from official amd page. (Installed correctly). I thought then that using ATI drivers isn't the best idea since I have an integrated intel HD 3000 (sandy bridge) GPU (with ATI AMD Radeon HD 6470M). So I reinstalled ubuntu 11.10 and did the following to solve the problem :
1. I used Intel integrated drivers
since all eye candies worked well with integrated gpu i stuck with it (used default ubuntu open drivers)
2. Followed this guide from Ubuntu Forums
I used only 1. and 2. (a,b) in this tutorial :

1. Apply PCIE_ASPM

(Source: Phoronix)

As everyone suggested adding this for laptops to have longer battery life. I edited /etc/default/grub as

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1"

and then running

$ sudo update-grub

Note: I previously had added acpi_osi=Linux pci=noacpi (on worst condition of black screen), which I think is no more required, because the computer boots on to GUI without them. Above command enables power management, sandy bridge support (rc6) and frame buffer compression.<br/>

2. Apply Support for Hybrid Graphics

(Source: Linux Hybrid Graphics)

For those of you who don't have two graphics card this step is not required. In Ubuntu 11.04 I had bug while installing this, so I could not run vgaswitcheroo/switch

a. Install acpi_call
$ sudo apt-get install git
$ cd /tmp
$ git clone https://github.com/mkottman/acpi_call.git
$ cd acpi_call
$ make
$ sudo insmod acpi_call.ko
$ lscpi -vnnn | grep VGA # Check status here
$ ./test_off.sh # Check for any line that says "it works"
$ lspci -vnnn | grep VGA # Check with result of above

b. byo-switheroo (Unplug the ac-cord and see if it changes the battery life)

$ git clone https://github.com/awilliam/asus-switcheroo.git
$ cd asus-switcheroo
$ make
$ sudo make install-ubuntu
$ sudo su -
# cat /sys/kernel/debug/vgaswitcheroo/switch
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

It is temporary. If you have two graphics cards next time you boot, you will see both cards have Pwr set. If you want this to be permanent add the discrete card (e.g ati as blacklist). This settings will only enable the default intel card and disable other card. I haven't found yet a solution to flawlessly switch intel and ati cards. The better solution would be ati card using dedicated applications via catalyst control center.

$ sudo vi /etc/modprobe.d/blacklist.conf

Add a line at last

blacklist radeon

Then edit /etc/rc.local as
$ vi /etc/rc.local

Make the part after comments look like this

modprobe radeon
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

exit 0

3.Followed this guide
*Kudos to heiko81 ;)
Jupiter will show up in your notification bar. Click it and go to performance modes -> power saver, for lower temps.

4.Restart
Temperature will lower for sure, about 50 when idle and 55 when busy.
Conclusion (the Trick)
The trick was to utilize the following command

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

to lower the temperature of cpu and to slow down the fan. (to enable this permanently go back to step 2). When you enable this your GPU temperature reading will disappear (shows -128c) but when you restart it will measure GPU as usual.
BONUS
For measuring temperature I advise you to use XSensors (sudo apt-get install XSensors) and calibrate your sensors with sensors-detect
That is pretty it. Give me feedback on this solution, it worked for me on HP Pavilon g6, it gave me severe headache though. In the end my temperatures where 43-45 when idle; 48-55(60 when using much resources).


I took a few screenshots while writing this : My CPU temp fixed Core temps Gpu glitch after utilizing the command from conclusion section (the TRICK !!!)

Share:
3,567

Related videos on Youtube

ezcoding
Author by

ezcoding

Updated on September 18, 2022

Comments

  • ezcoding
    ezcoding over 1 year

    I am downloading databases from the network, which are between 100 Kbytes and 500 Kbytes large. Here is my code (removed useless code):

    URLConnection uConnection = downloadUrl.openConnection();
    InputStream iS = uConnection.getInputStream();
    BufferedInputStream bIS = new BufferedInputStream(iS);
    byte[] buffer = new byte[1024];
    FileOutputStream fOS = new FileOutputStream(db);
    int bufferLength = 0;
    while ((bufferLength = bIS.read(buffer)) > 0) {
    fOS.write(buffer, 0, bufferLength);
    }
    fOS.close();
    

    My problem is, that it takes a long time for him to finish the while-statement. Have I messed up the code somewhere? It shouldn't take that long for such small files, shouldn't it? I'm talking about 1 minute, for three files not larger than 1 MB altogether... Thanks in advance!

    • CommonsWare
      CommonsWare over 12 years
      What makes you think the problem is with FileOutputStream? The problem could just as easily be bandwidth for downloading your data. Have you used something like Traceview to determine exactly where you are spending your time?
    • ezcoding
      ezcoding over 12 years
      I don't know what Traceview is. I debugged the code and it's because of the while-statement that it is really slow. I also thought, that the download of the data is done when my InputStream-Object is instanciated. Or is it not downloaded there?
    • Robert
      Robert over 12 years
      using a buffer size of 1024 is IMHO a bad idea. In a Smartphone all media typically have a block-size of 4096 bytes or larger (e.g. SD-Card).
    • CommonsWare
      CommonsWare over 12 years
    • ezcoding
      ezcoding over 12 years
      Thank you. Your were right about it. It is the bandwidth that's making the write-method so slow.
  • heiko81
    heiko81 over 12 years
    Someone solved the heat problem installing Jupiter, which allows you to choose between different battery consumption behaviours, so that you should minimize also the heating problem.
  • ezcoding
    ezcoding over 12 years
    I'll try that. Is there good online literature about Java I/O? It kind of confuses me alot :)
  • Brian Roach
    Brian Roach over 12 years
    I'd have to google around, but this isn't specific to Java. Think of it this way - if you had to move a bunch of water from once place to another which would be faster; using a 16oz cup or a 5gal bucket? With that small buffer you're having to fill and empty it a whole lot more times which has a cost. The buffered wrapper is for when you know you're going to need a bunch of water, but only want to deal with it a cup at a time. It pre-fetches the bucket and lets you take cup-fulls from it. When the bucket is empty, it refills it.
  • ezcoding
    ezcoding about 12 years
    I was thinking about your answer the past days and I wondered: Why do many people create byte arrays with smaller sizes then the one you've provided me in your answer if it's slower?
  • Brian Roach
    Brian Roach about 12 years
    As a general practice, you only allocate the buffer size you need. Why waste memory? If you're not doing what you're doing (simply shuffling data between two streams) you only need to allocate a buffer that is big enough for the data you want to work on at any given time. If they are doing what you're doing ... you were using a small buffer too until someone explained why a bigger one was better ;)
  • Brian Roach
    Brian Roach about 12 years
    And what does that have to do with reading data from a socket and writing it to a file?