EDIT: I did not need to apply any patches anymore with Phoenix Bios 4.80, ubuntu 9.10 Kernel 2.6.31-17-generic, Nvidia driver v.185 It worked right out of the box. But only after a clean install. Before that I did a distupgrade from 9.04 to 9.10 and it did not work. With clean install as I said it works out of the box for me ( 57° right now )
If the fix worked for you post your model name number. Thanks.
EDIT: Works with: 8.10, 8.04, 7.10, 7.04
Well I guess everyone with a toshiba p100-something laptop that runs a nvidia graphics card was hoping that in hardy heron (ubuntu 8.04) the gpu overheating problem would have been solved. Though luck it hasn't! So you still have to do some work to get it running at a nice 40° instead of 100°. Read on.
Here's a short guide for everyone with the overheating problem on toshiba p100 & Nvidia graphics card. I'm opening a new thread because the kernel patch that was needed in Gutsy is not needed in Hardy anymore. So here goes.
Links to the original info.
Old thread (Gutsy)
link1
link2
Step 1 install Intel ASL:
Code:
sudo apt-get install iasl
Step 2 backup decompile & edit the dsdt.dsl:
Code:
sudo cat /proc/acpi/dsdt > dsdt.dat
iasl -d dsdt.dat
cp dsdt.dsl dsdt.dsl.bak
gedit dsdt.dsl
- Search for "_T_0" through "_T_7" replace them with "T_0" through "T_7" (withouth the quotes)
- Search for "*PNP0C14" and replace it with "PNP0C14" (again without the quotes)
- Search for "Method (BTST, 0, NotSerialized)" and add "Return(Package(0x02){0x00, 0x00})" just before the closing curly bracket (see below)
Code:
Method (BTST, 0, NotSerialized)
{
If (\_SB.ECOK)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
Store (\_SB.PCI0.LPCB.EC0.KSWH, Local0)
XOr (Local0, 0x01, Local0)
Store (\_SB.PCI0.LPCB.EC0.BTHE, Local7)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (Local0)
{
ShiftLeft (Local7, 0x06, Local6)
ShiftLeft (Local7, 0x07, Local7)
Or (Local7, Local6, Local1)
Or (Local0, Local1, Local2)
Return (Local2)
}
Else
{
Return (Zero)
}
}
Return(Package(0x02){0x00, 0x00})
}
- Search for "Method (EVNT, 1, NotSerialized)" and add the extra "Return (Zero)" as shown below to Else part of the the "EVNT" method.
Code:
Method (EVNT, 1, NotSerialized)
{
While (VZOK)
{
If (LEqual (VZOK, 0x01))
{
Store (Arg0, VZOK)
Notify (\_SB.VALZ, 0x80)
Return (Zero)
}
Else
{
Sleep (0x05)
Return (Zero)
}
}
}
Step 3 Fix the Nvidia GPU FAN:
all of the above was neccessary so you don't get any compile errors when recompiling the dsdt.dsl file (you can check that by going step by step, saving your file and trying to compile it after each step if you want. --> use command "iasl -tc dsdt.dsl" )
- Search for "Method (_REG, 2, NotSerialized)" and add the highlighted code just after where it says "Store (\_SB.PCI0.LPCB.EC0.ACDF, \PWRS)"
Code:
Method (_REG, 2, NotSerialized)
{
If (LEqual (Arg0, 0x03))
{
Store (Arg1, Local0)
If (Local0)
{
Store (0x01, ECOK)
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
Store (\TMOD, \_SB.PCI0.LPCB.EC0.TMOD)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
Else
{
Store (0x00, ECOK)
}
}
If (\_SB.ECOK)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
If (LEqual (OSYS, 0x07D6))
{
Store (One, \_SB.PCI0.LPCB.EC0.OSTP)
\_SB.PHSR (0x0D, 0x00)
}
Else
{
Store (Zero, \_SB.PCI0.LPCB.EC0.OSTP)
}
Store (0x03, \_SB.PCI0.LPCB.EC0.RG59)
Store (\_SB.CIRE, \_SB.PCI0.LPCB.EC0.CIRE)
Store (\_SB.PHSR (0x05, 0x00), DOFF)
Store (\_SB.PCI0.LPCB.EC0.ACDF, \PWRS)
If (LEqual (OSYS, 0x07D6))
{
Store (0x3C, \_SB.PCI0.LPCB.EC0.VTMP)
}
Release (\_SB.PCI0.LPCB.EC0.MUT1)
}
}
Step 4 recompile & install:
There should be 0 errors and 0 warnings
Now you should have a dsdt.aml file in your working directory. Copy it to /etc/initramfs-tools/ and make sure that you use capital letters "DSDT.aml"
Code:
sudo cp dsdt.aml /etc/initramfs-tools/DSDT.aml
sudo dpkg-reconfigure linux-image-$(uname -r)
Step 5 restart and check if its working:
You can check your Nvidia cards GPU temperature by installing "nvidia-settings" (under thermal monitor).
Code:
sudo apt-get install nvidia-settings
My card runs at a nice 38-42 degrees.
Step 6 keep a backup of your dsdt.dsl file:
If you don't want to do this again the next time you reinstall ubuntu make a backup copy of the dsdt.dsl file, then you will only have to do Step 4 and 5 next time.
Bookmarks