BOINC on FreeBSD のまとめ

数ヶ月前のメモに、FreeBSDサーバー上でBOINCクライアントを動かす方法を記述しましたが、その後、数台のPCへFreeBSDをインストールした後にboincをインストールしようと作業手順を確認してみたところ、作業内容がまとまっておらず使いづらい事に気付きました。再度 FreeBSDサーバー構築直後にBoincクライアントをインストールする作業手順をまとめておく事にします。

  1. 当然、事前にports コレクションがインストールしてある必要があります。インストールされていない場合は、sysinstall を実行してインストールしておきます。
  2. boincクライアントは、root 権限でインストールされますが、その時 boinc というユーザーが自動的に追加され、boinc の権限でOS起動時にバックグランドで自動起動されるようになります。参加者はBoincマネージャから、このboinc バックグランドプログラムに対して、参加プロジェクトの指定、計算時間帯の設定設定、CPUやメモリやHDDリソースの割り当てなどを行う事になります。個人アカウントで動かす事も出来ると思いますが、FreeBSDが個人所有マシンであるなら、メンテナンスの点からデフォルトの方法で使うのが最も簡単だと思います。
  3. (この方法は既に廃止になっていますので、利用できませんが、記録のために残しています。)
    まず ports コレクションを最新にする必要があります。更新には csup コマンドを使って ports コレクションを最新にします。 初回は1時間くらいはみておく必要があります。また、サーバーをデフォルトから日本のものに書き換えるために、繰り返し利用するならマスターファイルを$HOMEにコピーして修正しする。
    # cp /usr/share/examples/cvsup/ports-supfile /root
    ports-supfile を修正

    # csup -L 2 ports-supfile
  4. ports の更新には portsnap コマンドを使用します。
    root にて、
    # portsnap fetch && portsnap extract && portsnap update
    を実行します。 portsnap の使い方に関しては、別のメモを見てください
  5. /etc/rc.conf に次の3行を書いておく。
    linux_enable=”YES”
    boinc_client_enable=”YES” # 最新バージョン用スイッチ
    boinc_enable=”YES” # 旧バージョン用スイッチ
  6. linuxエミュレーションを有効にするために、
    # /etc/rc.d/abi start
    を実行
  7.  Linux ファイルをインストール
    # pkg_add -r linux_base-f10
    f10は、おそらくFedora Core verion 10。linux_base-fc4 では動きませんでした。 
  8. boinc (旧バージョン)をインストール、ただしFreeBSD専用です。
    # pkg_add -r boinc-client
    boincクライアントの設定は出来ますが、linuxエミュレーションが含まれていないバイナリーインストールのため、この時点では計算を開始出来るプロジェクトはごく僅か。このあとでLinux対応のプロジェクトに参加するために、ビルドを行います。 
  9. ports コレクションを管理するためのコマンドをインストール
    # pkg_add -r portupgrade portmaster
  10. boinc にLinuxエミュレーションを組み込む
    # portupgrade boinc-client-6.4.5_7
    (インストールされていたバージョンが 6.4.5_7だったので。) を発行して、Boincクライアント実行に関係するパッケージを全部アップデートします。この時、boinc-client  パッケージアップデートのために「Options for boinc-client 7.0.25_5 」が表示されるので、[ ] LINUX に X を付けることでLinux用の計算も出来るようになります。 途中でパッケージがリプレースされてエラーが発生する場合は、UPDATINGを読んで対策します。今回セットアップしたサーバーでは、pkg-config とlibglut がリプレースでエラー停止しました。
    # portmaster -o devel/pkgconf devel/pkg-config で修復。
    libglut は、以下のコマンドで修復。
    # portmaster -o graphics/freeglut graphics/libglut # portmaster -r freeglut
    この作業は比較的長い時間が掛かった。特に portmaster -r はリコンパイルなので依存ファイルをビルドし直しで延々と時間が掛かることになります。 
  11. ビルドが終わると、
    # /usr/local/etc/rc.d/boinc-client start
    でBoincクライアントが走りますが、
    # /usr/local/etc/rc.d/boinc-client stop
    で一度停止させます。
  12. boinc用設定ファイルを修正。
    設定ファイルは /var/db/boinc に保存。
    remote_hosts.cfg : リモートホストからBoincをコントロールするために、Boinc クライアントGUI を使うPCのIPアドレスを書き込んでおきます。
    cc_config.xml : boincクライアントがサーバーから計算ユニットをダウンロードしたりアップロードする時のプロトコルにHTTP1.0 を使わせるための記述。Web Proxy を通して通信すると HTTP 1.1 ではサーバーとの通信がエラーになる場合がある。

    <cc_config>
      <options>
      <http_1_0>1</http_1_0>
      </options>
    </cc_config>

    gui_rpc_auth.cfg : boinc が自動的に生成するコントロールGUI のためのパスワードが書かれている。編集する必要は無い。

  13. ようやくBOINC運用開始
    # /usr/local/etc/rc.d/boinc-client start
    で、クライアントをスタートさせる。
  14. その他のパッケージもアップデートしておく
    # portupgrade -a

この後は、WindowsなどのBOINCクライアントから、FreeBSDサーバーに接続して参加するプロジェクトを追加する。Linuxエミュレーションが有効に働いているかどうかは、LHC@Homeのように、FreeBSDがプラットフォームとして対応していないプロジェクトに参加して計算出来るかどうかを確認してみればよい。

コメントを残す