Shuzhengz / TPFanCtrl2

ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11
The Unlicense
264 stars 23 forks source link

ThinkPad P50 blackscreen #23

Open thessarb opened 2 years ago

thessarb commented 2 years ago

hi! Got an issue with my P50. If i run tpfc on discrete gpu mode the screen goes black and never recovers. If i run it in hybrid mode the discrete gpu crashes and completely disappears from device manager leaving no trace. If i disable dgpu in devmanager, run tpfc and then try to enable dgpu i get error 31 (windows cannot load drivers for this device). This issue persist with every dual fan version of tpfc i found on github and regardless the OS version. tvicport is installed, BIOS is the latest version (1.67), and ive tried OS versions from W10 1507 up to the latest insider W11 22H2. Im running W11 insider 22H2 currently. Thank you in advance

Shuzhengz commented 2 years ago

Hmm that's weird, the program doesn't actually access the GPU Do you have a Xeon CPU or an i7? This might be an issue with how the CPU communicates with the GPU. I don't think this is an issue with the Quadro because the program works with my W540 (i7 X series and K2100M).

But the Nvidia driver (and intel driver) might be a cause so it's probably a good idea to update to the latest version (I also have nvidia's studio driver instead of game ready driver installed).

Also do the single fan versions also have the same issue? (if not then it might be an EC issue) You can find a pretty good list here

Thank you!

thessarb commented 2 years ago

thank you for your reply i have the i7-6820HQ with the M1000m. single fan versions of tpfc work fine. the drivers are the latest ones from both intel and nvidia respectively (nvidia-studio drivers).

Shuzhengz commented 2 years ago

hm okay, I'll try modding one of the single fan versions into dual fan then

thessarb commented 2 years ago

Thank you

Remalisa commented 2 years ago

hm okay, I'll try modding one of the single fan versions into dual fan then

Hello! I have the same problem with black screen on P50. My P50 is Xeon/M2000M. I took a lot of time to solve the problem and find a program to control two fans. I tried to diagnose the fans for problems through the official Lenovo Diagnostic Program. When im trying to check the fans I also got a black screen, I hope this information helps to solve the problem.

I really hope for you!

Shuzhengz commented 2 years ago

Thank you!

Shuzhengz commented 2 years ago

tpfc.zip try see if this one works code on #25

Remalisa commented 2 years ago

Hello, I will try it at Monday.

Thanks a lot in advance!!

Shuzhengz commented 2 years ago

yeah np!

thessarb commented 2 years ago

hi! just tried it and it still blackscreens. this time windows doesnt seem to freeze on dgpu only mode tho as this time i can actually blindly shut it down via cmd. here are ythe logs captured by the program: TPFanControl.log TPFanControl_csv.txt

Shuzhengz commented 2 years ago

hmm from the logs it seems like the program crashed while trying to access the fan EC i think it might be a problem with the the second fan address

thessarb commented 2 years ago

thanks for the reply! is thre anything i could do about it or something you would suggest? (fan can be controlled under linux)

Shuzhengz commented 2 years ago

yea np! is it linux mode for the laptop or running GNU/Linux? if it's the ladder do you have the source code for it? the two addresses might be similar thank you!

thessarb commented 2 years ago

it is running GNU/Linux (PopOS 20.10) in tripple boot (also got MacOS Monterey beta). Here is what i use to control the fans in linux

Shuzhengz commented 2 years ago

oooh yeah i almost forgot that linux doesn't use address to control the EC. I wonder if it's a kernel level thing

Remalisa commented 2 years ago

@thessarb Hello! Im sorry that im very noob at programing and understanding of all of this stuff. I correctly understand that the problem is not solved at the moment?

Shuzhengz commented 2 years ago

yeah, I'm currently working on resolving issue #20 with PR #31, maybe you can try that build out and see if it works

thessarb commented 2 years ago

@Remalisa np i am no different @Shuzhengz thx ill try it out later

Shuzhengz commented 2 years ago

heres the link to a wip build tpfc.zip

thessarb commented 2 years ago

hi! just tried the wip build and tpfc launches finally, but it lacks cpu temps and cant control the fan. also it shows the fans as if they were stuck at 5120RPM. here is the log:

TPFanControl.log

Remalisa commented 2 years ago

@thessarb Hi! Can you please explain to me how did you start the program? I was trying, but I failed ;(

thessarb commented 2 years ago

@Remalisa i didnt do anything different, just extracted the zip and ran fancontrol.exe (W11 Insider Dev Build 22593)

Remalisa commented 2 years ago

Hello! I have finally opened the program. I also observe that the temperatures and fan speeds do not change in numbers. I also noticed that when the manual mode is selected from 0 to 7, the fan speed simply does not change. Moreover when you select manual mode 7, it automatically changes to program mode .ini

Shuzhengz commented 2 years ago

hmm seems like the EC controller is in the wrong address. Try downloading RW everything, then open EC Controller and search for your sensors

Remalisa commented 2 years ago

@Shuzhengz trying to install rw apears the same problem as in this link: https://www.bleepingcomputer.com/forums/t/709973/rw-everything-not-working-after-windows-build-update-to-the-last-version-1903/

maybe i can resolve this problem using other program?

Shuzhengz commented 2 years ago

hmm are you on windows 10 or 11? you can try using another program, any that reads the EC (maybe MSR as well) should work, I just haven't used those other than rweverything on windows

Remalisa commented 2 years ago

I'm using windows 10 21H2. Ok, I will try something else, thanks!

On Fri, Apr 8, 2022, 11:26 PM Tom Zhang @.***> wrote:

hmm are you on windows 10 or 11? you can try using another program, any that reads the EC should work, I just haven't used those other than rweverything on windows

— Reply to this email directly, view it on GitHub https://github.com/Shuzhengz/TPFanCtrl2/issues/23#issuecomment-1093322970, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYF5QGIKBALBARK3DB2VIL3VECI7NANCNFSM5QF5RKSA . You are receiving this because you were mentioned.Message ID: @.***>

thessarb commented 2 years ago

hi @Shuzhengz. had too many assignments at uni and didnt have time to track the issue. what program would you recommend to read the EC? i cant seem to find any, or i simply dont know how to search ig. also i noticed something. after running the program in hybrid mode and after the dgpu disappearing completely i got a driver_power_state_failure bsod after a couple of minutes. just in case it helps. also if i disbale the dgpu, open tpfc, then keep hiting "scan for hw changes" till it appears again and enable it i can use it just fine. but i cant do this in dgpu only mode for obvious reasons. thx in advance

Shuzhengz commented 2 years ago

hi sorry, I was very busy with school for the past few weeks and didn't have time to get back to this rweverything might not work if you have old drivers, so probably a good idea to update all the drivers I don't know any other equivalent programs, but you could try reading the msr registry using the rdmsr command you can also use msr-tools provided by Intel, but I'm not sure if that works with Windows (you also have to compile it as there's no binary release)

