I rediscover these steps every time I deploy a new real or virtual machine for BOINC - need to write these down once and for all. Currently participating in SETI@HOME for over 15 years and a few Large Hedron Collider (LHC) projects from the inception of LHC@HOME; here are my BOINC Stats.
I have no headless BOINCTasks PC; all computers run their own BOINC servers and command clients all on localhost.
This post is not very original; it is basically a mashup with some tweaks of (a) http://hardforum.com/showthread.php?t=1854569 and (b) http://boinc.berkeley.edu/dev/forum_thread.php?id=7358. To install boinc attached to seti@home:
Open a terminal or over ssh
(Install BOINC Compile Essentials after becoming root (because we did basic dev most of these are already installed))
su -
yum install gcc-c++ autoconf openssl-devel automake libtool libcurl-devel
(These were some other libraries I found that the configure step requested. I don’t think all of these are absolutely necessary for a basic client-only install, but who doesn’t like a configure without warnings)
yum install libGL-devel libGLU-devel freeglut-devel libXmu-devel libXi-devel libnotify-devel xcb-util-devel libjpeg-devel git
(Create boinc user, then login as boinc user)
useradd boinc
su - boinc
(Next you’ll need to git the boinc source code; when you logged in as boinc you should have been placed in boinc’s home directory (check using pwd); then create a directory for the repository; then git it)
mkdir boinc_source
git clone https://github.com/BOINC/boinc boinc_source/
(Navigate into Repo)
cd boinc_source/
(Run _autosetup)
./_autosetup
(For the configure step there are tons of options (you can look at them by searching online or ./configure --help); for this I will just use two: no server (we are not a boinc work server) and optimize (because why not))
./configure --disable-server --enable-optimize
(Now we build the monster we just created (note – I got a few warnings which were nothing to worry about))
make
(Now we install it – I login as root for this step (exit boinc user) so that it can install boinc with the full daemon/etc.)
exit
cd /home/boinc/boinc_source
make install
Add the boinc-client service - we check and add the service if chkconfig does not see it
chkconfig --list | grep boinc
(If the above comes up empty, add it and set correct directory ownership)
chkconfig --add boinc-client
chkconfig --list | grep boinc # should produce boinc-client 0:off 1:off 2:off 3:on 4:on 5:on 6:off
(It is okay if /var/lib/boinc does not exist in the following two commands)
chown boinc /var/lib/boinc
chgrp boinc /var/lib/boinc
(Set boinc-client to start at boot and Start the boinc daemon)
chkconfig boinc-client on
service boinc-client start
service boinc-client status
(All the boinc data files end up in the boinc user home directory. Now we log back in as boinc and go there to create/modify those files for remote access)
su - boinc
(How you setup your remote login is up to you. What I do is remove the client password and the restrict access to only my BOINCTasks computer’s static IP address. This is what I show below)
vi gui_rpc_auth.cfg
Delete the password and leave only a newline (return/enter key)
Write and save the file
(Note that this next file does not yet exist – vi will create it)
vi remote_hosts.cfg
Type in your BOINCTasks PC IP address (127.0.0.1 for localhost) and the newline
Write and save the file
(Now go back to root and restart the boinc daemon)
exit
service boinc-client restart
service boinc-client status
(Now we need to add a port to firewalld so that the BOINCTasks can communicate with the boinc client)
(This is not applicable to older distros)
If your firewall is configured to allow all traffiic on localhost 127.0.0.1 this is not required.
firewall-cmd --permanent --zone=public --add-port=31416/tcp
firewall-cmd --reload
(Now your BOINCTasks should be able to connect to the computer’s IP)
To attach to SETI@Home do:
Get your account key:
boinccmd --lookup_account http://setiathome.berkeley.edu email_address password
Then attach to seti@home using your account key:
su - boinc
boinccmd --project_attach http://setiathome.berkeley.edu account_key
boinccmd --get_state
Adjust resource limits and restart. vi the following file and adjust the numbers (example below)
vi global_prefs.xml
example of global_prefs.xml:
Restart the boinc daemon, you are done:
exit
service boinc restart
I have no headless BOINCTasks PC; all computers run their own BOINC servers and command clients all on localhost.
This post is not very original; it is basically a mashup with some tweaks of (a) http://hardforum.com/showthread.php?t=1854569 and (b) http://boinc.berkeley.edu/dev/forum_thread.php?id=7358. To install boinc attached to seti@home:
Open a terminal or over ssh
(Install BOINC Compile Essentials after becoming root (because we did basic dev most of these are already installed))
su -
yum install gcc-c++ autoconf openssl-devel automake libtool libcurl-devel
(These were some other libraries I found that the configure step requested. I don’t think all of these are absolutely necessary for a basic client-only install, but who doesn’t like a configure without warnings)
yum install libGL-devel libGLU-devel freeglut-devel libXmu-devel libXi-devel libnotify-devel xcb-util-devel libjpeg-devel git
(Create boinc user, then login as boinc user)
useradd boinc
su - boinc
(Next you’ll need to git the boinc source code; when you logged in as boinc you should have been placed in boinc’s home directory (check using pwd); then create a directory for the repository; then git it)
mkdir boinc_source
git clone https://github.com/BOINC/boinc boinc_source/
(Navigate into Repo)
cd boinc_source/
(Run _autosetup)
./_autosetup
(For the configure step there are tons of options (you can look at them by searching online or ./configure --help); for this I will just use two: no server (we are not a boinc work server) and optimize (because why not))
./configure --disable-server --enable-optimize
(Now we build the monster we just created (note – I got a few warnings which were nothing to worry about))
make
(Now we install it – I login as root for this step (exit boinc user) so that it can install boinc with the full daemon/etc.)
exit
cd /home/boinc/boinc_source
make install
Add the boinc-client service - we check and add the service if chkconfig does not see it
chkconfig --list | grep boinc
(If the above comes up empty, add it and set correct directory ownership)
chkconfig --add boinc-client
chkconfig --list | grep boinc # should produce boinc-client 0:off 1:off 2:off 3:on 4:on 5:on 6:off
(It is okay if /var/lib/boinc does not exist in the following two commands)
chown boinc /var/lib/boinc
chgrp boinc /var/lib/boinc
(Set boinc-client to start at boot and Start the boinc daemon)
chkconfig boinc-client on
service boinc-client start
service boinc-client status
su - boinc
(How you setup your remote login is up to you. What I do is remove the client password and the restrict access to only my BOINCTasks computer’s static IP address. This is what I show below)
vi gui_rpc_auth.cfg
Delete the password and leave only a newline (return/enter key)
Write and save the file
(Note that this next file does not yet exist – vi will create it)
vi remote_hosts.cfg
Type in your BOINCTasks PC IP address (127.0.0.1 for localhost) and the newline
Write and save the file
(Now go back to root and restart the boinc daemon)
exit
service boinc-client restart
service boinc-client status
(Now we need to add a port to firewalld so that the BOINCTasks can communicate with the boinc client)
(This is not applicable to older distros)
If your firewall is configured to allow all traffiic on localhost 127.0.0.1 this is not required.
firewall-cmd --permanent --zone=public --add-port=31416/tcp
firewall-cmd --reload
(Now your BOINCTasks should be able to connect to the computer’s IP)
To attach to SETI@Home do:
Get your account key:
boinccmd --lookup_account http://setiathome.berkeley.edu email_address password
su - boinc
boinccmd --project_attach http://setiathome.berkeley.edu account_key
boinccmd --get_state
Adjust resource limits and restart. vi the following file and adjust the numbers (example below)
vi global_prefs.xml
example of global_prefs.xml:
Restart the boinc daemon, you are done:
exit
service boinc restart
Check the status - switch to boinc account.
su - boinc
su - boinc
boinccmd --get_project_status
======== Projects ========
1) -----------
name: SETI@home
master URL: http://setiathome.berkeley.edu/
user_name: Supratim Sanyal
team_name: The Knights Who Say Ni!
resource share: 100.000000
user_total_credit: 7649132.533274
user_expavg_credit: 4777.286713
host_total_credit: 0.000000
host_expavg_credit: 0.000000
nrpc_failures: 0
master_fetch_failures: 0
master fetch pending: no
scheduler RPC pending: no
trickle upload pending: no
attached via Account Manager: no
ended: no
suspended via GUI: no
don't request more work: no
disk usage: 0.000000
last RPC: Mon Sep 26 17:39:52 2016
project files downloaded: 0.000000
GUI URL:
name: Message boards
description: Correspond with other users on the SETI@home message boards
URL: http://setiathome.berkeley.edu/forum_index.php
GUI URL:
name: Help
description: Ask questions and report problems
URL: http://setiathome.berkeley.edu/forum_help_desk.php
GUI URL:
name: Account
description: View your account information
URL: http://setiathome.berkeley.edu/home.php
GUI URL:
name: Preferences
description: View and modify your computing preferences
URL: http://setiathome.berkeley.edu/prefs.php?subset=global
GUI URL:
name: Tasks
description: View your recent tasks
URL: http://setiathome.berkeley.edu/results.php?userid=8104231
GUI URL:
name: Computers
description: View a list of the computers on which you are running SETI@Home
URL: http://setiathome.berkeley.edu/hosts_user.php?userid=8104231
GUI URL:
name: Team
description: View information about your team: The Knights Who Say Ni!
URL: http://setiathome.berkeley.edu/team_display.php?teamid=30195
GUI URL:
name: Donate
description: Donate to SETI@home
URL: http://setiathome.berkeley.edu/sah_donate.php
jobs succeeded: 0
jobs failed: 0
elapsed time: 0.000000
cross-project ID: 1d3ecb3f16a31376b937493d3feb0af1