GUIDE: Linux Mint 18.3 Cinnamon with Nvidia GPU(s)

Page 4 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

TennesseeTony

Elite Member
Aug 2, 2003
4,204
3,631
136
www.google.com
Looks like you want to set that from 5 to 8.

from here:
The Coolbits value is the sum of its component bits in the binary numeral system. The component bits are:


  • 1 (bit 0) - Enables overclocking of older (pre-Fermi) cores on the Clock Frequencies page in nvidia-settings.
  • 2 (bit 1) - When this bit is set, the driver will "attempt to initialize SLI when using GPUs with different amounts of video memory".
  • 4 (bit 2) - Enables manual configuration of GPU fan speed on the Thermal Monitor page in nvidia-settings.
  • 8 (bit 3) - Enables overclocking on the PowerMizer page in nvidia-settings. Available since version 337.12 for the Fermi architecture and newer.[2]
  • 16 (bit 4) - Enables overvoltage using nvidia-settings CLI options. Available since version 346.16 for the Fermi architecture and newer.[3]

To enable multiple features, add the Coolbits values together. For example, to enable overclocking and overvoltage of Fermi cores, set Option "Coolbits" "24".

The documentation of Coolbits can be found in /usr/share/doc/nvidia/html/xconfigoptions.html. Driver version 346.16 documentation on Coolbits can be found online here.

coolbits 28 allows both fan control and overclocking. Changes will need to be done every time you start the computer, unless you make an executable text file, as described at the end of hiigaran's guide over at Brony:


You're now hopefully folding on Linux. But the fun does not stop there. You may wish to set a custom fan speed for your cards. Unfortunately, software like PrecisionX or Afterburner do not exist on Linux, so fire up the terminal once more and type the following:

Code:
sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration

cd ~

gedit fancontrols

Note that you may need to repeat the first line twice in a row, before the "cd ~" command.

A text editor should appear after the final line. Here, you can add commands that will set your fan speed to whatever value you would like. You will need the GPU IDs of each GPU you have first. So let's say you have three GPUs with IDs 0, 1 and 2, and you want all their fans at 100%. Add the following lines to the editor:

Code:
nvidia-settings -a [gpu:0]/GPUFanControlState=1
nvidia-settings -a [fan:0]/GPUTargetFanSpeed=100
nvidia-settings -a [gpu:1]/GPUFanControlState=1
nvidia-settings -a [fan:1]/GPUTargetFanSpeed=100
nvidia-settings -a [gpu:2]/GPUFanControlState=1
nvidia-settings -a [fan:2]/GPUTargetFanSpeed=100

The ControlState line enabled fan control the the specified GPU, while the FanSpeed sets the speed as a percentage. If you wish to overclock, you can also add the following lines to the file:

Code:
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[3]=
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[3]=

Adding a number after the "=" allows you to adjust the offset of the core and memory clocks in MHz. It is very important to keep in mind that this is an offset from the stock clocks. Forgetting this little detail can damage your card. If your stock core is 1000 MHz and you want to overclock to 1100 MHz, do NOT type in 1100, or you'll basically tell the software to run your GPU at 2100 MHz. Instead, type in 100.

Whether you choose to overclock or just set fan speeds, save the file and exist. In the same terminal, type:

Code:
sudo chmod +x fancontrols

This allows the file to be executable. Next, go to your startup applications list. This will be listed in your system settings menu, or through a search for startup applications. Add a new startup entry and browse for the file you just saved. If you followed the commands before opening the text editor, it should be in your home directory, or ~. Select the file, give it a name, and save. If you reboot, you should hear your fans adjusting to your set speeds when the system starts up.
 

Howdy

Senior member
Nov 12, 2017
572
480
136
Thank you for the cool-bits :p
I did try the code from hiigaran's guide and ended up with a black screen and a cursor and that was it, even after rebooting several hundred times. So I formatted and reinstalled Mint to get back up and running.
Hopefully I do not "break" it again.................:eek:
 

biodoc

