Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Dell notebook computers #56

Open
GoogleCodeExporter opened this issue Aug 23, 2015 · 17 comments
Open

Support for Dell notebook computers #56

GoogleCodeExporter opened this issue Aug 23, 2015 · 17 comments

Comments

@GoogleCodeExporter
Copy link

Most Dell notebooks doesn't have standard motherboard sensors. Even if CPU 
temp can be read thru MSR register, other specific data, like fan speed 
and memory temp is not available.
The only projet able to display that data is I8KFan (which is open 
source), but that one is not supported anymore and doesn't work on 64 bit 
systems.
Having Dell support in Open Hardware Monitor can make it simply the best 
monitoring tool available.

Original issue reported on code.google.com by andreabe...@gmail.com on 9 May 2010 at 11:23

@GoogleCodeExporter
Copy link
Author

More information / documentation on how one can get hardware monitoring data on 
Dell notebooks is required to start implementing.


Original comment by moel.mich on 3 Oct 2010 at 5:42

  • Changed state: NeedsInfo
  • Added labels: Type-Enhancement
  • Removed labels: Type-Defect

@GoogleCodeExporter
Copy link
Author

Dug up my old Dell XPS M1530, hope this helps.

Original comment by fcbes...@gmail.com on 3 Oct 2010 at 11:43

Attachments:

@GoogleCodeExporter
Copy link
Author

I've attached two files (most relevant ones) from I8kFan source code. Dell 
monitoring seems related to ports 0xB2 and 0x84 which are bound to SMBios. Not 
so many other infos there.

Original comment by andreabe...@gmail.com on 5 Oct 2010 at 6:58

Attachments:

@GoogleCodeExporter
Copy link
Author

Hello,

This what HWINFO32 shows on my brand new Dell Vostro 3300 laptop.
But do we really need all of this?

IMHO, on a laptop, the most important stuff is temperature!
The rest is "comfort" information or "geek" information.

Unlike a desktop system, on a laptop it is nearly impossible to influence fan 
speed or voltages, unless you are a BIOS modding expert. All modern laptops 
have thermal controlled fans anyhow.

