Folding@Home auf Fedora

Wer dem Folding@Home-Projekt seine Rechenpower auf einem modernen Linux im Hintergrund zur Verfügung stellen möchte und beispielsweise auf die Control-Applikation und den Viewer verzichten kann (und man kann wirklich getrost darauf verzichten), richtet sich den für Python 2.6 geschriebenen FAHClient wie folgt ein.

Die Anleitung ist auf Fedora Linux ab Version 31 getestet. Die Konfigurationsdatei geht davon aus, dass man sich vorab einen PassKey - also eine Art Account - zugelegt hat.

Die Team-ID 260774 gehört zur Linuxfabrik. Wer will, kann gerne beitreten. :-)

Los geht's.

FAHClient in der aktuellsten Version (31. Mai 2018) downloaden. Nicht wundern - trotz "centos" in der URL gilt dieser Link auch für RHEL oder Fedora, und ist aktueller als in der F@H-FAQ beschrieben.

wget https://download.foldingathome.org/releases/public/release/fahclient/centos-6.7-64bit/v7.5/latest.rpm
sudo dnf -y install latest.rpm
sudo pkill FAHClient
sleep 5

Jetzt wird der FAHClient mit ein paar Basis-Eigenschaften konfiguriert - bei Bedarf also entsprechend anpassen:

cat <<EOF | sudo tee /etc/fahclient/config.xml > /dev/null 2>&1
<config>
  <!-- GPU true/false -->
  <gpu v='false'/>
  <!-- Limit CPU Usage per Physical (!) Core to max v% -->
  <cpu-usage v='30'/>
  <!-- Pause Client on Laptops running on Battery -->
  <pause-on-battery v='true'/>
  <!-- Slot Control - light, medium, full -->
  <power v='full'/>
  <!-- User Information -->
  <passkey v='mypasskey'/>
  <team v='260774'/>
  <user v='Markus'/>
  <!-- Folding Slots -->
  <slot id='0' type='CPU'/>
</config>
EOF

Der Client versteht noch init-Scripte. Hier bringen wir ihm den Umgang mit systemd bei (das Unit-File haben wir hier gefunden):

cat <<EOF | sudo tee /etc/systemd/system/FAHClient.service > /dev/null 2>&1
[Unit]
Description=Folding@Home Client
Documentation=https://foldingathome.org/

[Service]
CPUSchedulingPolicy=idle
ExecReload=/usr/bin/kill -SIGUSR1 $MAINPID
ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml --pid-file=/run/fahclient/FAHClient.pid
Group=fahclient
Nice=19
NoNewPrivileges=true
PIDFile=/run/fahclient/FAHClient.pid
PrivateTmp=yes
ProtectControlGroups=true
ProtectHome=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectSystem=full
Restart=always
RestartSec=5s
Type=exec
User=fahclient
WorkingDirectory=/var/lib/fahclient

[Install]
WantedBy=multi-user.target
EOF

Client starten und bei der Arbeit beobachten:

sudo systemctl daemon-reload
sudo systemctl enable FAHClient
sudo systemctl start FAHClient
sudo tail -f /var/lib/fahclient/log.txt

EDIT: Wer FAHControl verwenden möchte, installiert das Tool so:

wget https://download.foldingathome.org/releases/public/release/fahcontrol/centos-6.7-64bit/v7.5/latest.noarch.rpm
dnf -y install latest.noarch.rpm

und ändert die erste Zeile Source-Code in /usr/bin/FAHControl von #!/usr/bin/python auf #!/usr/bin/python2.

Happy Folding!


Related Posts

Published by

Markus Frei

Markus Frei

von der Linuxfabrik GmbH.