Diamond Member
Dec 29, 2005
6,257
2,238
136
Thank you for the cool-bits :p
I did try the code from hiigaran's guide and ended up with a black screen and a cursor and that was it, even after rebooting several hundred times. So I formatted and reinstalled Mint to get back up and running.
Hopefully I do not "break" it again.................:eek:

The guide suggests this command to add fan control and overclocking (--cool-bits=28) and perhaps recognition of multiple GPUs (--allow-empty-initial-configuration)

sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration

the switch (--allow-empty-initial-configuration) may allow recognition of 2 or more GPUs that are not connected to monitors. I found adding this switched caused cinnamon to crash after booting so I had to remove the offending lines in my xorg.conf file to get it to boot properly.

try this just to add fan control and overclocking

sudo nvidia-xconfig -a --cool-bits=28

then reboot

BTW, sudo nvidia-xconfig writes out to a file called xorg.conf which is located in the /etc/X11 directory.
 
Last edited:

Howdy

Senior member
Nov 12, 2017
572
480
136
The guide suggests this command to add fan control and overclocking (--cool-bits=28) and perhaps recognition of multiple GPUs (--allow-empty-initial-configuration)

sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration

the switch (--allow-empty-initial-configuration) may allow recognition of 2 or more GPUs that are not connected to monitors. I found adding this switched caused cinnamon to crash after booting so I had to remove the offending lines in my xorg.conf file to get it to boot properly.

try this just to add fan control and overclocking

sudo nvidia-xconfig -a --cool-bits=28

then reboot

BTW, sudo nvidia-xconfig writes out to a file called xorg.conf which is located in the /etc/X11 directory.


@biodoc , That is exactly what I tried and ended up where I was........reformatting. I am by no means a P/C programmer, but I do try :confused_old:. I do appreciate the help since I seem to be pretty good at un-programming Linux or is it considered breaking? :)

Although, I did read at the end of "Enabling overclocking" that 10T posted (top "from here" in post #76) is to add the cool-bit numbers together:

" To enable multiple features, add the Coolbits values together. For example, to enable overclocking and overvoltage of Fermi cores, set Option "Coolbits" "24" "

I wanted OCing and fan control so I entered #4-fan control plus #8 OCing = 12 (as 10T said I needed the 12 for it to work):

sudo nvidia-xconfig --enable-all-gpus

sudo nvidia-xconfig --cool-bits=12

This machine has dual GPUs, when I go to Nvidia X Server Settings I can OC either GPU and control the fans Independently now. I have not ventured into setting them up to maintain these settings upon a reboot yet ;)
 
Last edited:
  • Like
Reactions: TennesseeTony

biodoc

Diamond Member
Dec 29, 2005
6,257
2,238
136
You are spot on Howdy2u2. Nice work. Sometimes I take these guides too seriously without following up on the details.

I checked my xorg.conf files and I have them set at coolbits 12 too.
 

TennesseeTony

Elite Member
Aug 2, 2003
4,204
3,631
136
www.google.com
Back to remote access for F@H...

I have all my clients added to my computer from which I will be monitoring the systems, but none of them are connecting. Do I need to do something to the systems that will be getting monitored, to get them to communicate?
I've tried
  • completely disabling the firewall on the main computer, and
  • I've tried entering the range of addresses per Stefan's post, on one of the remote computers, but no luck.
 

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
After you whitelisted the monitoring address on the client, you may need to restart the client.
$ sudo /etc/init.d/FAHClient restart

Also check whether there is a desktop firewall active on the client.
And verify whether or not the client is configured to require a password for remote access.
If you use host names instead of IP addresses, check that the monitoring host can actually resolve this host name.
$ nslookup client_name
 

TennesseeTony

Elite Member
Aug 2, 2003
4,204
3,631
136
www.google.com
Am I supposed to have this in BOTH areas (for the main computer)?

remote_ac.jpg
 

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
I have both to be sure. One or both are required on each client.
Oh, you actually want 10.0.1.0/24 there (or just the address of the main computer, if you never monitor from another one).
 

TennesseeTony

Elite Member
Aug 2, 2003
4,204
3,631
136
www.google.com
Firewall on Mint boxes is off by default, passwords match, changed the obvious error mentioned above (doh!), restarted client(s), but still not working.

I'm using the right addresses, from my router's DHCP list, right?

DHCP.jpg
 
Last edited:

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
Is the 10.0.1.* network just a switched Ethernet network, or is it routed?
It's the former if e.g. "traceroute wuss-linux" on the controlling node shows just a single hop.
It's the latter if it shows e.g. two hops, with your router in between. In that case, make sure the router forwards traffic from/ to port 36330.

PS,
if you use DHCP, are the IP addresses fixed e.g. for specific MACs? If not, better enter the host name instead of the IP address when you add a host to FAHControl's side panel. Assuming that the host names are persistent.
 

TennesseeTony

Elite Member
Aug 2, 2003
4,204
3,631
136
www.google.com
Stefan.....shouldn't you be asleep? :p

Switched connection, but very likely to get new address(es) every 24 hours, or every restart of a host. I love the stability of the Apple router, but...it's far too simple. Every time I do something 'advanced' I'm without internet for hours or worse.

LOL, traceroute came back with 'less than 30 hops.' My 'local' network is not so local? I'm 'sharing a single IP address' with all my hosts, according to the router, I forget what the other option is, but I do recall that's the one not to mess with. :(

Probably need a new thread, "Home Networking Guide for complete idiots." :D
 

biodoc

Diamond Member
Dec 29, 2005
6,257
2,238
136
Is it worth checking the IP addresses on the computers?

On linux the command is ifconfig
On windows I think the terminal command is ipconfig

on linux:

mark@x12-linux ~ $ ifconfig
eth0 Link encap:Ethernet HWaddr 54:04:a6:4a:84:cb
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5604:a6ff:fe4a:84cb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1400945 errors:0 dropped:0 overruns:0 frame:0
TX packets:1207080 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1042607329 (1.0 GB) TX bytes:636026678 (636.0 MB)
Interrupt:18 Memory:f9100000-f9120000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:286734 errors:0 dropped:0 overruns:0 frame:0
TX packets:286734 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:59498187 (59.4 MB) TX bytes:59498187 (59.4 MB)
 

brownstone

Golden Member
Oct 18, 2008
1,340
32
91
Similar problem with monitoring using hfm.net. Started out working fine, but now the FAHControl on my linux box appears to be stuck at "connecting" to the client. So it's not feeding any info to my monitoring computer, but it appears the the FAHClient is still running. Anyone have a fix for a broken FAHControl? I already tried to reinstall the package.
 

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
As recommended by biodoc, check the IP address on the client node and on the controller node.
Then whitelist the address of the controller node within the config of fahclient on the client node.
Restart fahclient if it didn't already have an appropriate whitelist entry when it started.
Check with traceroute whether there are any hops ( = router nodes) between client node and controller node.
Then check firewall configs of all nodes (controller node, routers, client node) that they allow traffic for port 36330.

Make sure that FAHControl's version and FAHClient's version do not differ too much. Use a recent HFM.net.
 

Pokey

Platinum Member
Oct 20, 1999
2,766
457
126
Similar problem with monitoring using hfm.net. Started out working fine, but now the FAHControl on my linux box appears to be stuck at "connecting" to the client. So it's not feeding any info to my monitoring computer, but it appears the the FAHClient is still running. Anyone have a fix for a broken FAHControl? I already tried to reinstall the package.
Two things to check:
Look at Config>Remote Access on the remote box to be sure it is set up. If you had to reinstall FAHControl for some reason the remote access will have to be set up all over again. And check to be sure the IP address of the remote box hasn't changed for some reason.
 

brownstone

Golden Member
Oct 18, 2008
1,340
32
91
Both are good. For some reason the FAHControl on the actual folding machine itself is not connecting with the FAHClient. So I'm unable to monitor the client locally or remotely.

Two things to check:
Look at Config>Remote Access on the remote box to be sure it is set up. If you had to reinstall FAHControl for some reason the remote access will have to be set up all over again. And check to be sure the IP address of the remote box hasn't changed for some reason.
 

Pokey

Platinum Member
Oct 20, 1999
2,766
457
126
I am probably not your best source for this but if it were me,

Assuming your drivers are installed correctly, I would stop the FAH Client in terminal:

sudo /etc/init.d/FAHClient stop

and close FAHControl.

restart the client.

sudo /etc/init.d/FAHClient start

make sure all the python dependences are installed. See the guide.

Then reinstall FAHControl. If you have already done all this then you need more help than I can offer.
 

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
For some reason the FAHControl on the actual folding machine itself is not connecting with the FAHClient. So I'm unable to monitor the client locally or remotely.
Make sure that 127.0.0.1 (localhost) is whitelisted for control. This is how my config looks:
Code:
$ cat /etc/fahclient/config.xml
<config>
  <!-- Folding Core -->
  <core-priority v='low'/>

  <!-- HTTP Server -->
  <allow v='127.0.0.1 192.168.0.0/24'/>

  <!-- Network -->
  <proxy v=':8080'/>

  <!-- Remote Command Server -->
  <command-allow-no-pass v='127.0.0.1 192.168.0.0/24'/>

  <!-- Slot Control -->
  <power v='full'/>

  <!-- User Information -->
  [...]

  <!-- Folding Slots -->
  <slot id='1' type='GPU'/>
  <slot id='2' type='GPU'/>
</config>
If you see that you need to edit this file, first stop fahclient as @Pokey showed, then e.g.
$ sudo nano -w /etc/fahclient/config.xml
(edit, write, exit)
and then restart fahclient and fahcontrol.
 
  • Like
Reactions: Pokey

brownstone

Golden Member
Oct 18, 2008
1,340
32
91
@stefan It appears that somewhere along the way I did indeed lose my localhost whitelist...user error no doubt. I got that edited in and now I'm back to being able to monitor my system using FAHControl.

To all in this thread: Thanks for the continued support of my bumbling linux adventure
 
  • Like
Reactions: Pokey

crashtech

Lifer
Jan 4, 2013
10,521
2,111
146
Quick question, since I have many similarly configured systems, how feasible would it be to to one full install, then use that as a disk image to deploy to the other machines?
 

StefanR5R

Elite Member
Dec 10, 2016
5,459
7,717
136
I did this with PCs which have almost identical hardware. But different hardware shouldn't be much of a problem either, or possibly no problem at all, since distributors' kernels and initrds include drivers for a huge variety of hardware, and auto-load the required drivers.

After cloning,
  • boot the cloned PC,
  • edit the /etc/hostname file,
  • maybe change some settings in the Network preferences GUI,
  • fold away.
In addition, AFAIU you should clean out /var/lib/boinc-client before you start BOINC for the first time on the cloned PC. You can keep some files from the master disk, such as
account_www.primegrid.com.xml
account_www.worldcommunitygrid.org.xml
[...]
cc_config.xml
global_prefs_override.xml
gui_rpc_auth.cfg​

Either prepare a pristine /var/lib/boinc-client before you clone the disk image, or prevent auto-start of BOINC before you clone with
sudo update-rc.d boinc-client disable​
and then start BOINC manually on the clone, after you cleaned the boinc-client directory, with
sudo /etc/init.d/boinc-client start​

You probably have your familiar tools for disk cloning. I copied NVMe M.2 gum sticks like this:
  • Boot from a live Linux USB stick,
  • have a really hard look at "cat /proc/partitions" to figure out which is the source and which the target,
  • dd --help
  • dd status=progress bs=16M if=/dev/nvme1n1 of=/dev/nvme0n1
 
Last edited:

Howdy

Senior member
Nov 12, 2017
572
480
136
Will attempt to get Folding on my only (for now) Linux machine. I am going to follow the install TO THE LETTER and hope like- yeah that place- it works this time.
I certainly wish I would have switched to Linux a long time ago, the efficiency and not having to deal with forced updates is worth the frustration for a newb installer, non-programmer person.
It just works............for the most part........ after you figure out the kinks!
 
  • Like
Reactions: TennesseeTony