BOINC is a framework for managing distributed computing projects. Here are short instructions to get up and running on FreeBSD.
Get up-to-date ports tree! Then install boinc-client:
cd /usr/ports/net/boinc-client make install clean
You will be offered to build optional graphical management utility called BOINC Manager.
Seven projects are natively available for FreeBSD.
Leiden Classical just works, no installation necessary. The science apps are sent by server on demand. You need to have libglut port installed.
Travelling Salesman Problem is another project that just works. No ports neccesary, project sends static binary.
Genetic Life another.
For the following four - SETI at home, Einstein at home, SIMAP (out of work often, check the homepage) and Milkyway, install the respective ports:
cd /usr/ports/astro/boinc-setiathome-enhanced make install clean
cd /usr/ports/astro/boinc-einsteinathome make install clean
cd /usr/ports/biology/boinc-simap make install clean
cd /usr/ports/astro/boinc-milkyway make install clean
Constellation have a manual installation for FreeBSD 7 and up.
World Community Grid will send Linux app to FreeBSD client. Make sure you have Linux emulation enabled and linux_base-fc4 port installed before attaching.
Most other Linux science apps runs on FreeBSD under Linux emulation. You may want to enable ALT option in the boinc-client port.
Be sure you have elf fallback sysctl set!
Alternatively, you can download Linux app, brandelf it to Linux type, write a app_info.xml file for it and place it to the right place under /var/db/boinc.
You can define three variables to alter the behaviour of the ports. Please, define them for both the client and the project ports. Best is to put them into /etc/make.conf.
If you have less than 100 MB of space in /var, set this variable to some place with more space.
Set user and group for the client to run under. Rarely needed.
You need an account in the BOINC project. The account consists of email address and password. The BOINC accounts are shared across the projects, so you only have to register once. If you use the graphical BOINC Manager, the account creation is done as part of attaching to the project (see below). If you decide to go command-line, visit create account form and register.
Add following to the /etc/rc.conf to enable BOINC client:
Then start BOINC client with
The client generates a random password on first startup and saves it to /var/db/boinc/gui_rpc_auth.cfg. You will need this password to control the client. Easiest way is to change file permissions on that file to allow you reading, and then start controlling utility from /var/db/boinc. Graphical controlling utility is called boinc_gui, start it like this:
cd /var/db/boinc boinc_gui
Command line utility is called boinc_cmd, try:
cd /var/db/boinc boinc_cmd --get_host_info
It does not ship with a man page but an equivalent is available on the project wiki.
Once you have client running, you have to instruct it to participate in a project.
Project URL for Setiathome is setiathome.berkeley.edu, for Einstein at home it's einstein.phys.uwm.edu.
Choose Attach from the menu. Enter project URL, your BOINC account email and password. If you don't have an account, it will be created for you.
First, you have to obtain a project key for your BOINC account and given project.
boinc_cmd --lookup_account <project URL> <email> <password>
Then attach the project by running:
boinc_cmd --project_attach <project URL> <account key>
Now you're running. Consider joining FreeBSD team. :)
Please mail all the problems you encounter, and also a success stories, to Pav Lucistnik <pav@FreeBSD.org>.