GUIDE: FAH on Linux from scratch
Posted: Thu May 09, 2019 6:04 pm
Here's a quick guide on installing FAH on Lubuntu (one of the Ubuntu/Linux variants of my preference).
I went with Lubuntu, as it uses LXDE, which is an easier Linux desktop variant for Windows users.
This guide would work for Ubuntu as Debian alike, is for future reference as it has many commands that need to be gathered all over the internet, and for helping out people transferring to Linux from Windows.
This guide is made for most systems with Nvidia graphics cards.
The order in which the commands are entered is important, to avoid installation errors.
Use the 64 bit version, even with only 2GB of RAM (can run on 1GB of RAM with Swap but 2GB or more of RAM is recommended)
https://lubuntu.net/downloads/ (1.1GB)
Lubuntu 18.04 is an LTS (Long Term Support) and considered most stable.
Alternatively you can download version 18.10 as well.
https://lubuntu.net/lubuntu-18-10-cosmi ... -released/ (1,6GB)
(19.04 and up currently doesn't support Python 2, a dependency for FAH).
- From Linux:
if= download location of the ISO file + iso file name.
of= location of the USB flash drive. type 'df-h' to verify location by drive size, or use a gui program like 'gparted' or 'disks' to format a drive and find it's location.
do not use dd on partitions (like SDB1, SDB2, SDC1, ...). ISO files can only be extracted on the drive's root (SDB, SDC,...)
- From Windows, I would recommend to use one of the following programs, whichever does not give errors on your system:
Rufus, RMPrepUSB, YUMI, or UnetBootin
- Set bios to accept Legacy boots, (disable UEFI only)
- Dual Boot with Windows isn't recommended, but possible. Not explained here.
Boot from USB FLASH drive, and select start Lubuntu or install.
From a live boot (start Lubuntu from Flash USB), it is best to install the OS without doing anything else in the background. Start live OS is great to get a feel for the operating system, but when you want to install the OS, try not to click on anything else, lest it would freeze up during installation.
Follow the prompts.
Best to install fresh on a clean SSD.
Installations on partitions are more difficult, and boot issues with dual booting can cause problems.
If a clean install isn't available, you can do a manual installation too.
Lubuntu will need a primary FAT32 boot partition of at least 300MB (preferably 500MB) mounted as '/boot/efi/', and best is an EXT4 drive of at least 15GB mounted as '/'
Once installed and rebooted, start with downloading the nVidia .run file drivers from:
https://www.geforce.com/drivers
Prefer to download driver version 418.74 for now (Edit: 430.14 is available now, and should install the same).
The download will save a .run file on your downloads directory.
If you have trouble getting your wireless drivers to work, I would recommend to use wired LAN or use this $10 wifi dongle. It works out of the box on almost all Linux variants, without the need for special drivers:
https://www.amazon.com/gp/product/B00KV9TQXM
Then install needed dependencies from terminal (CTRL + ALT + T):
After the download is complete, log out, press CTRL + ALT + F1, and log in again in the terminal (dos like screen).
if this is unsuccessful, you can also press CTRL + ALT + F2, and do things from there.
type the following commands:
If error, try:
or:
Then type:
Sometimes re-logging in is required after this step.
Go to your Downloads directory usually /home/'YOURLOGINNAME'/Downloads, or type:
and type:
or, whatever file version you've downloaded.
Typing './NVID' and pressing the 'tab' button should reveal possible options.
This command allows you to execute the run file.
Install video driver:
Follow along with some error codes, and allow older files to be overwriting newer files. The installation works fine,
Reboot, type:
Next up, modify the sources list; type:
Use the keyboard keys, and verify if the last line says the following (if it says 'Prompt=LTS', change it):
Press CTRL + X (exit), and Y (save), and enter (confirm).
Then update dependencies:
When finished, reboot:
In terminal type:
Follow the screens and wait for the update to finish.
Reboot. (from GUI or from terminal type: Reboot)
To verify the update from a terminal type:
It should display something like:
Once in GUI, you can enable overclocking and power adjustments on all graphics cards, by opening a terminal (CTRL + ALT + T) and typing:
Go to:
https://foldingathome.org/start-folding/
and download the 2 deb files (FAHClient, and FAHControl). FahViewer is optional.
Go to your download folder, and install the deb files with the included installer (GDebi Package installer, or Discover, by double clicking the files).
Start with FAHClient, then FAHControl
Follow the screen, make sure you enter your user name, team, and key (key can be requested here, in case you don't have one)
Save the key in a special place, like in your email inbox. You might need it again.
Open the start-bar > education > FAHControl
click 'configure', 'expert'.
Change 'GPU=false' to GPU=true
Enter,
Save.
Open a terminal (CTRL + ALT + T)
Type:
In FAHControl, click 'configure' > 'slots'
Remove CPU slot (preferably if you have GPUs, but optional)
Add one GPU slot for each GPU card you have installed or want to use for FAH
They should now be accepted.
If not, try restarting the service again in terminal:[/i]
Once FAH works fine on GPU, one can use following commands:
- To view all cards, power consumption, temperature and fan control (update every 1 second):
- To limit power to a GPU (lower electric bill), where '0' is the first GPU and '1' is the second GPU, and '130' and '150' is the preferred GPU power draw.
Example:
- Fan control and GPU/VRAM over/underclocking can be done via the GUI:
click: Start-bar > Preferences > NVidia X Server Settings
You can also see how adjusting the power in nvidia-smi on the terminal window, affects GPU frequency in Nvidia X Server Settings.
- Use fan control to keep GPU temperatures below decimal values, eg: below 80C, 70C, 60C, or 50C. Performance is usually lowered at these thresholds. Meaning, it's better to run a card at 68C than at 72C; or at 59C vs 61C. But running them at 54C vs 58, or 62C vs 66C does not change GPU frequency.
- Lower power values for saving energy, and running cards cooler; allows higher overclock too.
- Place your case air intake and exhaust fan strategically, for optimal cooling, or use an open style mining rack.
- Don't fold over 83C on RTX and GTX cards. Performance suffers and errors occur when cards run too hot, or are running slightly too high overclocks.
- Disable screen saver.
- Run them from a cold start, at their highest power rating (usually max power levels of RTX cards run from 170W on the 2060s, to 300W on the 2080 ti).
- Start folding.
- Write down the stock GPU boost frequency (1.800-2.025Mhz) at highest power levels when the card is cold (within the first minute of folding).
This is the frequency you will want to aim to overclock to.
- Lower card consumption to ~135W for base overclocking
- Overclock (start with 90Mhz on RTX cards, and slowly increase in increments of 5Mhz about every few minutes, until a BAD STATE is recorded, and WU fails, then back down by 20Mhz; and if any BAD STATES are recorded from there, decrease further by 5Mhz until no more BAD STATEs are recorded, or WUs are lost.
This procedure usually takes a few days to get it right.
Once you know your max GPU overclock (eg: 110Mhz) before WUs will go bad,
- Increase power levels by 5 or 10 Watt (sudo nvidia-smi -i 0 -pl 140; sudo nvidia-smi -i 0 -pl 145) to where you'll reach near to the specific boost frequency (1.800-2.025Mhz) of the card when it was cold.
You'll notice that increasing power consumption from 135W to higher, will also increase boost frequency.
Don't go over the stock boost frequency (not the one that's stated on the box, or sales site, but the boost frequency the card was running on at full power levels).
You'll also notice that once you'll reach the optimal power setting, the GPU boost frequency doesn't really increase much anymore with each additional watt, and it nets nearly no more additional PPDs. Meaning, you'll be consuming a lot more electricity for only little more PPD; and in most cases,the tradeoff isn't worth it.
Increasing the power consumption of the cards, will make them run hotter. Overclocking doesn't.
Fan speed needs to be readjusted after each power level change. Fan speeds are best kept between 50-80% when folding 24/7 (not obnoxiously loud, but enough to keep the cards running in the 60-70C range).
- If any error (BAD STATE) occurs, lower GPU overclock by 5Mhz decrements.
It is preferred to run the card at as low power usage as possible, and as high GPU frequency as is stable.
Take in consideration weather or temperature changes, that can affect performance.
I went with Lubuntu, as it uses LXDE, which is an easier Linux desktop variant for Windows users.
This guide would work for Ubuntu as Debian alike, is for future reference as it has many commands that need to be gathered all over the internet, and for helping out people transferring to Linux from Windows.
This guide is made for most systems with Nvidia graphics cards.
The order in which the commands are entered is important, to avoid installation errors.
- Download and install Lubuntu 18.04 ISO
Use the 64 bit version, even with only 2GB of RAM (can run on 1GB of RAM with Swap but 2GB or more of RAM is recommended)
https://lubuntu.net/downloads/ (1.1GB)
Lubuntu 18.04 is an LTS (Long Term Support) and considered most stable.
Alternatively you can download version 18.10 as well.
https://lubuntu.net/lubuntu-18-10-cosmi ... -released/ (1,6GB)
(19.04 and up currently doesn't support Python 2, a dependency for FAH).
- Write ISO to USB
- From Linux:
Code: Select all
sudo dd if=Downloads/lubuntu-18.04-alternate-amd64.iso of=/dev/sdb
of= location of the USB flash drive. type 'df-h' to verify location by drive size, or use a gui program like 'gparted' or 'disks' to format a drive and find it's location.
do not use dd on partitions (like SDB1, SDB2, SDC1, ...). ISO files can only be extracted on the drive's root (SDB, SDC,...)
- From Windows, I would recommend to use one of the following programs, whichever does not give errors on your system:
Rufus, RMPrepUSB, YUMI, or UnetBootin
- Verify BIOS etc..
- Set bios to accept Legacy boots, (disable UEFI only)
- Dual Boot with Windows isn't recommended, but possible. Not explained here.
- Install ISO
Boot from USB FLASH drive, and select start Lubuntu or install.
From a live boot (start Lubuntu from Flash USB), it is best to install the OS without doing anything else in the background. Start live OS is great to get a feel for the operating system, but when you want to install the OS, try not to click on anything else, lest it would freeze up during installation.
Follow the prompts.
Best to install fresh on a clean SSD.
Installations on partitions are more difficult, and boot issues with dual booting can cause problems.
If a clean install isn't available, you can do a manual installation too.
Lubuntu will need a primary FAT32 boot partition of at least 300MB (preferably 500MB) mounted as '/boot/efi/', and best is an EXT4 drive of at least 15GB mounted as '/'
- Video drivers
Once installed and rebooted, start with downloading the nVidia .run file drivers from:
https://www.geforce.com/drivers
Prefer to download driver version 418.74 for now (Edit: 430.14 is available now, and should install the same).
The download will save a .run file on your downloads directory.
If you have trouble getting your wireless drivers to work, I would recommend to use wired LAN or use this $10 wifi dongle. It works out of the box on almost all Linux variants, without the need for special drivers:
https://www.amazon.com/gp/product/B00KV9TQXM
Then install needed dependencies from terminal (CTRL + ALT + T):
Code: Select all
sudo apt-get install gcc
sudo apt-get install make
if this is unsuccessful, you can also press CTRL + ALT + F2, and do things from there.
type the following commands:
Code: Select all
sudo service lightdm stop
Code: Select all
sudo lightdm stop
Code: Select all
sudo service sddm stop
Code: Select all
sudo init 3
Go to your Downloads directory usually /home/'YOURLOGINNAME'/Downloads, or type:
Code: Select all
cd Downloads
Code: Select all
chmod +x ./NVIDIA-Linux-x86_64-418.74.run
Typing './NVID' and pressing the 'tab' button should reveal possible options.
This command allows you to execute the run file.
Install video driver:
Code: Select all
sudo ./NVIDIA-Linux-x86_64-418.74.run
Reboot, type:
Code: Select all
reboot
- Update linux
Next up, modify the sources list; type:
Code: Select all
sudo nano /etc/update-manager/release-upgrades
Code: Select all
Prompt=normal
Then update dependencies:
Code: Select all
sudo su
apt-get update
apt-get install ocl-icd-opencl-dev
apt-get upgrade
apt-get dist-upgrade
Code: Select all
reboot
Code: Select all
update-manager
Reboot. (from GUI or from terminal type: Reboot)
To verify the update from a terminal type:
Code: Select all
lsb_release -a
Code: Select all
Distributor ID: Ubuntu
Description: Ubuntu 18.10
Release: 18.10
Codename: Cosmic
- Enable all GPUs
Once in GUI, you can enable overclocking and power adjustments on all graphics cards, by opening a terminal (CTRL + ALT + T) and typing:
Code: Select all
sudo su
nvidia-xconfig --enable-all-gpus
nvidia-xconfig --cool-bits=28
reboot
- Install FAH
Go to:
https://foldingathome.org/start-folding/
and download the 2 deb files (FAHClient, and FAHControl). FahViewer is optional.
Go to your download folder, and install the deb files with the included installer (GDebi Package installer, or Discover, by double clicking the files).
Start with FAHClient, then FAHControl
Follow the screen, make sure you enter your user name, team, and key (key can be requested here, in case you don't have one)
Save the key in a special place, like in your email inbox. You might need it again.
- Configure FAH
Open the start-bar > education > FAHControl
click 'configure', 'expert'.
Change 'GPU=false' to GPU=true
Enter,
Save.
Open a terminal (CTRL + ALT + T)
Type:
Code: Select all
sudo /etc/init.d/FAHClient restart
Remove CPU slot (preferably if you have GPUs, but optional)
Add one GPU slot for each GPU card you have installed or want to use for FAH
They should now be accepted.
If not, try restarting the service again in terminal:
Code: Select all
sudo /etc/init.d/FAHClient restart
- Control performance and Power limitations
Once FAH works fine on GPU, one can use following commands:
- To view all cards, power consumption, temperature and fan control (update every 1 second):
Code: Select all
watch -n 1 nvidia-smi
Example:
Code: Select all
sudo nvidia-smi -i 0 -pl 150
sudo nvidia-smi -i 1 -pl 130
click: Start-bar > Preferences > NVidia X Server Settings
You can also see how adjusting the power in nvidia-smi on the terminal window, affects GPU frequency in Nvidia X Server Settings.
- Tips
- Use fan control to keep GPU temperatures below decimal values, eg: below 80C, 70C, 60C, or 50C. Performance is usually lowered at these thresholds. Meaning, it's better to run a card at 68C than at 72C; or at 59C vs 61C. But running them at 54C vs 58, or 62C vs 66C does not change GPU frequency.
- Lower power values for saving energy, and running cards cooler; allows higher overclock too.
- Place your case air intake and exhaust fan strategically, for optimal cooling, or use an open style mining rack.
- Don't fold over 83C on RTX and GTX cards. Performance suffers and errors occur when cards run too hot, or are running slightly too high overclocks.
- Disable screen saver.
- Geforce RTX tuning for Folding
- Run them from a cold start, at their highest power rating (usually max power levels of RTX cards run from 170W on the 2060s, to 300W on the 2080 ti).
Code: Select all
sudo nvidia-smi -i 0 -pl 300
- Write down the stock GPU boost frequency (1.800-2.025Mhz) at highest power levels when the card is cold (within the first minute of folding).
This is the frequency you will want to aim to overclock to.
- Lower card consumption to ~135W for base overclocking
Code: Select all
sudo nvidia-smi -i 0 -pl 135
This procedure usually takes a few days to get it right.
Once you know your max GPU overclock (eg: 110Mhz) before WUs will go bad,
- Increase power levels by 5 or 10 Watt (sudo nvidia-smi -i 0 -pl 140; sudo nvidia-smi -i 0 -pl 145) to where you'll reach near to the specific boost frequency (1.800-2.025Mhz) of the card when it was cold.
You'll notice that increasing power consumption from 135W to higher, will also increase boost frequency.
Don't go over the stock boost frequency (not the one that's stated on the box, or sales site, but the boost frequency the card was running on at full power levels).
You'll also notice that once you'll reach the optimal power setting, the GPU boost frequency doesn't really increase much anymore with each additional watt, and it nets nearly no more additional PPDs. Meaning, you'll be consuming a lot more electricity for only little more PPD; and in most cases,the tradeoff isn't worth it.
Increasing the power consumption of the cards, will make them run hotter. Overclocking doesn't.
Fan speed needs to be readjusted after each power level change. Fan speeds are best kept between 50-80% when folding 24/7 (not obnoxiously loud, but enough to keep the cards running in the 60-70C range).
- If any error (BAD STATE) occurs, lower GPU overclock by 5Mhz decrements.
It is preferred to run the card at as low power usage as possible, and as high GPU frequency as is stable.
Take in consideration weather or temperature changes, that can affect performance.