And if ever anything goes wrong with the fan, the machine will become too hot 
and the temperature alert will wake you up! (See enhancement request #35).


Original comment by Frut...@gmail.com on 3 Nov 2010 at 7:04

Attachments:

@GoogleCodeExporter
Copy link
Author

Hi there. Inspiron 1564 here. Is there anything I could contribute to this 
issue?

Original comment by ania...@gmail.com on 15 Feb 2011 at 8:08

@GoogleCodeExporter
Copy link
Author

Dell D600 here, I too would like to see Dell supported, can see all the temps 
in hwinfo32, but I prefer the much more clean interface of ohm

Original comment by Ozzy...@gmail.com on 22 Jul 2011 at 11:08

@GoogleCodeExporter
Copy link
Author

Hey, anything needed at all? Please let us know!

Original comment by ania...@gmail.com on 18 Jan 2012 at 6:57

@GoogleCodeExporter
Copy link
Author

Latitude E6420, no fan speeds, only temps. Would like to see Dell full support 
you! Thank you.

Original comment by a.v.shch...@gmail.com on 10 Aug 2013 at 8:05

@GoogleCodeExporter
Copy link
Author

Dell E6540 no fan speeds.... fan speeds please?

Original comment by pet...@ucar.edu on 23 Jul 2014 at 10:42

@C0rn3j
Copy link

C0rn3j commented Apr 6, 2017

Would love to see this as atm I can't see any values using Arch Linux.
OpenHardwareMonitor.Report.txt

@cdonnellytx
Copy link

cdonnellytx commented Apr 11, 2017

Dell Precision 5510 (motherboard: 0N8J4R, cpu: i7-6820HQ) here.

Even if we can't do anything about the fans, it would be nice to at least log the fan state. A coworker of mine came in this morning to find my fan going at full-tilt.

Edit: Added OpenHardwareMonitor.Report.txt

@colorburst
Copy link

colorburst commented Sep 13, 2017

It doesn't seem like figuring out the actual registers and finding documentation for proprietary components is a viable option in this case. Dell used many SuperIO chips over the years, none have published registers despite some of them being for 10+ years on the market, and as the hardware becomes obsolete, there would be less and less motivation in supporting them. That said, implementing the Dell-specific diagnostic interface that covers them all seems like the most realistic approach for supporting them and while it would not be as pretty as simply adding another chip into the existing infrastructure, it provides a working solution if there is no other.

To see if it works on your machine, run SpeedFan with "Dell Notebook Support" enabled. It does exactly the same thing as the GPL code I linked below and offers RPM readings, temperature measurement, and limited fan speed control.

The only real problem seems to be signature enforcement for Windows drivers. Talking to Dell's HW monitor requires running certain code in the kernel, which our WinRing0 cannot do. There is a Windows driver that provides the necessary interface for OHM, but I wasn't able to find any signed builds. Without a signed driver, you'd have to boot the system in test mode.

The logistics behind using the interface is described in detail in the linux driver and, once the driver issue is sorted out, porting it to OHM codebase would be trivial. If time permits, I might investigate it further.

@colorburst
Copy link

colorburst commented Sep 21, 2017

Here is a proof of concept -- there is still some work to be done, but overall it's already quite usable. Currently it depends on a signed closed-source driver with equivalent functionality; the GPL one linked above is a drop in replacement. We "just" need someone to sign it.

Monitoring hardware this way incurs a noticeable performance penalty, especially in parallel workloads, and you don't get access to all of the controller's features, so by no means it's a replacement for a proper implementation. Still, it's better than nothing. I configured it to be enabled only if there is no support available for the SuperIO chip and the motherboard is Dell-branded. I didn't bother with the tedious checks for specific computer models, it doesn't seem like it's worth the trouble.

I haven't added any controls for fan speeds just yet as I have to look into their behavior with Dell computers I don't mind overheating.


I found that having OHM with this feature enabled in the background while running CPU- and disk-intensive tasks causes strange crashes of user's programs as well as the entire system. Occasionally it's just the SMM query that fails. The issues occur sporadically and everything might work fine for several hours before something happens. When it takes down the system, it does so instantly without letting it display the bluescreen or create a memory dump, which makes me suspect it dies somewhere in the SMI handler; a kernel debugger might clear this up. Not sure if other Dell monitoring tools behave the same way yet.

@chross
Copy link

chross commented Sep 29, 2017

@colorburst The same thing happened to me when using HWInfo for a prolonged period (albeit without putting a lot of load on the machine). My XPS 9560 would spontaneously crash without any BSOD or whatever. I think that SpeedFan (another software for displaying HW related stuff) even warns about this behaviour on DELL laptops.

@colorburst
Copy link

colorburst commented Sep 30, 2017

@chross That's good to know! I haven't looked at HWInfo specifically, but I'm pretty sure everybody uses the same method. The developer of that program also seems to believe there are bugs in the BIOS. I didn't find many complaints about outright crashes (none for T3500/T5500/T7500), but a lot people are reporting audio glitches and "minor" stuttering in games, which is a tell tale sign of the SMI taking a long time to finish. This is happening with many monitoring programs and it seems like nobody ever found a solution, aside from disabling the feature altogether. The primary use case for this interface has always been pre-boot diagnostics and not constant monitoring, so perhaps performance and long-term reliability weren't really a concern for Dell?

For OHM, I think it still makes sense to support Dell SMM, at the very least because the competitors do, but it has to be an optional thing, maybe with a blacklist for unreliable configurations.

I did more tests with a few Dell PCs I have over here:

  • Inspiron 9300 -- OK,
  • Optiplex 990 SFF -- OK,
  • Optiplex 9010 DT -- minor issues: the second thermistor readings are duplicated for all queries asking about non-existing sensors (added a workaround), and waking up the computer from sleep causes the readings from that same sensor as well as the duplicates to go haywire until reboot, settling at 193°C (I don't plot those values anymore),
  • Precision T3400 -- no crashes, but the SMM query for both fans fails every once in a while, and if multiple instances of OHM are polling the sensors, the failure rate goes up significantly,
  • PowerEdge T300 -- nothing detected, should use IPMI instead.

Got a chance to do more experiments this week. Intermittent issues with T3400 disappear completely when OHM is pinned to CPU 0. The opposite is true as well, if the program runs on any other processor, the queries begin to fail very frequently. Apparently some machines have problems when the SMI fires on a different processor and the i8k driver for linux seems to be affected, too. I added code that switches thread affinity to CPU 0 while a query is being performed -- will see what happens now with the T5500 that was crashing previously.


I ran this for several days under load on the T5500, and am happy to report that the crashes and failed queries are now gone. I also made the updates to run every 5 seconds as opposed to every second for this specific module to reduce performance impact of SMM.

The driver is still a problem -- getting a suitable signature has been very difficult for open source and non-commercial software since Win10 became a thing. The most reasonable option at this point seems to be to have users install proprietary software with a compatible signed driver and then enable the Dell SMM sensor polling.

@marcharding
Copy link

@colorburst i'm currently trying to figure out how to control the fans on a dell 9560 (because they are on even with low cpu temps). can you tell me which signed driver you used and if its available for install?

i see you already found https://github.com/424778940z repositories/driver but i cannot get them to work reliably (and i would really like some signed drivers).

PS: i test your modifications on a dell 9560 if you're interested.

@tschierschno
Copy link

Hello,

I see that there has been no update on this thread since 2017. I have a DELL Precision 5750 and I too are missing the fan speed.
The only tool I was able to display the fans was SpeedFan 4.5 after enabling the DELL option.
I do however prefer the OpenHardwareMonitor over the SpeedFan application.
Any chance to get the fans added to OHM?

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants