PROWAREtech
Folding at Home Linux Server
See related: Folding@Home Processor Performance Database
This article details installing Folding@Home on a Ubuntu 18.04 Linux server using the command-line interface (CLI). It will work on a Linux GUI from a terminal window, but the point of this article is to install on the Linux server operating system which is more efficient. The Linux server OS will run Folding@Home with just a single GB of RAM!
This article will also install a driver for a modern Nvidia graphics card (GPU).
Install Linux Server
Download Ubuntu server from here and install it.
Update Linux Server
Update the server with the command:
sudo apt update
And this command:
sudo apt upgrade
Install SSH Server
SSH will allow access to the CLI from another computer. This is not a requirement.
sudo apt install openssh-server
Reboot the server.
Install OpenCL
This is optional and only required for folding on GPU's; GPU steps can be skipped if not folding with a GPU.
Issue this command to install OpenCL:
sudo apt-get install ocl-icd-opencl-dev
Reboot the server.
List Available NVIDIA Drivers
This is optional and only required for folding on Nvidia GPU's; GPU steps can be skipped if not folding with a GPU.
Issue a apt search nvidia-driver command to show a list similar to this:
apt search nvidia-driver
user@hostname-or-ip:~$ apt search nvidia-driver
Sorting... Done
Full Text Search... Done
nvidia-384/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-390
nvidia-384-dev/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-390
nvidia-driver-390/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
NVIDIA driver metapackage
nvidia-driver-418/bionic-updates 430.50-0ubuntu0.18.04.2 amd64
Transitional package for nvidia-driver-430
nvidia-driver-418-server/bionic-updates,bionic-security 418.211.00-0ubuntu0.18.04.1 amd64
NVIDIA Server Driver metapackage
nvidia-driver-430/bionic-updates,bionic-security 440.100-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-440
nvidia-driver-435/bionic-updates 455.45.01-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-455
nvidia-driver-440/bionic-updates,bionic-security 450.119.03-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-450
nvidia-driver-440-server/bionic-updates,bionic-security 450.142.00-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-450-server
nvidia-driver-450/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-460
nvidia-driver-450-server/bionic-updates,bionic-security 450.142.00-0ubuntu0.18.04.1 amd64
NVIDIA Server Driver metapackage
nvidia-driver-455/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-460
nvidia-driver-460/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA driver metapackage
nvidia-driver-460-server/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA Server Driver metapackage
nvidia-driver-465/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.1 amd64
Transitional package for nvidia-driver-470
nvidia-driver-470/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.1 amd64
NVIDIA driver metapackage
nvidia-driver-470-server/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.3 amd64
NVIDIA Server Driver metapackage
nvidia-headless-390/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-418-server/bionic-updates,bionic-security 418.211.00-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-450-server/bionic-updates,bionic-security 450.142.00-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-460/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-460-server/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-470/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage
nvidia-headless-470-server/bionic-updates,bionic-security,now 470.57.02-0ubuntu0.18.04.3 amd64 [installed]
NVIDIA headless metapackage
nvidia-headless-no-dkms-390/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-418-server/bionic-updates,bionic-security 418.211.00-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-450-server/bionic-updates,bionic-security 450.142.00-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-460/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-460-server/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-470/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.1 amd64
NVIDIA headless metapackage - no DKMS
nvidia-headless-no-dkms-470-server/bionic-updates,bionic-security,now 470.57.02-0ubuntu0.18.04.3 amd64 [installed,automatic]
NVIDIA headless metapackage - no DKMS
xserver-xorg-video-nvidia-390/bionic-updates,bionic-security 390.144-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-418-server/bionic-updates,bionic-security 418.211.00-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-450-server/bionic-updates,bionic-security 450.142.00-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-460/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-460-server/bionic-updates,bionic-security 460.91.03-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-470/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.1 amd64
NVIDIA binary Xorg driver
xserver-xorg-video-nvidia-470-server/bionic-updates,bionic-security 470.57.02-0ubuntu0.18.04.3 amd64
NVIDIA binary Xorg driver
Make note of the driver that will be installed, in this case: nvidia-driver-470-server.
Install NVIDIA Driver
Make sure the compatible GPU is physically installed in the server.
Issue the command sudo apt install [driver_name] to install the Nvidia driver. For example:
sudo apt install nvidia-driver-470-server
Reboot the server.
It may be necessary to install the nvidia utilities to have nvidia-smi which is for monitoring GPU temperature and power usage. Issue this command for this example:
sudo apt-get install nvidia-utils-470-server
Issue this command to monitor the Nvidia GPU's temps and power usage:
watch -t nvidia-smi
Install Folding@Home Client (FAH Client)
Download FAH Client
To download version 7.6.21:
wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.6/fahclient_7.6.21_amd64.deb
Install FAH Client
To install version 7.6.21:
sudo dpkg -i --force-depends fahclient_7.6.21_amd64.deb
Stopping and Starting FAH Client
To stop FAH Client:
sudo /etc/init.d/FAHClient stop
To start FAH Client:
sudo /etc/init.d/FAHClient start
Data Directory
The cores, logs, and work folder, plus current log file, are located in this directory: /var/lib/fahclient
Edit CONFIG.XML
Stop FAH Client and then edit the configuration file - config.xml - with this command:
sudo nano /etc/fahclient/config.xml
Example CONFIG.XML file
This example will fold on the Nvidia GPU installed in the server.
<config>
<!-- ALZHEIMERS CANCER COVID_19 HIGH_PRIORITY HUNTINGTONS PARKINSONS (SIMPLY REMOVE FOR ANY CAUSE) -->
<cause v='COVID_19'/>
<proxy v=':8080'/>
<!-- password for remote access with FAHControl -->
<password v='password'/>
<power v='full'/>
<!-- User Information -->
<passkey v='PASSKEY FROM foldingathome.org'/>
<team v='0'/>
<user v='USER REGISTERED ON foldingathome.org'/>
<!-- Folding Slots -->
<slot id='0' type='GPU'/>
<!-- CPU Slot w/4 Threads -->
<slot id='1' type='CPU'>
<cpus v='4'/>
</slot>
</config>
Uninstall FAH Client
Stop FAHClient first then enter this command to remove FAHClient.
sudo dpkg -P fahclient
This article details installing Folding@Home on a Fedora 34 Linux server using the command-line interface (CLI). This also covers how to manually install F@H on the desktop as these procedures work for both.
This article will also install a driver for a modern Nvidia graphics card (GPU).
Have Fedora server installed and be logged in as root.
Update Linux Server
Update the server:
yum update
Reboot the server.
Download and Install Nvidia Drivers for Linux
This is optional and only required for folding on Nvidia GPU's; GPU steps can be skipped if not folding with a GPU.
Download the latest Nvidia driver from this site. Secure CoPy (SCP) the downloaded Nvidia driver file to the server, or use wget to download the file directly to the server. For example:
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/510.60.02/NVIDIA-Linux-x86_64-510.60.02.run
Set the downloaded/copied NVIDIA binary to have execute permissions:
chmod +x NVIDIA-*.run
Make sure server is up to date:
dnf update
Reboot the server.
Install required dependencies:
dnf install kernel-devel kernel-headers gcc make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig
Disable the "nouveau" driver:
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
Edit /etc/default/grub:
nano /etc/default/grub
For Fedora 34 BTRFS add the data in red:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
Update grub2 conf:
grub2-mkconfig -o /boot/grub2/grub.cfg
Remove xorg-x11-drv-nouveau
dnf remove xorg-x11-drv-nouveau
Backup initramfs:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
Create new initramfs:
dracut /boot/initramfs-$(uname -r).img $(uname -r)
Reboot to runlevel 3:
systemctl set-default multi-user.target
Reboot the server.
Run the Nvidia binary (NVIDIA-Linux-x86_64-510.60.02.run in this case):
./NVIDIA-Linux-x86_64-510.60.02.run
- Yes to register the Kernel Source Modules with DKMS.
- OK the "WARNING: nvidia-installer was forced to guess the X library path '/usr/lib64' and X module path '/usr/lib64/xorg/modules'; these paths were not queryable from the system. If X fails to find the NVIDIA X driver module, please install the `pkg-config` utility and the X.Org SDK/development package for your distribution and reinstall the driver."
- Yes to install 32-bit compatibility libraries.
- Yes to run the nvidia-xconfig utility to automatically update your X configuration file.
Reboot back to runlevel 5:
systemctl set-default graphical.target
Reboot the server.
Issue this command to monitor the Nvidia GPU's temps and power usage:
watch -t nvidia-smi
Install Folding@Home Client (FAH Client)
Download FAH Client
To download version 7.6.21:
wget https://download.foldingathome.org/releases/public/release/fahclient/centos-6.7-64bit/v7.6/fahclient-7.6.21-1.x86_64.rpm
Install FAH Client
To install version 7.6.21:
rpm -i --nodeps fahclient-7.6.21-1.x86_64.rpm
Stopping and Starting FAH Client
To stop FAH Client:
/etc/init.d/FAHClient stop
To start FAH Client:
/etc/init.d/FAHClient start
Data Directory
The cores, logs, and work folder, plus current log file, are located in this directory: /var/lib/fahclient
Edit CONFIG.XML
Right now, the FAH Client is configured for Anonymous use and to fold on a CPU.
Stop FAH Client and then edit the configuration file - config.xml - with this command:
nano /etc/fahclient/config.xml
Example CONFIG.XML file
This example will fold on the Nvidia GPU installed in the server.
<config>
<!-- ALZHEIMERS CANCER COVID_19 HIGH_PRIORITY HUNTINGTONS PARKINSONS (SIMPLY REMOVE FOR ANY CAUSE) -->
<cause v='COVID_19'/>
<proxy v=':8080'/>
<!-- password for remote access with FAHControl -->
<password v='password'/>
<power v='full'/>
<!-- User Information -->
<passkey v='PASSKEY FROM foldingathome.org'/>
<team v='0'/>
<user v='USER REGISTERED ON foldingathome.org'/>
<!-- Folding Slots -->
<slot id='0' type='GPU'/>
<!-- CPU Slot w/4 Threads -->
<slot id='1' type='CPU'>
<cpus v='4'/>
</slot>
</config>
Autostart FAH Client at Boot
Use cron to autostart FAHClient at boot. To open the crontab editor:
crontab -e
Create a new line starting with @reboot like this:
@reboot /etc/init.d/FAHClient start
Reboot the server and FAHClient should be started automatically.
Install PowerChute to Safely Shutdown Server Upon Power Failure
This is optional and requires an American Power Conversion (APC) UPS.
Download PowerChute Business Edition for Linux. At the time of this writing, PowerChute Business Edition v10.0.2 is current. If this link is broken, search for the latest version of this software.
Use SCP to copy the PowerChute file (apcpowerchute.tar.gz in this example) to an empty directory on the server.
Expand PowerChute with this command:
tar xzf apcpowerchute.tar.gz
Install PowerChute with this command:
./install_pbeagent_linux.sh
This article details installing Folding@Home on a CentOS 7 Linux server using the command-line interface (CLI). This also covers how to manually install F@H on the desktop as these procedures work for both.
This article will also install a driver for a modern Nvidia graphics card (GPU).
Have CentOS server installed and be logged in as root.
Update Linux Server
Update the server:
yum update
Reboot the server.
Install Nvidia Drivers for Linux
This is optional and only required for folding on Nvidia GPU's; GPU steps can be skipped if not folding with a GPU.
Issue these commands to install dependencies/prerequisites for the Nvidia driver:
yum groupinstall "Development Tools"
yum install kernel-devel epel-release
yum install dkms
Download the latest Nvidia driver from this site. Secure CoPy (SCP) the downloaded Nvidia driver file to the server, or use wget to download the file directly to the server. For example:
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/510.60.02/NVIDIA-Linux-x86_64-510.60.02.run
Set the downloaded/copied NVIDIA binary to have execute permissions:
chmod +x NVIDIA-*.run
Edit grub:
nano /etc/default/grub
Disable the "nouveau" driver by adding "nouveau.modeset=0" to grub, such as in this example:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet nouveau.modeset=0"
GRUB_DISABLE_RECOVERY="true"
Reboot the server.
Issue this command to stop Xorg server:
systemctl isolate multi-user.target
Run the Nvidia binary:
bash /NVIDIA-Linux-x86_64-*
- Yes to register the Kernel Source Modules with DKMS.
- Yes to install 32-bit compatibility libraries.
- Yes to run the nvidia-xconfig utility to automatically update your X configuration file.
Issue this command to monitor the Nvidia GPU's temps and power usage:
watch -t nvidia-smi
Install Folding@Home Client (FAH Client)
Download FAH Client
To download version 7.6.21:
wget https://download.foldingathome.org/releases/public/release/fahclient/centos-6.7-64bit/v7.6/fahclient-7.6.21-1.x86_64.rpm
Install FAH Client
To install version 7.6.21:
rpm -i --nodeps fahclient-7.6.21-1.x86_64.rpm
Stopping and Starting FAH Client
To stop FAH Client:
/etc/init.d/FAHClient stop
To start FAH Client:
/etc/init.d/FAHClient start
Data Directory
The cores, logs, and work folder, plus current log file, are located in this directory: /var/lib/fahclient
Edit CONFIG.XML
Right now, the FAH Client is configured for Anonymous use and to fold on a CPU.
Stop FAH Client and then edit the configuration file - config.xml - with this command:
nano /etc/fahclient/config.xml
Example CONFIG.XML file
This example will fold on the Nvidia GPU installed in the server.
<config>
<!-- ALZHEIMERS CANCER COVID_19 HIGH_PRIORITY HUNTINGTONS PARKINSONS (SIMPLY REMOVE FOR ANY CAUSE) -->
<cause v='COVID_19'/>
<proxy v=':8080'/>
<!-- password for remote access with FAHControl -->
<password v='password'/>
<power v='full'/>
<!-- User Information -->
<passkey v='PASSKEY FROM foldingathome.org'/>
<team v='0'/>
<user v='USER REGISTERED ON foldingathome.org'/>
<!-- Folding Slots -->
<slot id='0' type='GPU'/>
<!-- CPU Slot w/4 Threads -->
<slot id='1' type='CPU'>
<cpus v='4'/>
</slot>
</config>
Autostart FAH Client at Boot (Optional)
Use cron to autostart FAHClient at boot. To open the crontab editor:
crontab -e
Create a new line starting with @reboot like this:
@reboot /etc/init.d/FAHClient start
Reboot the server and FAHClient should be started automatically.
Install PowerChute to Safely Shutdown Server Upon Power Failure
This is optional and requires an American Power Conversion (APC) UPS.
Download PowerChute Business Edition for Linux. At the time of this writing, PowerChute Business Edition v10.0.2 is current. If this link is broken, search for the latest version of this software.
Use SCP to copy the PowerChute file (apcpowerchute.tar.gz in this example) to an empty directory on the server.
Expand PowerChute with this command:
tar xzf apcpowerchute.tar.gz
Install PowerChute with this command:
./install_pbeagent_linux.sh
Follow the onscreen prompts.