FreeBSD 9.3: Linux エミュレーションインストールに失敗する

先日、サーバーを動かしていたハードウェアの i810 メインボード TX810EU が故障し、サーバーをリプレースしたのですが、故障したPCをそのままにしておくわけにもゆかず、古いパーツをかき集めてサーバーを構成することにしました。

私の持っているATマザーボードで一番高速なCPUに対応していた FIC VA-503+ というマザーボードで、以前動かしていた K6-2 450MHz が乗っていて、これをそのまま使う事にしました。今の時代に 450MHz のプロセッサーはないだろうと思うものの、サーバーの第一条件は安定動作。また、高負荷にはならないはずの用途を予定しているので、コストの掛からないハードウェアで構成することにしました。

OS は FreeBSD 9.3 をCD-ROMからインストール。FreeBSD 10.2 を直接入れたかったのですが、10.2 のCDイメージは何か変で、インストール画面まで進まないため、9.3 を使用しました。9.3 でも ATA関係のエラーが大量に出るものの、インストール画面まで進みますからね。あ〜、USBメモリからブートできるマザーボードがありがたかった。

FreeBS 9.3 自体は問題なくインストールできたので、まずは安定動作するかどうかのテスト。freebsd-update コマンドで、FreeBSD 9.3-p43 まで上げて、同時に portsnap をインストールする程度の負荷には楽々耐えるようなので、続いて Boinc を頑張って貰おうと Linux エミュレーションをインストールすることにしました。

手順は、Linux エミュレーション のメモを見ながら実施。(手順は FreeBSD 10 用ですが、9.2でも

共通のはず。)しかし、今回は

===> linux_base-c6-6.8 compat.linux.osrelease: 2.6.16 is not supported,
please use 2.6.18, BEWARE this is highly experimental.

で、Linux パッケージと Boinc が入りません!
検索してみたところ、 https://www.freebsd.org/doc/handbook/linuxemu-lbc-install.html に情報がありました。しかし、これを見ると、手順が細かく書いてあるだけでやることは、上のメモページと変わらないはずなんですが、、、

実際、手順に従ってコマンドを発行してみると実行済み。

# kldload linux
kldload: can't load linux: module already loaded or in kernel
# kldstat
Id Refs Address Size Name
 1 7 0xc0400000 128a11c kernel
 2 1 0xc4629000 4b000 linux.ko

次のコマンドで違いが発生。

# printf "compat.linux.osrelease=2.6.18\n" >> /etc/sysctl.conf
# sysctl compat.linux.osrelease=2.6.18
compat.linux.osrelease: 2.6.16 -> 2.6.18

Linux の OSバージョンがちょっと違っています。
このあとで、linux_base-c6 を入れたところ、一応入ったものの

Jul 19 23:15:14 pc32 pkg: linux_base-c6-6.8 installed
Jul 19 23:15:14 pc32 kernel: pid 898 (ldconfig), uid 0: exited on signal 4 (core dumped)

core 吐いて落ちてるじゃない!

一応、linux エミュレーションをリスタートしてみる。今度は core dump しない。

# /etc/rc.d/abi restart
Additional ABI support: linux.

その後、boinc を /usr/ports/net/boinc-client でソースからビルド。これは、ビルド済みバイナリーには Linux エミュレーションが含まれていないためです。
ビルドと言っても、make config で、Linux Emulation を入れて、make するだけですけどね。

19-Jul-2016 23:24:59 [---] Starting BOINC client version 7.2.33 for i386-pc-freebsd
19-Jul-2016 23:24:59 [---] log flags: file_xfer, sched_ops, task
19-Jul-2016 23:24:59 [---] Libraries: libcurl/7.49.1 OpenSSL/0.9.8zh zlib/1.2.8
19-Jul-2016 23:24:59 [---] Running as a daemon
19-Jul-2016 23:24:59 [---] Data directory: /var/db/boinc
19-Jul-2016 23:24:59 [---] No usable GPUs found
19-Jul-2016 23:24:59 [---] Host name: pc32
19-Jul-2016 23:24:59 [---] Processor: 1 i386 AMD-K6(tm) 3D processorAMD-K6(tm) 3D processor [] [3dnow mmx]
19-Jul-2016 23:24:59 [---] Processor features: 
19-Jul-2016 23:24:59 [---] OS: FreeBSD: 9.3-RELEASE-p43
19-Jul-2016 23:24:59 [---] Memory: 491.41 MB physical, 0 bytes virtual
19-Jul-2016 23:24:59 [---] Disk: 7.62 GB total, 5.87 GB free
19-Jul-2016 23:24:59 [---] Local time is UTC +9 hours

動きました。

以前、K6-2 で Boinc を動かしていましたが、結構計算が異常終了するプロジェクトが多くて、参加プロジェクトが限られていたのですが、計算異常になる典型的なプロジェクト Milkyway@home が動き始めました。

19-Jul-2016 23:38:54 [Milkyway@Home] Started download of milkyway_1.37_i686-pc-linux-gnu
19-Jul-2016 23:38:54 [Milkyway@Home] Started download of parameters-15-3s-ModfitConstraints2-fast.txt
19-Jul-2016 23:38:56 [Milkyway@Home] Finished download of parameters-15-3s-ModfitConstraints2-fast.txt
19-Jul-2016 23:38:56 [Milkyway@Home] Started download of stars-15.txt
19-Jul-2016 23:39:01 [Milkyway@Home] Finished download of milkyway_1.37_i686-pc-linux-gnu
19-Jul-2016 23:39:03 [Milkyway@Home] Finished download of stars-15.txt

こんな感じで、 i686-pc-linux-gnu バージョンバイナリーが動いています。

少し不思議なのは、K6-2 は 586 クラスCPUとして、FreeBSD では扱われるはずなのですが、何かうまく回避したんでしょうか 686 クラスとして動いています。

目的はCPU負荷を掛けた時の安定動作チェックなので、しばらく様子見です。Linuxエミュレーションが入らなかったのは、Linuxバージョン違いだったようです。

コメントを残す