文書の過去の版を表示しています。


FreeBSD 12とFolding@homeで新型コロナウイルス解析に参戦する

流行りに乗じて新型コロナと絡めてみたけど、単にFreeBSD 12でFolding@homeを動かそうっていうお話です。

  • FreeBSD 12.1-RELEASE-p3
  • linux_base-c7-7.7.1908_1
  • linux-foldingathome-7.5.1.1_1

Folding@homeはFreeBSD用バイナリが用意されていないものの、Linux向けのものがLinuxエミュレータ環境で動く。

portsから入れれば何も難しい事はないが、Linux関連のパッケージがガシガシ入るので、気になる人はjailなりbhyveなりに隔離環境を作ってください。

# portsnap biology/linux-foldingathome

専用ユーザーfahclientが追加されるんだけど、2020-03-29現在、ユーザーDBの更新が正しく行われず有効なユーザーとして認識されないので手動で更新する。pwコマンドでfahclientユーザーの情報が表示されればOK。

# pwd_mkdb -p /etc/master.passwd
# pw usershow -n fahclient
fahclient:*:246:246::0:0:Folding@home User:/nonexistent:/usr/sbin/nologin

fahclientユーザーが使えない状態だと、サービス起動時に「su: unknown login: fahclient」と怒られて起動できなかったりする。

Linuxエミュレータ環境有効化。

# sysrc linux_enable="YES"

/etc/fstabに以下を追加。

linprocfs       /compat/linux/proc      linprocfs       rw              0       0
linsysfs        /compat/linux/sys       linsysfs        rw              0       0
tmpfs           /compat/linux/dev/shm   tmpfs           rw,mode=1777    0       0

ここで再起動するか、自前でカーネルモジュールを読み込む&上記FS類をマウントする。

# kldload linux64
# mount /compat/linux/proc
# mount /compat/linux/sys
# mount /compat/linux/dev/shm

Folding@homeのデフォルトの作業ディレクトリは/var/db/fahclientとなっており、ここに配置した解析プログラムを実行するようになっている。

ZFS環境の場合、通常/var/db以下はexecプロパティがoffでプログラム実行が許可されていない。よってexec=onでFSを作ってしまう。所有者の変更も忘れずに行う事。

もしFS作るのが嫌なら/usr/local/etc/rc.d/fahclientをいじって作業ディレクトリの場所を変更すべし。

# zfs create -o exec=on zroot/ROOT/var/db/fahclient
# chown -R fahclient:fahclient

必要なら /usr/local/etc/fahclient/config.xml のユーザー名とチーム番号を書き換える。

  <user value="Decomo"/> <!-- Enter your user name here -->
  <team value="11743"/>         <!-- Your team number -->

Folding@homeのデーモン有効化

# sysrc fahclient_enable="YES"

Folding@homeデーモンを起動

# service fahclient start

手動で起動する場合

# /usr/local/bin/FAHClient --config=/usr/local/etc/fahclient/config.xml
  • freebsd/freebsd_12_install_foldingathome.1585412999.txt.gz
  • 最終更新: 2020-03-29 01:29
  • by Decomo