FAHControl on Ubuntu 19 / Debian 10 and variants

Moderators: Site Moderators, FAHC Science Team

MeeLee
Posts: 1375
Joined: Tue Feb 19, 2019 10:16 pm

FAHControl on Ubuntu 19 / Debian 10 and variants

Post by MeeLee »

Since we probably only will get LTS support for Control, here's a crude guide to getting FAHControl to work on a modern Linux OS.

Difficulty: Medium-easy
Needed skills: To be able to use basic terminal commands, know how to use a Linux GUI, and browser, edit text files.

Disclaimer:
I hold no responsibility for breaking your pc/software or any other.
if you decide to follow this guide, it is fully at your own risk!
The aim is to get FAHControl to work on a modern (non-LTS) version.
Some files may update, and break one or more funcions in your OS, or FAH program, so be sure to try it out on a system that has no valuable information stored.
This method is crude, and most likely there is a more efficient alternative (could be fixed into a .DEB package, which I don't have the skills for yet).
So I'm hoping the community will help with fixes, or troubleshooting, as I'm just a basic Linux user, not a coder or tech wiz. I don't have the answers.


That being said, current method seems to work on Lubuntu 19.10, thus it should work on most alternatives (Mint, Ubuntu, Xubuntu,.... 19.04 and 19.10, Debian 10, etc...)

The main issue after an upgrade of most linux systems from 18.xx to 19.xx, is that python-gnome2 will be uninstalled, which breaks compatibility with FAHControl.
I presume that once an upgrade is done, and FAHControl still works, entering code below can preserve compatibility, but haven't tried yet.

Code: Select all

sudo apt-mark manual python-gnome2


For all others (who have a clean install, or upgrade where FAHClient compatibility is broken):

Procedure

Create a folder (eg: within your Downloads directory), and create within that a file (eg: fah.txt).
Insert in that file the below code:

Code: Select all

# usage: wget -i fah.txt

http://ftp.us.debian.org/debian/pool/main/d/dh-python/dh-python_4.20191017_all.deb
http://launchpadlibrarian.net/109052632/python-support_1.0.15_all.deb
https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.5/fahclient_7.5.1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/python-defaults/python_2.7.16-1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/liba/libart-lgpl/libart-2.0-2_2.3.21-4_amd64.deb
http://ftp.br.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libb/libbonobo/libbonobo2-0_2.32.1-3+b1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libb/libbonoboui/libbonoboui2-0_2.24.5-4_amd64.deb
http://ftp.br.debian.org/debian/pool/main/g/gconf/libgconf-2-4_3.2.6-5_amd64.deb
http://ftp.br.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.1+dfsg-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libg/libgnome/libgnome-2-0_2.32.1-6_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libg/libgnomecanvas/libgnomecanvas2-0_2.30.3-4_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libg/libgnomeui/libgnomeui-0_2.24.5-3.2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/g/gnome-vfs/libgnomevfs2-0_2.24.4-6.1ubuntu2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libg/libgtk2-perl/libgtk2-perl_1.24992-1+b2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/o/orbit2/liborbit-2-0_2.14.19-4_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7~deb10u1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7~deb10u1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7~deb10u1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/popt/libpopt0_1.16-12_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/python2.7/libpython2.7_2.7.16-2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.3-1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/g/gnome-python/python-gconf_2.28.1+dfsg-1.2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/pygtk/python-gtk2_2.24.0-5.1+b1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/p/pygobject-2/python-gobject-2_2.28.6-13+b1_amd64.deb
http://ftp.br.debian.org/debian/pool/main/g/gconf/gconf-service_3.2.6-5_amd64.deb
https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v7.5/fahcontrol_7.5.1-1_all.deb
in terminal, go to the directory, and type:

Code: Select all

wget -i fah.txt
all dependencies will be loaded into the directory.

Create a secondary file (eg: fah2.txt), and insert these lines:

Code: Select all

http://ftp.br.debian.org/debian/pool/main/p/pyorbit/python-pyorbit_2.24.0-7.2_amd64.deb
http://ftp.br.debian.org/debian/pool/main/g/gnome-python/python-gnome2_2.28.1+dfsg-1.2_amd64.deb
You'll have to download these files separately (with a browser or other) as wget can not download them without errors.

Once downloaded, do:

Code: Select all

sudo dpkg --force-all -i *.deb
Then:

Code: Select all

sudo dpkg --force-all -i fahcontrol_7.5.1-1_all.deb python-gnome2_2.28.1+dfsg-1.2_amd64.deb 
sudo dpkg --force-all -i fahclient_7.5.1_amd64.deb
sudo apt update
sudo apt install --fix-broken
sudo apt upgrade

==============================================================================
==============================================================================

Optional

Code: Select all

sudo apt full-upgrade
sudo apt autoremove
If any files break during this step, just reinstall the files 'apt autoremove' has removed that could have caused this.


To manually edit config.xml you can do:

Code: Select all

sudo nano /etc/fahclient/config.xml
2 examples of a basic config.xml using CPU, first one on Linux, second one on Windows:

Code: Select all

<config>
  <!-- Folding Slot Configuration -->
  <gpu v='false'/>

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

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

  <!-- User Information -->
  <team v='******'/>
  <user v='******'/>
  <passkey v='****************' />
  
  <!-- Folding Slots -->
  <slot id='0' type='CPU'>
    <paused v='true'/>
  </slot>
</config>

Code: Select all

<config>
  <!-- Folding Slots -->
  <slot id='0' type='CPU'>
  <gpu v='false'/>
  <power v='full'/>
  <team v='******'/>
  <user v='******'/>
  <passkey v='****************' />
</config>
MeeLee
Posts: 1375
Joined: Tue Feb 19, 2019 10:16 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by MeeLee »

You can delete the installation folder if you wish, or keep the files on an external drive, in case of reinstallation.

So far I've noted an odd behavior, in which FAHClient doesn't recognize any command (like 'start', 'stop', 'restart', or 'log').
FAHClient also closes as the terminal closes.

The only 2 ways to avoid this, is to set FAHClient up to automatically start with the OS.
This way, you can pause the client via the FAHControl GUI window.
Alternatively, you can just keep the terminal window open (FAHClient does start by just typing it in the console).
Betroz
Posts: 7
Joined: Tue Oct 25, 2016 2:56 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by Betroz »

I got Fahcontrol to work as described here, but Fahcontrol was automatically removed next time I updated something else (Debian 10). So back to Linux Mint 19.2 where it still works (or Windows 10 where folding just works...)
MeeLee
Posts: 1375
Joined: Tue Feb 19, 2019 10:16 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by MeeLee »

You'll have to use apt-mark to prevent the system to remove control.
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by foldy »

Sounds like we need a new release of FAH for these new linux distributions to work without workarounds.
bruce
Posts: 20910
Joined: Thu Nov 29, 2007 10:13 pm
Location: So. Cal.

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by bruce »

So you seem to be suggesting that FAH should replace the installation packages that currently support Long Term Support versions of Linux -- or that the there be two sets of installation packages?

One of the problems is that python3 does not provide support for software developed with python2 (or vice-versa).

Feel free to develop either an proposing it as an Open Source contribution to the GitHub site.
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by foldy »

Just a second FAH package which pulls its dependencies on newer Linux versions automatically. I have not done this before but maybe I try to create such package or somebody else. But the new package also needs to be linked at FAH website then or else nobody can find it. Best case would be if everything can be done in the same linux package installer, so it detects classic LTS version or newer Linux Distro and pulls dependecies python2... automatically. Fedora 31 and other distros fixes should be included too viewtopic.php?f=16&t=31971
rwh202
Posts: 425
Joined: Mon Nov 15, 2010 8:51 pm
Hardware configuration: 8x GTX 1080
3x GTX 1080 Ti
3x GTX 1060
Various other bits and pieces
Location: South Coast, UK

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by rwh202 »

foldy wrote:Sounds like we need a new release of FAH for these new linux distributions to work without workarounds.
Definitely - it's had a good innings, but relying on ancient languages was bound to bite sooner or later.

Python3 has been around for 11 years and python2 is heading to the grave next year.

Edit: 25 days and counting:
https://pythonclock.org
MeeLee
Posts: 1375
Joined: Tue Feb 19, 2019 10:16 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by MeeLee »

There are ways to pull all the files I mentioned in the wget window, and find their latest updates.
Then find some sort of command for Linux to not remove one or two 'outdated' packages in the whole (it seems that the majority of the files are compatible and working in newer linux versions).
Python 2.7 is still supported by *buntu 19.10 / Debian 10; and possibly even 20.04 / Debian 11 (though no guarantee it will continue to receive support on those versions).

Wrap it all in a .deb file and BAM. You got yourself a FAH_support_files.deb file.

Ubuntu 20.04 is in alpha stage, and is the next LTS version available.
Lubuntu 19.04/19.10/20.04 all look much better than 18.04, and feel so much more snappy on older hardware, due to using SDDM instead of LightDM.
The only issue that those versions generate, is multiple Nvidia GPUs give desktop errors.
There's no way to install the run files like on 18.04/18.10, and the included deb files also error when trying to overclock, undervolt, or power cap the Nvidia GPUs.
The desktop errors aren't too bad, just that the mouse can disappear off the screen, and never return (unless you do a resolution change to a higher resolution and back), and the desktop background looks like crap (due to the windows dragging like a MS Win 98 error).
These errors can be dealt with, but running the broken desktop long term (hours/days in a row) may cause the desktop to lock up (blank screen) and have no display out; ending with a system that runs unstable and ultimately fails within a few days running.
(at least in Lubuntu; would love to hear from the Mint/Debian/Ubuntu users here).

For me, it looks like I'm stuck with 18.04 for a perfect working OS for a while... (even 18.04 with the latest Linux 5.0 kernel is difficult with Nvidia drivers on multi GPU setups, where --enable-all-gpus is used (a prerequisite for using cool-bits)) .
chabgood
Posts: 78
Joined: Wed Mar 29, 2017 7:59 pm
Hardware configuration: Core I7 7800
4 - 2080
3 - 2080 Super
32GB ram
Ubuntu OS.
All on an EK waterblock system
Location: Austin Tx.

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by chabgood »

I am getting these when installing the fahcontrol:

The following packages have unmet dependencies:
python-gnome2 : Depends: libbonobo2-0 (>= 2.32.1-3~) but it is not installable
Depends: libbonoboui2-0 (>= 2.15.1) but it is not installable
Depends: libgnome-2-0 but it is not installable
Depends: libgnomeui-0 (>= 2.22.0) but it is not installable
Depends: libgnomevfs2-0 (>= 1:2.17.90) but it is not installable
Depends: python-pyorbit (>= 2.0.1-4) but it is not installable
Image
bruce
Posts: 20910
Joined: Thu Nov 29, 2007 10:13 pm
Location: So. Cal.

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by bruce »

A new client has been announced and it is supposed to resolves all of these issues. Like all new releases, FAH can't give you a date when this will happen.
wonko
Posts: 1
Joined: Mon Mar 16, 2020 1:26 am

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by wonko »

I would highly recommend not doing this on the latest Ubuntu 19.10 unless you are looking to spend an entire day tracking down broken packages. This completely nuked my X session and I had to ssh in from the laptop to fix the packages.

Didn't end up with it installed in the end either, sadly.

I hope they come out with the update soon.

-brian
Hk_
Posts: 1
Joined: Tue Mar 17, 2020 7:59 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by Hk_ »

@brian

I have the same problem as you with my Debian distro. People should avoid this method with current versions.

Could you provide me with the packages you had to repair or remove?
Kebast
Posts: 386
Joined: Thu Aug 06, 2015 5:21 pm

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by Kebast »

I'll be upgrading to 20.04 next month or so. Following along here in case this is needed then.
Image
Ryzen 5900x 12T - RTX 4070 TI
ponyatov
Posts: 2
Joined: Wed Mar 25, 2020 3:47 am

Re: FAHControl on Ubuntu 19 / Debian 10 and variants

Post by ponyatov »

Why not just use Docker or make script install with all -Onative optimizations?
Post Reply