In this article I talk about the way I manged to get manual fan control on my AMD HD 6950 with OSS driver. The first part is about the story around the second describes my tries too solve the problem. And if you just want to know how I did it, scroll to the bottom of this article.
"Am Anfang war der Lärm" cite Die Toten Hosen
In the last years I turned into a silence freak in case of my PC. I think every one who is into PCs thought about building a 0-db-noiseless-PC. Without any fans maybe with a watercoolingsystem based on some passive radiators. But a fan less (=noiseless) PC build is not really possible because some parts, for example on the mainboard spools and chips, require some cooling with by the case airflow. Building a complete watercoolingsystem is very expensive and not an optimal solution. Because of this I decided to make the machine as silent as possible (If you are interested in that check this article here[ARTIKEL]). But with an affordable amount of money. While I reduced the time I spent for gaming, I thought it is possible to get the PC really silent. I used only the IGP at the beginning. Combined with a full cooper CPU-cooler it was really quiet. Combined with a silent Corsair PSU and a SSD-only setup the PC was really silent. You weren't able to listen if it is running or not.
After some time I began to need some dedicated 3D-hardware-acceleration for some study software. So I bought and tried a complete passive R7 250E to get at least "some" 3D-hardware-acceleration. It was fine for my daily use.
Games Games Games
But after sometime I found my way back to gaming and I wanted to play some more GPU challenging games. I wanted to play TF2, CsGo and some other titles. And of course the little passive thing R/ 250E I just purchased was to slow to get enough frames. As a result I put my "old" HD 6950 (with a HD 6970 BIOS)(PICTURE) back in the PC and onto the field. Due to some driver problems (I use the OSS driver because of this[ARTIKEL]) I needed to reset the BIOS back to the default 6950. The lost of some MHz GPU clock speed was acceptable.
My HD6950 uses a custom cooler with axial fans (maybe 60mm??). Under Windows they were really quite and I could set them down to almost no speed with a small software tool. But I found out, the OSS driver for Linux can't manage the fans in any way. There is a power savings option in the driver but this does not effect the fans. They were between 80 to 100% all the time. This was horrible loud, compared to the silent performance under Windows. I ignored the noise for a few weeks. With a headset it was OK but annoying without.
The Hard(ware) Way
During the next weeks I searched the web for hours to find a way to achieve fan control on the GPU. Without any results :(. Most suggestions were about the power savings option, which does not work for me or to use the proprietary driver. Last week I thought if it were possible to connect the fan of my GPU to the mainboard. There is the package "lmsensors" (LINK to website) which can control mainboard fans. I unplugged the GPU-fan from the PCB to inspect the heatsink and the fans. Usually fans have 3 cables, 2 for powersupply and 1 yellow colored [PICTURE]. Normally the yellow colored is the speed signal from the motor. But in this case the GPU-fans only use 2 powersupply pins. It seems the fans are just controlled by the voltage which is controlled by the video driver.
I began to figure a way out to get the heatsink fans work via the mainboard fan connectors. The fan connector on the GPU is a different from a normal 3-pin fan connector. So you can't plug it directly into the mainboard. I modified a old 3-pin cable an plugged it into the heatsinkfans. And they worked, of course the were on 100% speed. The first option to control the speed would be a potentialmeter and set the fan speed by hand. But in this case I have to check the GPU temperature all time to avoid overheating or make them run (loud) and faster then necessary. This is very unhandy during daily use and gaming.
The Soft(ware) Way
The batter way is to plug the modified cable into the mainboard and control it with lmsensors. It is a nice and handy tool to read build-in sensors in a lot of chipsets. WARNING! Use of lmsenors can damage your hardware, use on own risk!!! lmsensors detects connected fans and measures a speed curve. You can set speedlimits in the config and combine them with the measured temperatures. Temperatures are read by lmsenors, too. For my chipset I just got speed results and control over my CPU fan. Because I have 2 CPU-3-pin connectors on my mainboard I am able to control at least one fan, beside the CPU fan. I tested one of my standard 140mm 3-pin fans and it was easy controlled by lmsensors.
The problem is, lmsensor needs the speed as a return signal form the fan (the yellow cable). At this point I just had the power plugged in. I separated a single pin from an other cable to bridge speed-pin from the GPU-fan to the mainboard. The result was disappointing, nothing happened. The GPU-fans don't return the correct speed value. I measured the different voltages between each pin and there is a return value on the yellow cable. But it is very low and the mainboard sensors cant read/interprete it.
The real Way of “Plug and Play”
In a mood of madness I decided to replace the original fans with one of my 140 mm case fans, which I can control. The awesome and userfriendly design of the heatsink and PCB makes it impossible to unscrew the fans without unmount the complete heatsink. Because I am a lazy guy and I dislike messing around with heat paste and screws with springs. I refused this idea.
It all ended up like this (PICTURE). The case fan is plug (and played) under the GPU and hold by two cable straps. The fan is connected to the second CPU-fan connector on the mainboard. I measured a speed curve with lmsensor which fits my needs in point of noise. I set temperature borders in the config to control the fan speed depending on the realtime measurements. The fan is turned of under a temperature of 45°C. It reaches its max speed on 80 degrees but during gaming it goes never over 66°C. On 66°C the fan is at about 800rpm ,nearly silent for a 140 mm fan.
The final art piece
The quick and dirty solution was fine for a one day project. Sometimes it rumbles a little bit (result is noise) and it is no stable to work inside the PC,i.e. remove drives. To improve the construction I mounted the fan on 4 wooden legs with rubberd feet. I am really satisfied with the result.