東芝 dynabook UX に インストールした x86 版の FreeBSD 9.2 で コンパイルした 9-STABLE の x64(amd64) 向け実行ファイルでは、 GIGABYTE GB-BXCE-2955 で うまく動かなかったもので、最後の手段、NAS4Free の コンパイルに挑むことにしました。
GIGABYTE BRIX Cereron搭載モデル GB-BXCE-2955
( 日本ギガバイト )
¥ 49,800
 そもそもにして FreeBSD の素人が、 クロスコンパイルなんてことに挑もうというのが間違いの始まり(<今頃、気づいた (_ _;> )

 いろいろ考えたのですが、 今回は MacBook Air にインストールしてある Parallels で仮想環境を作成し、 ここにちゃんと x64 版の FreeBSD をインストールして チャレンジすることにしました。
 これは NAS4Free をビルドするための make.sh を斜め読みして、どうもクロスコンパイルには対応していないような感じがしたというのも 大きな理由です。

 Parallels 上の仮想環境への FreeBSD のインストール自体は さほど難しくはないのでここでは省略します。
 ちなみに 1CPU/512MB Mem/12GB HDD くらいの環境で問題なく以下の作業は終了できます。

 仮想環境へのインストールが終わったら、まずは NAS4Free を ビルドするために必要な FreeBSD の最新のファイルを取得します。

 その前に…
 FreeBSD のコンパイル環境作成時と同様に、 subversion と、NAS4Free の ビルドするための make.sh を動かすために bash をパッケージインストールします。
# pkg_add -r subversion
# pkg_add -r bash
 次に NAS4Free の最新コードを取得します。
 まずは /usr/local 以下に「 nas4free 」という名前でディレクトリを作成して、 以下のコマンドを実行します。
# cd /usr/local/nas4free
# svn co http://svn.code.sf.net/p/nas4free/code/trunk svn
 NAS4Free のソースの取得が終わったら、 次は FreeBSD 9-STABLE のコードを取得します。
 これは先般、行ったように
# svn co svn://svn.freebsd.org/base/stable/9 /usr/src
として取得し、ひとまず /usr/src を /usr/src.9-STABLE としてリネームして保存しておきます。
# 9-STABLE のソースをコンパイルする必要はありません。

 それから再度 /usr/src ディレクトリを作成しておきます。

 ここまでの作業を正確に行っていれば、 NAS4Free をビルドするための make.sh を編集する必要はないはずです。
 make.sh を起動します。
# cd /usr/local/nas4free
# svn/build/make.sh
 make.sh を起動するとまずメニューが出てきます。
 このメニューで「 2 - Compile NAS4FREE from Scratch. 」を選びます。 するとメニューが遷移して 次のメニューで「 1 - Update FreeBSD Source Tree and Ports Collections. 」を選ぶと、 「 NAS4Free - Update Sources 」というダイアログ(下図)が出てきます。
Image:20140310NAS4FreeCompile.jpg
 ここで「 svnco 」を選択して OK すると FreeBSD 9.2 のコードの取得が始まります。
 これが終わったら、コンパイルを始めずに一度、make.sh を終了させます。

 目的は Realtek 8111G を認識させることなので、 これに該当する部分だけ、先ほど保護しておいた 9-STABLE のコードと置き換えます。
# cp /usr/src.9-STABLE/sys/pci/if_rlreg.h /usr/src/sys/pci/
# cp /usr/src.9-STABLE/sys/dev/re/if_re.c /usr/src/sys/dev/re/
 これで準備は終了です。
 次回はいよいよコンパイルして、 GIGABYTE GB-BXCE-2955Realtek 8111G が NAS4Free が動作する感動の最終回です (^^;;;>