Seti@Car?

From Omnifi Wiki

Jump to: navigation, search
Quick Links
Linux-Inside.jpg
Related topics
  • Find Something
    • To Put Here

edit

Contents

WARNING

As of Nov 5, 2005, the contents on this page is both outdated and incorrect. I am in the process of documenting a more up to date boinc client and much of what you see here will become different.

Requisites

  1. ARM gcc Cross Compiler
  2. ARM g++ Cross Compiler
  3. Statically linkable module that contains object for 'gethostbyname'

The third requirement eliminates the Crosstools compiler (by Kegel) because while the project compiles, it would report:

/root/projects/boinc-4.10/client/hostinfo_network.C:62: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

This means that the code that's produced will fail to properly call the gethostbyname and the DMP1 would just sit there. Unfortunately, at the time of this writing, I do not have a G++ compiler built out for the Buildroot toolchain so I am unable to perform the actual compile at this time.

Obtaining The Source

Download a tarball from here: Seti_Boinc Nightly Tarballs and extract it to your project directory on your Linux box.

You need the version 4.xx and above because you want to be able to use the --disable-server option. Otherwise you'll build in a server and need some sort of mySql libraries--you don't need that on your DMP1!!! The older versions do not have this --disable-server option.

Building The Project

~# wget http://setiweb.ssl.berkeley.edu/sah/seti_source/nightly/seti_boinc-client-cvs-2005-11-03.tar.gz
21:47:06 (156.52 KB/s) - `seti_boinc-client-cvs-2005-11-03.tar.gz' saved [1861237/1861237]
~# tar xf seti_boinc-client-cvs-2005-11-03.tar.gz
~# cd seti_boinc
~/seti_boinc# unset CC
~/seti_boinc# export PATH=/opt/arm-uclibc/:${PATH}
~/seti_boinc# export CFLAGS="-Os -Wall --static"
~/seti_boinc# export LDFLAGS="--static"
~/seti_boinc# ./configure --host=arm --disable-server

and you wait... Substitute the location of your Buildroot toolchain directory in the export PATH statement above. I have found that the export CC option only works when you're compiling with gcc, but somewhere in the middle, the project shifts to using g++ and you're using the ix86 native version and of course it'll fail when you get to the linking step (symbols not recognized).

When you come back to the prompt, type in:

~/seti_boinc# make

and away you go! When it's done, you need to strip your file:

~/seti_boinc# cd client
~/seti_boinc/client# /opt/arm-uclibc/strip boinc_client

to get it to become a reasonable size again.

Configuration File

Create a file app_info.xml in the project directory. This file lists the applications you have compiled or downloaded. It has the following form:

<app_info>
   <app>
       <name>setiathome</name>
   </app>
   <file_info>
       <name>setiathome_4.11_arm-unknown-none</name>
       <executable/>
   </file_info>
   <app_version>
       <app_name>setiathome</app_name>
       <version_num>411</version_num>
       <file_ref>
           <file_name>setiathome_4.11_arm-unknown-none</file_name>
           <main_program/>
       </file_ref>
   </app_version>
</app_info>

When the core client runs, it requests work from the scheduling server, it will report its platform as 'anonymous', and provides a list of the applications it has. The server then sends whatever work is available for those applications.

Getting It To Run On The DMP1

So far, I haven't been able to make this work very well :(

Related Links

External Links


Lumkichi 20:34, 5 Nov 2005 (CST)

Personal tools