Ellinikonblue.com Weblog

夢は夢のまま終わらせない…

Posted on Mar 15, 2014 at 18:07

ついに GIGABYTE GB-BXCE-2955 で NAS4Free が動くまで(完結編)

 前回までで GIGABYTE GB-BXCE-2955 で、 Realtek 8111G を認識して NAS4Free を起動させるカーネルをコンパイルするための準備は 完了しました。  では、いよいよコンパイルです。今回も作業はすべて root ユーザーで行いました。
 再度、 make.sh を起動します。
# cd /usr/local/nas4free
# svn/build/make.sh
 make.sh を起動して最初のメニューで 「 2 - Compile NAS4FREE from Scratch. 」を選び、 次のメニューで今度は「 3 - Build/Install the Kernel. 」を選びます。

 すると「 NAS4Free - Build/Install Kernel 」というダイアログ(下図)が表示されますので、 prebuild と build を選択して OK を選びます。
Image:20140312NAS4FreeCompile-0.jpg
 次に表示される「 NAS4Free - Kernel Patches 」はデフォルトのまま、 OK を選ぶと、コンパイルがスタートします。
Image:20140312NAS4FreeCompile-1.jpg
 あとは待つばかり…

 コンパイルが終了してから make.sh を終了させると /usr/local/nas4free/work 以下に待望の kernel.gz が!! (T-T)

 これを NAS4Free を仕込んだ USB メモリーの boot/kernel ディレクトリ以下( NAS4Free が起動したときの /cf/boot/kernel ディレクトリ以下)の kernel.gz と入れ替えます。
 すでにうちには FreeBSD をインストールした 東芝 dynabook UX がありましたので、 これに NAS4Free を仕込んだ USB メモリーを接続し マウントして置き換えました。

 そして GB-BXCE-2955 に 作業の終わった USB メモリーを接続して起動…感動です。 ちゃんとネットワークインターフェイスを認識して起動しました! ついに…ついにやりました!! p(T-T)q

 長かった。。。ここまでの道のり。。。
 と言うことで、やっと我が家で元気に稼働を始めました > GIGABYTE GB-BXCE-2955
Image:20140312NAS4FreeCompile-2.jpg
Ellinikonblue.com Weblog 「 ついに GIGABYTE GB-BXCE-2955 で NAS4Free が動くまで(準備編)」

Posted on Mar 14, 2014 at 18:43