thessarb commented 2 years ago

np, same here, in the middle of an annoying exam season XD. will try it as soon as im done with the exams and post the results here. thanks

Lego737 commented 2 years ago

Hello Shuzhengz

Is there an update for the P50 with TPFanControl? I've been doing tons of research but can't for the life of me figure it out.

Shuzhengz commented 2 years ago

@Lego737 Hi! sorry I just got back to working on this project, it seems like the version from PR #31 is working better than the intended version, so I'm going to say try that one out, here's the link to that wip build binary It seems like it's still reading from the wrong address though, so it would be great if you could try downloading RW everything, then open EC Controller and search for your sensors, since I don't have access to a P50 physically Thank you

Lego737 commented 2 years ago

Sure, I will do that then report here!

thessarb commented 2 years ago

hi @Shuzhengz! i downloaded rw everything, opened embedded controller but i dont understand the gibberish it puts out. could you give me some hint on how to interpret it? here is an image of what i see: image

Shuzhengz commented 2 years ago

yup, so currently the release version has the address 0x2F as the data port controller address, which is in hex, and would be 47 in decimal. The number 2F means that it is on the 20 row and the 0F column, which would be this one image

Shuzhengz commented 2 years ago

when using manual mode to set fan speed, the value here at 0x2F would become whatever the inputted fan speed value is (after converting to hex)

Shuzhengz commented 2 years ago

try manually change the 0x2F address to value 46, if you can hear the speed of the fan ramp up then it's the right address

Shuzhengz commented 2 years ago

the temperature readout is currently at address 0x78, and should be changing in real time you can find out which address yours is by using another software to monitor your cpu temp (package temp), then convert it to hex, and find which address has the value close to it

thessarb commented 2 years ago

So i looked at the said values. 0x78 doesnt really chase the temp reported by the cpu itself, but it matches the cpu temp reported by the EC 1:1. Also 0x79 seems to chase the dGPU temps with 1s delay. Setting 0x2F to 46 ramps up only the left fan. Also couldnt find any other address that chases temperatures.

Edit: after running the dual fan version the value on 0x79 goes to 80 and cant be changed. Also after killing the dual fan version and setting 0x2F to 46 this time only the right fan ramps up. The single fan version seems to behave the same

thessarb commented 2 years ago

@Shuzhengz i think i may have found the issue. 0x31 seems to be the "fan selector". When the laptop starts up it hold the value 41 and with that i can control the left fan. With the value 40 i can control the right fan. Dgpu doesnt seem to disappear. However the dual fan tpfc seems to use values 00 and 01 in that address and sure enough, the moment i put either of those values the dgpu goes offline till the next reboot. Also if you leave it on 40 long enough it automarically goes to 00 which causes the dgpu to go offline. However switching between values for slow me seems to have enough time so it doesnt go to 00. Hope this helps.

Shuzhengz commented 2 years ago

thank you! I will work on this in a little bit

Shuzhengz commented 1 year ago

@thessarb can you try this build? I corrected the ec addresses, however I'm still working on getting the rempeature reading. Currently I'm trying to use open hardware monitor's dll in CLI mode to read the package temperature, but there are still a lot of bugs to iron out, so it would be great if you can verify that the fan addresses are working on your laptop, and open hardware monitor also works (you can download the exe here)

Shuzhengz commented 1 year ago

here's the built program: tpfc-p50b.zip

Lego737 commented 1 year ago

Unfourtnately, it sadly didn't work for me. I tried both builds on dGPU mode and the screen still went black.

Shuzhengz commented 1 year ago

hmm does it go black immediately or after a few seconds?

thessarb commented 1 year ago

@Shuzhengz thank you, ill try it as soon as i get home

thessarb commented 1 year ago

@Lego737 boot in hybrid mode, disable dgpu from dev manager so you dont BSOD in a few minutes, open rweverything and choose Embedded Controller, run tpfc. Look at the value at the row 30 and column 01. The value shpuld be 41 at the start, check the value that is input by tpfc.

Lego737 commented 1 year ago

Yes, it goes black instantly.

thessarb commented 1 year ago

@Shuzhengz hi again! im happy to report that tpfc doesnt cause black screen for me anymore. also open hardware monitor seems to work and the values match both hwinfo64 and hwmon

Lego737 commented 1 year ago

@thessarb, how did you fix the issue in dGPU mode?