13867
Comment: Link to Reed's page
|
13918
Added table of contents macro (it _had_ to be existing), link to Alioth
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
On this page: * [#Introduction Introduction] * [#Installation Installation] * [#Troubleshooting Troubleshooting] * [#DevInfos Information for developers] On sub pages: |
[[TableOfContents]] A separate page was created for |
Line 14: | Line 11: |
A detailed introduction to [http://boinc.berkeley.edu/ BOINC] itself is available on the Wiki pages of [http://boinc-doc.net/boinc-wiki/index.php?title=BOINC_FAQ:_Introduction_To_BOINC boinc-doc.net] and [http://en.wikipedia.org/wiki/BOINC en.wikipedia.org]. |
This page accompanies an ["Alioth"] [http://alioth.debian.org/projects/pkg-boinc/ project of the same name] on the creation of respective ["DebianPackage" packages]. A detailed introduction to [http://boinc.berkeley.edu/ BOINC] itself is available on the [Wiki] pages of [http://boinc-doc.net/boinc-wiki/index.php?title=BOINC_FAQ:_Introduction_To_BOINC boinc-doc.net] and [http://en.wikipedia.org/wiki/BOINC en.wikipedia.org]. |
Line 18: | Line 15: |
The main crisicism of the BOINC project is that it would be difficult to install. Well, to install packages in Debian is not difficult and the motivation to create packages for this worthwhile cause requires no further explaination, except maybe the following special hint. Debian is special for its support of many different architectures, which is only sustainable because of an automated compilation of novel packages. Thus, the provision of BOINC on Debian significantly contributes to the acceptance of the project in all these non-mainstream architectures. Furthermore, the frequently distributed Live CDs of Debian may bring functional BOINC installations to the masses. A friendly parallel effort to create Debian packages for BOINC we found [http://interreality.org/~reed/sw/boinc/ here]. | The main crisicism of the BOINC project is that it would be difficult to install. Well, to install packages in ["Debian"] is not difficult and the motivation to create packages for this worthwhile cause requires no further explanation, except maybe the following special hint. Debian is special for its support of many different architectures, which is only sustainable because of an automated compilation of novel packages. Thus, the provision of BOINC on Debian significantly contributes to the acceptance of the project in all these non-mainstream architectures. Furthermore, the frequently distributed ["LiveCD"]s of Debian may bring functional BOINC installations to the masses. A friendly parallel effort to create Debian packages for BOINC we found [http://interreality.org/~reed/sw/boinc/ here]. |
BOINC - Berkeley Open Infrastructure for Network Computing
?TableOfContents
A separate page was created for
- BOINC/ClientBenchmarks and Optimisation
?Anchor(Introduction)
Introduction
This page accompanies an ["Alioth"] [http://alioth.debian.org/projects/pkg-boinc/ project of the same name] on the creation of respective ["DebianPackage" packages]. A detailed introduction to [http://boinc.berkeley.edu/ BOINC] itself is available on the [Wiki] pages of [http://boinc-doc.net/boinc-wiki/index.php?title=BOINC_FAQ:_Introduction_To_BOINC boinc-doc.net] and [http://en.wikipedia.org/wiki/BOINC en.wikipedia.org]. In short, BOINC provides an infrastructure for distributed computing that is currently applied for various scientific problems. Hence, everybody can do something beneficial to the world at large while one's computer is not in use.
The main crisicism of the BOINC project is that it would be difficult to install. Well, to install packages in ["Debian"] is not difficult and the motivation to create packages for this worthwhile cause requires no further explanation, except maybe the following special hint. Debian is special for its support of many different architectures, which is only sustainable because of an automated compilation of novel packages. Thus, the provision of BOINC on Debian significantly contributes to the acceptance of the project in all these non-mainstream architectures. Furthermore, the frequently distributed ["LiveCD"]s of Debian may bring functional BOINC installations to the masses. A friendly parallel effort to create Debian packages for BOINC we found [http://interreality.org/~reed/sw/boinc/ here].
Technical overview
From the user's perspective, BOINC has three parts:
- The server that the data flow to which, after registration to the project(s), is no longer of interest.
The BOINC core client that is commonly wrapped by the BOINC Manager (boincmgr) and the only program that is actually started by the user.
The project specific application (e.g. setiathome) that is started by the BOINC core client.
The speed of the processor is measured by the BOINC core client. One gets the more credits, the faster the BOINC core client says the individual machine is. Hence, it makes perfect sense to have a very much optimized binary of the BOINC core client, if one is interested in the stats. However, the project specific application that does the real work, does not go any faster from that. And this is where the real interest is in. Hence, the ultimate goal is to have packages for the applications, too. Some are only distributed as binaries, though, which renders this process difficult.
?Anchor(Installation)
Installation
Installation of binary packages
If you are running DebianUnstable you should add the following lines to your /etc/apt/sources.list file:
# BOINC packages for Debian "sid" (unstable) deb http://pkg-boinc.alioth.debian.org/debian unstable main non-free deb-src http://pkg-boinc.alioth.debian.org/debian unstable main non-free
For DebianTesting use these lines for your /etc/apt/sources.list file:
# BOINC packages for Debian "etch" (testing) deb http://pkg-boinc.alioth.debian.org/debian testing main deb-src http://pkg-boinc.alioth.debian.org/debian testing main
And for DebianSarge use these lines for your /etc/apt/sources.list file:
# BOINC packages for Debian 3.1 "sarge" (stable) deb http://pkg-boinc.alioth.debian.org/debian sarge main deb-src http://pkg-boinc.alioth.debian.org/debian sarge main
We are also providing packages for the Debian derivative [http://www.ubuntu.com/ Ubuntu]. Here are the corresponding lines for your /etc/apt/sources.list file:
# BOINC packages for Ubuntu 5.10 "Breezy Badger" deb http://pkg-boinc.alioth.debian.org/ubuntu breezy universe deb-src http://pkg-boinc.alioth.debian.org/ubuntu breezy universe
Now update the package index files and install the BOINC core client and the BOINC Manager. Unfortunately the latter is not available for DebianSarge because of a missing build dependency (wxWidgets 2.6).
apt-get update apt-get install boinc-client boinc-manager
Finally, run the graphical user interface boincmgr and follow the instructions to attach a new project to your BOINC core client. A non-graphical alternative to boincmgr is the boinc_cmd program, which is included in the boinc-client package.
Installation from source
To install the BOINC packages from source one of the deb-src lines from the last section must be present in your /etc/apt/sources.list file. Also make sure that you have the build-essential and fakeroot packages installed on your system.
Prepare a source directory and download the BOINC source package and it's build dependencies:
mkdir -p ~/src/boinc cd !$ apt-get build-dep boinc apt-get source boinc
Change to the BOINC directory and build the sources. Before running dpkg-buildpackage you can apply patches to the BOINC source or set compiler flags to optimize the BOINC core client (see also: [#Optimizing Optimizing the core client] and ?/ClientBenchmarks).
cd boinc-X.Y.Z/ dpkg-buildpackage -rfakeroot -us -uc
After dpkg-buildpackage successfully finishes the build you can install your custom built packages:
cd ~/src/boinc dpkg -i boinc-client_X.Y.Z-R_ARCH.deb boinc-manager_X.Y.Z-R_ARCH.deb
If dpkg-buildpackage fails to build the BOINC packages this probably indicates a bug in our sources and it is worth reporting it to the pkg-boinc-devel mailing list pkg-boinc-devel@lists.alioth.debian.org.
Information on how to change compiler settings to optimise the client is given at the BOINC/ClientBenchmarks page.
?Anchor(Troubleshooting)
Troubleshooting
Bug tracking
Everything works fine but some submissions get evaluated as erroneous
If this is fewer than 10 in 100 times then this may be some physiological behaviour. The submitted results are not all 100% identical when run on different machines.
Where to find status reports on clients
The boinc-client installed by the Debian package does not perform the actual computation. That is performed by the binary downloaded dynamically by that client. The web site of the project features entries for each result which may be indicative of one problem or the other.
E.g. for Einstein@Home to see the interesting graphics the X display requires to be accessible. When the client is started as a different user than the one running the X server, a very likely szenario, then no window can be opened by the boinc-client. The error is sadly not forwarded properly to the calling application (like boincmgr) but appears in the results entry ([http://einstein.phys.uwm.edu/result.php?resultid=11933009 see here]). An 'xhost +' allowed the window to open.
Command Line Only
Successfully running BOINC from the command line may take a little work. The package installs boinc_client as a daemon service running under user boinc. When working from the command line only, this means using boinc_cmd to communicate with the boinc_client service.
boinc_cmd can be a little frustration to work with, the man page needs a volunteer to step up and the feedback from the command is minimalistic. By default, the output from boinc_client is piped to log files in /var/lib/boinc-client/ (stdoutdae.txt and stderrdae.txt). These will need to be consulted when troubleshooting.
The first command you should use should be
boinc_cmd --get_state
Why not try it! When it works, you'll see lots of information about the projects you are (or are not) running but it's likely not to work just yet.
Authorization
The first stumbling block is that (for security reasons) boinc_cmd should not be authorized to connect to the daemon initially. boinc_client will have invented a random password (to protect the connection to the boinc_client daemon and is nothing at all to do with project passwords) and put it into /var/lib/boinc-client/gui_rpc_auth.cfg. You'll probably want to edit this file so that it contains the password you want to use.
boinc_client will need to be restarted for this change to take effect. This can be done thus:
/etc/init.d/boinc-client restart
Now try
boinc_cmd --host localhost --passwd <YOUR PASSWORD> --get_state
Hopefully it should work now.
Quick Note About Switch Order
boinc_cmd seems to be pretty sensitive to the order of the switches on the command line. So,
boinc_cmd --host localhost --passwd <YOUR PASSWORD> --get_state
may work but
boinc_cmd --get_state --host localhost --passwd <YOUR PASSWORD>
may not.
Signing Up
When using the command line, you'll need to sign up using a form on the project website. In return, you will receive an email containing important information looking something like:
Welcome to SETI@home. This email confirms your account with SETI@home: Project URL: http://setiathome.berkeley.edu Account Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx User name: Your User Name E-mail: email@example.com For further information and assistance with SETI@home go to http://setiathome.berkeley.edu
You now need to ask boinc_client to attach each project you want to run. Use
boinc_cmd --host localhost --passwd <YOUR PASSWORD> --project_attach http://setiathome.berkeley.edu xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
where xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx is the account key contained in the email. To check that this has been successful, use:
boinc_cmd --host localhost --passwd <YOUR PASSWORD> --get_state
You should now see your projects listed under Projects, a little like
... ======== Projects ======== 1) ----------- name: SETI@home master URL: http://setiathome.berkeley.edu/ ...
and a lot of other information as well.
If this doesn't work for you, start by consulting the logs.
?Anchor(DevInfos)
Information for developers
Using the Subversion repository
Development is coordinated through a [http://svn.debian.org/wsvn/pkg-boinc Subversion repository]. It follows a brief HOWTO for working with this repository. For a detailed introduction in Subversion have a look at the [http://svnbook.red-bean.com/ Version Control with Subversion] book.
Download the files from the the repository. Substitute smoe-guest in the URL with your userid:
svn co svn+ssh://smoe-guest@svn.debian.org/svn/pkg-boinc
Now, files can be edited and subsequently be submitted (checked in) back to the repository:
svn ci
To get the latest version again, run update without the reqirement of specifying the URL again, which is stored in local files:
svn up
The program [http://packages.debian.org/unstable/devel/svn-buildpackage svn-buildpackage] is nice for creating Debian packages directly from a Subversion working directory. Before building packages you need a BOINC .orig.tar.gz file, see [http://svn.debian.org/wsvn/pkg-boinc/trunk/boinc/debian/README.Debian-source?op=file README.Debian-source]. Once you obtained a source tarball run
svn-buildpackage -rfakeroot
in the directory trunk/boinc/ and subsequently inspect the file trunk/boinc/.svn/deb-layout. That file defines origDir, the directory where the .orig.tar.gz files are stored. Once this variable is adjusted another run of svn-buildpackage -rfakeroot should build BOINC source and binary packages.
For remaining questions send an email to our [http://lists.alioth.debian.org/mailman/listinfo/pkg-boinc-devel mailing list].
?Anchor(TODO)
To-do list
Things that need to be done before uploading to DebianUnstable:
Write expressive long descriptions for boinc-manager and boinc-dev.
Checks against http://ftp-master.debian.org/REJECT-FAQ.html
OpenSSL
Not applicable - BOINC is LGPL and not GPL
CDBS
Not applicable
PHP
Not applicable
License
Transition
fine (Steffen)
Experimental library
fine (Frank) - wxWidgets is in sid
Hijack
fine
Package split
fine (Frank)
FTBFSIASW
fine
Copyright
fine (Frank)
License II
fine (Frank) - we have copies of every license in debian/copright
Non-main
fine (Steffen)
Package Content
fine (Steffen)
Policy Violation
should be fine - if not lintian/linda will complain
Contents of orig.tar.gz
fine (Frank)
Lintian
fine
rpath
fine (Frank)
Package name
fine
Common license
fine (Frank)
- General major TODOs:
Write expressive long descriptions for boinc-server.
Implement a working solution for boinc-client and boinc-app-* packages.
Use test/test_sanity.py to check runtime dependencies of the boinc-server package.
Have a look at: https://uimon.cern.ch/twiki/bin/view/LHCAtHome/BOINCserverRPM - Can we adopt some ideas for our boinc-server package?
- General minor TODOs:
Explain in boinc-client's manpage or README how to restrict GUI RPC access by changing the permission of the gui_rpc_auth.cfg file.
- Revise all manpages.
- Thoughts for the Wiki
- Explain how to set up a project
- Create more sub pages for
- Trouble shooting
- Things that need to be done before releasing the next upstream release:
Remove 01_amd64-gcc4-fixes.dpatch in 5.3.* or 5.4.*, since it was applied upstream in their MAIN branch.