ついに GIGABYTE GB-BXCE-2955 で NAS4Free が動くまで(準備編)

 東芝 dynabook UX に インストールした x86 版の FreeBSD 9.2 で コンパイルした 9-STABLE の x64(amd64) 向け実行ファイルでは、 GIGABYTE GB-BXCE-2955 で うまく動かなかったもので、最後の手段、NAS4Free の コンパイルに挑むことにしました。  そもそもにして 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 が動作する感動の最終回です (^^;;;>
Posted on Mar 12, 2014 at 20:50

動かないカーネルモジュール…そして最後はカーネルパニック orz

 何とかこうにか 東芝 dynabook UX に インストールした x86 版の FreeBSD 9.2 で、 9-STABLE のコンパイルを終わらせたものの、 実際の実行ファイルの取り出し方がわからず、またすったもんだして何とか以下のようにして /usr/amd64 以下にカーネルの実行ファイルを生成することに成功しました。
# make DESTDIR=/usr/amd64 KERNCONF=GENERIC TARGET_ARCH=amd64 installkernel
 このディレクトリ以下をまさぐると目的の if_re.ko もできていて、 これを gzip で圧縮して、NAS4Free を 書き込んだ USB メモリーに転送。
 そして、/cf/boot/loader.conf に
if_re_load="YES"
の1行を追加して早速起動してみました。。。が、 モジュールはロードしているようなんですが、結局、インターフェイスは認識せず… orz

 ん?ちょっと待てよ。
 そもそもにしてカーネルのコンフィグレーションファイルには
device re
 なんて1行があるんだから、ひょっとしてカーネルにドライバが組み込まれているんでは… と言うひらめきを得て、今度はコンパイルしたカーネルそのものを NAS4Free を 書き込んだ USB メモリーに転送。。。そして、起動!今度こそ…今度こそ…



Kernel Panic (T-T)

 だめだ o...rz
 そもそもこれちゃんと x64 版のコードはいてるのか? それどうやって確かめたらいいんや…もう無理。泣きそう (T-T)

 いや、めげん!まだめげん!!
 こうなったら毒を食らえば皿まで… NAS4Free の ソース引っ張ってきてコンパイルしてやる!!

 えぇ、もう首くらいまで深みにはまっている自覚があります (T-T)

Ellinikonblue.com Weblog
「 FreeBSD 9-STABLE コンパイル環境構築までの長い道のり」
「 FreeBSD 9-STABLE のコンパイルにチャレンジ」
Posted on Mar 11, 2014 at 20:57

FreeBSD 9-STABLE のコンパイルにチャレンジ

 なんとしても GIGABYTE GB-BXCE-2955NAS4Free を動かすため、 東芝 dynabook UX に x86 版の FreeBSD をインストールしました。

 私がやったときにもすったもんだはありましたが、 32bit モードで動く x86 版であれば、さほど労せずインストールできると思います (ので、インストール話は省略 m(_ _)m)。
 インストール時に気をつけることは、 インストール CD にソースコードが含まれていますが、これをインストールする必要はないということ。 そもそもコンパイルするのは 9-STABLE で現状の最新コードをコンパイルするため、 インストールイメージにあるソースコードには目的のリポジトリの情報も含まれていないためです。

 最新のコードを引っ張ってくるため、まず subversion をインストールします。
 難しいことはしません。以下のようにパッケージをインストールします。
(すべて root ユーザーで作業しました)
# pkg_add -r subversion
 次に 9-STBALE の最新のコードを /usr/src 以下にチェックアウトします。
# svn checkout svn://svn.freebsd.org/base/stable/9 /usr/src
 ここまで来れば、目的は if_re.ko が欲しいだけなので、 buildworld → buildkernel すればいいはずなんですが、 今、動いているのは x86 版の FreeBSD
 この環境で x64(amd64) のカーネルを作るにはどうするんだ…と調べると、 64bit mode の kernel の作り方 なるドキュメント発見。 これに習って…
# cd /usr/src
# rm -rf /usr/obj/*
# make cleandir ; make cleandir
# make TARGET_ARCH=amd64 buildworld
# make KERNCONF=GENERIC TARGET_ARCH=amd64 buildkernel
で、何とかコンパイル終了。 ちなみに Atom N280 では buildworld に半日以上かかりましたけど。。。 orz

 さてと…オブジェクトファイルしかないが、 これどうやって実行ファイルにするんだ? (_ _;>
 当然、x86 の環境でコンパイルした x64 のカーネルを installkernel とかやったら OS 飛ぶよね。。。 それぐらいはさすがにわかります (^^;>

 すみません。結論を先に行うと、この方法で作成したモジュールもカーネルも動きませんでした。 その顛末も含めて、もうちょっと続きます。おつきあいください m(_ _)m
Posted on Mar 06, 2014 at 19:38

FreeBSD 9-STABLE コンパイル環境構築までの長い道のり

 せっかく購入した GIGABYTE GB-BXCE-2955NAS4Free (9.2.0.1.943) を起動しても、 ネットワークインターフェイス (Realtek 8111G) を 認識してくれないので、FreeBSD 9-STABLE の 最新のコードをコンパイルしてモジュールを作成することを目指すことに決めました。

 えぇ、膝下くらいまで深みにはまっている感覚はあります (_ _;>  と言うことで、これまでちょっとした作業用に Ubuntu を入れていた 東芝 dynabook UXFreeBSD 9.2 をインストールを始めました。

 まずは取得した ISO イメージを CD に焼いて、 DVD ドライブを USB で接続して起動!…あれ?インストーラーが立ち上がらない???
 こんなところからか… orz

 クールなコンソール画面にずらずら表示されるエラー情報の肝はここでした。
「 Mounting from ufs:/dev/CD9660/FREEBSD_INSTALL failed with error 19 」
なんだこりゃ? (> <)

 Google さんに聞いても明快な答えが返ってこない (難しい英語は読めない)のですが、何となく「接続しているポートが悪い?」と理解して、 USB ポートをつなぎ替えたら立ち上がりました。
 まずは第一関門通過! (^^)/

 しかし、次の関門はすぐ待ち構えていました。インストーラーが始まらない。。。なぜ!?
 どうもこの CPU では動作しないと言うようなメッセージが表示されているような… Atom とはいえ、Intel 製ですぜ… x64 のバイナリで動かないわけが…は!(゜Д゜)

 そうです。
 今時の Atom はすべて 64bit 対応ですが dynabook UX が搭載する N280 は第一世代の Diamondville でかつ 64bit に対応しない数少ない Atom だったのです o...rz

 x86 版の FreeBSD をインストールして、 x64(amd64) のバイナリを作らないといけないのか…これは険しい道がさらに険しくなりました (T-T)

 しかし、x86 版 FreeBSD 9.2 のインストールは、 全編 CUI での作業になりますが、特に難しいところはありませんでした。 無線 LAN の設定って CUI でどうすんだろう?と戦々恐々としていましたが、 これもインストーラーがインターフェイスを認識するといくつかの設定値を聞いてくるので、 それを正しく設定すれば、インストール終了後、すぐに使えるようになりました。

 で、dynabook UXFreeBSD 9.2 が無事起動 (^O^)
 さぁ 9-STABLE のコードを引っ張ってきて、 x86 の Atom N280 で x64(amd64) の kernel を構築するぞ!…ってまだまだ先は長そうだ orz
Posted on Mar 05, 2014 at 20:20

Ubuntu 14.04 LTS (Trusty Tahr) リリース間近か…

「 Ubuntu 14.04 LTS ベータ版登場、 GNOME 3.10 に対応」マイナビニュース より)

 そうか、今年は Ubuntu の LTS(Long Term Support) がリリースされる年か…

 そうか…よし!覚悟を決めた!!
 東芝 dynabook UXFreeBSD インストールしてくれる!!!

 今、Ubuntu 12.04 LTS をインストールして、 ときどき使っている dynabook UX に、 常時必要なデータは保存していませんし、 先般、NAS4Free を動作させるために購入した GIGABYTE GB-BXCE-2955 に搭載されている ネットワークインターフェイス Realtek 8111G を認識させるために、 FreeBSDdynabook UX に インストールして、最新のソースコードをビルドできる環境を構築してやる。  そして、8111G 用の最新モジュールをコンパイルするという目的が達成できたあとは、 そのまま FreeBSD 環境としておいておくのもよし、 もうすぐリリースされる Ubuntu 14.04 LTS を インストールし直すもよし。。。

 よし決めた!やってやる!!やってやるぞ!!! (`Д´)/
# なんか深みにはまり始めている気は何となくしなくは… (_ _;>
Posted on Feb 16, 2014 at 22:04

NAS4Free でグループとユーザーを作成する

 うちの デル Inspiron HD ( AMD Athlon II X2 P340 /DDR2 2GB メモリー搭載)に セットアップした NAS4Free ですが、 なにせ環境がしょぼいので ZFS をごりごり動かして…なんて運用にはかなり不安がありますが、 ひとまず、一人っ子の MacBook Air のおもり (^^; として、 Time Machine サーバー化してみることにしました。
Image:20101229DELLInspironZinoHD.jpg
 順序としては以下のようになります。
  1. 認証用のグループおよびユーザーの作成
  2. ディスクの追加
  3. AFP(Apple Filing Protocol) の有効化と共有の設定
 これら NAS4Free 側の設定が終わると、 あとは端末 (MacBook Air) 側を設定すれば完了です。

 それでは、まず、 NAS4Free で 認証用のグループとユーザーを作成します。

 NAS4Free の管理画面で、 「アクセス」メニューの「ユーザーとグループ」を選び、 まずは「グループ」タブに切り替えます。
Image:20140211NAS4FreeGroupAdd-0.jpg
 ユーザーを追加するだけであれば、わざわざグループを作成する必要はないのですが、 うちでは Linux も使っていて、 FreeBSD 系と Linux では 規定で定義されるグループとユーザーが違うので、ある程度整合性をあわすために グループも作成しておきました。

 上図の画面でユーザー定義グループの欄で「+」のアイコンをクックすると、 グループ追加画面に遷移します。
Image:20140211NAS4FreeGroupAdd-1.jpg
 入力する項目はグループ名と ID 、その説明だけで必須項目は前者二つです。
 Linux との整合性を確保することが目的なので、 当方ではグループ名は「 users 」とし、その ID は 100 として追加しました。

 次にユーザーを作ります。
 同じく管理画面から「アクセス」メニューの「ユーザーとグループ」を選び、 まずは「ユーザー」タブに切り替え、同じく「+」のアイコンをクリックします。
Image:20140211NAS4FreeUserAdd-0.jpg
 ユーザー追加時の必須項目は「ユーザー名」「フルネーム」「パスワード」「ユーザー ID 」 「シェル」と「プライマリグループ」で、 適宜設定します。プライマリグループは先ほど作成したユーザー定義グループを割り当てておくといいでしょう。
Image:20140211NAS4FreeUserAdd-1.jpg
 ちなみに当方ではすでに運用している Linux サーバーでのアカウントに合わせて、 おのおのの値を設定しています。

 以上でユーザーとグループの設定は終了です。
 次回は Time Machine で使うディスクの追加を行います。
Posted on Feb 11, 2014 at 10:36

NAS4Free には VirtualBox + phpVirtualBox があるじゃないか!

環境さんぷる 「 NAS4Free 9.1.0.1 で phpVirtualBox と VirtualBox 4.2 系 を使う。」

 話の発端は、たまたま読んだ 9.2.0 リリース時の FreeNAS の記事に 「 Linux Jail 」という初見の言葉を見たことでした。

 私の頭の中では jail とは、 主に FreeBSD で使われる仮想化機構となっていて、 Linux にも Linux-VServer など類似した仮想化技術はありますが、 そもそも FreeBSD がベースの FreeNAS で「 Linux jail 」ってどういうこと? 何それ??となったわけです。

 そういう訳でよくよく調べてみると、 FreeNAS は jail 環境で動作する Linux ディストリビューションを組み込むことができるのです。

 今、ストレージサーバーと仮想化ハイパーバイザーで 自宅環境を集約することを考えているので、ぜーんぶストレージサーバーに集約できるのは、 ちょっと魅力的だなと思ったわけです。

 NAS4Free でも同じことはできないのか? と思って調べてみたのですが、これが同じ FreeBSD を ベースにしていながらできません orz
 しかし、 NAS4Free にも VirtualBox とこれを GUI で管理するためのフロントエンド phpVirtualBox を セットで拡張 (EXTENTION) として組み込むことができるようで、 そこで見つけたのが上記の記事。

 これはちょっと魅力的なソリューションです。
 ただ過去、 KVM で集約した環境を構築したことがあるのですが、 いざ運用してみるとあまりにも煩雑で結局、単純な構成に戻した経緯があります。
 こういうものもあると言うことを記憶した上で、 ちょっと真剣に我が家のバックエンド環境の将来構想を整理した方が良さそうです。

「 FreeNAS 9.2.0 登場」マイナビニュース より)
Posted on Feb 08, 2014 at 18:38

NAS4Free v9.2.0.1.943 にアップグレード

 試験的に動かし始めた NAS4Free を インストールしたサーバーですが、 使い始めてちょっとすると 9.2.0.1 がリリースされ、 「システム」メニューの「ファームウェア」を選択すると、 オンラインバージョンチェックの欄に最新バージョンが表示されるようになりました。
Image:20140206NAS4FreeUpgrade-0.jpg
 ひょっとすると市販の NAS 製品のように簡単バージョンアップができるのか? やるならまだほとんど何も設定していない今のうちだ! (^^;A と判断し、実行に踏み切りました。

 実際、実行してみると実に簡単 (^^)b
「ファームウェアアップロードを許可」なんてボタンがあるのでこれを押せば一発! 。。。なんてそこまで簡単ではありません (^^;A

 オンラインバージョンチェックの欄に表示されている最新リリース版のリンクをクリックすると、 NAS4Free のダウンロードページが開きますので、 ここから該当ファイルを(ブラウザを動かしているローカルの PC に)ダウンロードします。
 それから「ファームウェアアップロードを許可」ボタンを押すと、 ファームウェアイメージファイルを指定できるようになりますので 「参照」ボタンを押して、先ほどダウンロードしたイメージファイルを指定します。
 そして、「ファームウェアアップグレード」のボタンを押します。あとはじっと待つだけ…
Image:20140206NAS4FreeUpgrade-1.jpg
 NAS4Free の Embedded 版のイメージファイル (9.1.0.1.847) は、 拡張子が .iso のはずなのに .gzip で圧縮されていたりしましたが、 9.2.0.1.943 のイメージファイルは解凍などせずとも、そのままアップグレードに使えました。
 数分待つと NAS4Free を動かしている機器が 自動で再起動し、再びブラウザでアクセスしてみると無事、 アップグレードが完成していました。簡単 (^^)b

 新しい 9.2.0.1.943 はこれまで日本語化されていた文章が所々英語に戻っていたり、 うちの デル Inspiron Zino HD では ディスクを再度登録し直したりしなければなりませんでしたが、 どれもこれも大きな問題にはなりませんでした。

 アップグレードも超簡単!すてき (*^^*) > NAS4Free
Posted on Feb 05, 2014 at 00:06

NAS4Free の基本設定

 最近、いろいろなことを始めようと、 調べ物をしていると、自分で過去にやったことで ここ に 記録されていないことが結構あることを思い知りました orz
 ちょっと気になることができるとそっちへ行ってしまって、 それまでやったことをおざなりにする。 これは早々にも直した方が良さそうです。

 そういうわけで、ちょっと間が開きましたが、 自宅でセットアップした NAS4Free の 基本設定をまとめておきます。

 起動が終了すると、インストール後に設定した IP アドレスへ HTTP でアクセスできます。
 ID が「 admin 」、パスワードを「 nas4free 」とすると、 ログインできます。

 セットアップ直後にまず以下の設定を行いました。
 ログイン後、「 System 」メニューの「 General 」を選びます。

 まずは WebGUI のところの Language を Japanese にします。 こうしてから「 Save 」するとインタフェイス画面が日本語になります。
Image:20140201NAS4Free.jpg
 必要に応じて、ホスト名、ドメインを設定します。 DNS の設定などはインストール時にコンソールから設定していると、 その設定が保持されているはずです。
 あとはタイムゾーンを「 Asia/Tokyo 」に、 うちでは NTP も有効にしています。

 あと最後にセキュリティー面から root のパスワード (=ログインするときの admin のパスワード)を、 タブを「パスワード」に切り替えて変更し「保存」しておきます。

 以上で基本設定は終了です。

 さて、このセットアップした NAS4Free の ファイルサーバーでまず何をしようかと考えたのですが、 うちの MacBook Air は一人っ子 (^^; なので、 Time Machine を有効にするために Time Machine サーバー化してみることにしました。
 次回はこれに向かって、まず「ディスクの追加」「ユーザーの登録」についてまとめたいと思います。