FreeBSD 11 on ODROID-C1(Cortex-A5/4-core/1GB)

ある程度落ち着いてきたので、ODROID-C1のベースイメージを公開します。
実際にこれと公開中のパッケージを使って、sourceforge リリース用のNAS4Freeをビルドしています。

主なハード仕様はこんな感じ:

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G141578608433

Amlogic S805 (Cortex-A5 1.5GHz 4コア/L1 32KB/L2 512KB)
1GB メモリ
ギガビットイーサネット
eMMC HS200/SDR50 MicroSD
DWC OTG USB 2.0

作成したNAS4Freeのイメージはこちらから。

https://sourceforge.net/projects/nas4free/files/NAS4Free-ARM/

ダウンロードはこちらから:

FreeBSD 11.0-CURRENT/ODROIDC1-test6:

http://www.peach.ne.jp/archives/oc1/FreeBSD-armv6-11.0-ODROIDC1-test6-r283165-20150522.img.gz

SHA256 (FreeBSD-armv6-11.0-ODROIDC1-test6-r283165-20150522.img.gz) = 56ddf91459ae8685fad588fd58118829ba8fa523d8fab303a8005de06cc96efa

ダウンロードしたらGZIP圧縮されているので解凍して8GB以上のMicroSDカード(またはeMMCモジュール)に展開してください。
ODROID-C1はUHS104(MAX 170MHz/4bit=85MB/s)にも対応しているので高速なカードがお勧めです。
もし新規購入を考えているならば、東芝EXCERIAシリーズ16GBをお勧めしておきます。
http://www.amazon.co.jp/dp/B00AIH3CUA

シリアルコンソールを持っていない人は緊急起動用の予備SDカード(8GB/Class4など)とUSBカードリーダーをODROID-C1専用に持っているといいかも。
(予備SDで起動してカードリーダに問題のあるカードを挿して調整する)

※ODROID-C1のコンソールコネクタは特殊なので本体購入時に同時購入する事をお勧めします。

使用コンフィグ:
http://www.peach.ne.jp/archives/oc1/config/ODROIDC1-test6

新カーネルのみ:
http://www.peach.ne.jp/archives/oc1/kernel/

追加ソースとパッチ:
http://www.peach.ne.jp/archives/oc1/patch/

作成済みパッケージ:(順次追加中)
http://www.peach.ne.jp/archives/oc1/ports/packages/All

初期設定:
MEM 994MB/GPU 30MB/SWAP 1GB
I/O: マルチコンソール (HDMI&USBキーボードでroot利用可)
IP アドレス: DHCP
デフォルトルータ: DHCP
DNS: DHCP
sshd: 有効 (rootログイン不可)
ntpdate: 有効 (0.freebsd.pool.ntp.org)
powerd: 有効 (1512MHz – 720MHz) OC:1608MHz
ファイアウォール: なし
portsnap: fetch & extract済み

一般ユーザ: なし
パスワード(root): なし

初期設定のため変更されたファイル:
/boot/loader.conf
/etc/fstab
/etc/rc.conf
/etc/ttys

※ デフォルトはUTC仕様なのでJSTにしたい場合は
# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
を実行するか bsdconfig で調整してください。

※ 初期ユーザは adduser か bsdconfig で作成できます。

当サイト特設パッケージ(X11なし実機ビルド)の利用方法:


まず静的リンクしたコマンドでpkg自体をインストール
# fetch http://www.peach.ne.jp/archives/oc1/pkg-static
# chmod 755 pkg-static
# ./pkg-static add http://www.peach.ne.jp/archives/oc1/ports/pkg.txz

デフォルトのパッケージを無効化
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

独自パッケージリポジトリを追加
# fetch http://www.peach.ne.jp/archives/oc1/oc1.conf
# mv oc1.conf /usr/local/etc/pkg/repos

リポジトリカタログを最新状態に更新
# pkg update

リポジトリを検索(デフォルトは正規表現の検索)
# pkg search .
リポジトリを検索(依存関係も表示)
# pkg search -d .

例: bash (+その依存パッケージ全部)をインストール
# pkg install bash

例: samba 4.1 をインストール
# pkg install samba41

例: リポジトリの全パッケージをインストール(正規表現マッチ)
# pkg install -x .

FreeBSD 11 on Raspberry Pi 2 (Cortex-A7/4-core/1GB)

Raspberry Pi 2 はじめました。

主なハード仕様はこんな感じ:
BCM2836 (Cortex-A7 900MHz 4コア/L1 32KB/L2 512KB)
1GB メモリ
100Mbps LAN
MicroSD HSモード(50MHz/4ビット=25MB/s)

例によって独自パッチにより4コアSMP動作するようになっています。
一部パッチはすでにHEADにコミットされたので、残りもそのうち取り込まれると思う。

http://svnweb.freebsd.org/base?view=revision&revision=282403

追記:
SMPパッチもコミットされました!
http://svnweb.freebsd.org/base?view=revision&revision=282610
ソースから構築したい人はこのリビジョン以降をどうぞ。

もちろんこれを使ったNAS4Freeもリリースしてあります。

https://sourceforge.net/projects/nas4free/files/NAS4Free-ARM/

リリースバイナリは基本的にNAS4Free-ARMにアップロードされます。
作業途中のベータはこのブログにリンクを作成するかもしれない。(未定)

ダウンロードはこちらから:

FreeBSD 11.0-CURRENT/RPI2-test3:
http://www.peach.ne.jp/archives/rpi/old/FreeBSD-armv6-11.0-RPI2-test3-r282360-20150504.img.gz

FreeBSD 11.0-CURRENT/RPI2-test4:
http://www.peach.ne.jp/archives/rpi/FreeBSD-armv6-11.0-RPI2-test4-r283165-20150522.img.gz

SHA256 (FreeBSD-armv6-11.0-RPI2-test4-r283165-20150522.img.gz) = 55ccf048b35f86e4e415b29e0331ed44444e4eecffde1b083b08a0aba22167ef

ダウンロードしたらGZIP圧縮されているので解凍して8GB以上のMicroSDカードに展開してください。
Raspberry Piではハード仕様により25MB/s以上は出しようがないのでどのクラスカードでもOKです。
もし新規購入を考えているならば、東芝EXCERIAシリーズ16GBをお勧めしておきます。
http://www.amazon.co.jp/dp/B00AIH3CUA

シリアルコンソールを持っていない人は緊急起動用の予備SDカード(8GB/Class4など)とUSBカードリーダーをRaspberry Pi専用に持っているといいかも。
(予備SDで起動してカードリーダに問題のあるカードを挿して調整する)

※シリアルUSB変換ケーブルは1000円もしないので、用意しておくと便利ですよ。
http://www.amazon.co.jp/dp/B00L8SP7U6
たとえばこんなやつでWinマシンと接続できます。

※追記
Win8以降はPL2303チップ搭載のケーブルは問題が起こる可能性があるとの指摘を頂きました。
Win8以降はFTDIチップ搭載のケーブルが良いとのこと。
当方では上記ケーブルを64ビット版Win7およびx64版 NAS4Free 9.3.0.2/10.1.0.2から利用しています。未確認ですがWin8にVirtualBoxをいれてそこにNAS4Freeをいれると接続できるかもしれない。
参考リンク:
http://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=M-00721

使用コンフィグ:
http://www.peach.ne.jp/archives/rpi/config/RPI2-test4

新カーネルのみ:(準備中)
http://www.peach.ne.jp/archives/rpi/kernel/

追加ソースとパッチ:(準備中)
http://www.peach.ne.jp/archives/rpi/patch/

作成済みパッケージ:(順次追加中)
http://www.peach.ne.jp/archives/rpi/ports/rpi2/packages/All

初期設定:
MEM 1008MB/GPU 16MB/SWAP 1GB
I/O: マルチコンソール (HDMI&USBキーボードでroot利用可)
IP アドレス: DHCP
デフォルトルータ: DHCP
DNS: DHCP
sshd: 有効 (rootログイン不可)
ntpdate: 有効 (0.freebsd.pool.ntp.org)
powerd: 有効 (600MHz/900MHz)
ファイアウォール: なし
portsnap: fetch & extract済み

一般ユーザ: なし
パスワード(root): なし

初期設定のため変更されたファイル:
/boot/loader.conf
/etc/fstab
/etc/rc.conf
/etc/ttys

※ デフォルトはUTC仕様なのでJSTにしたい場合は
# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
を実行するか bsdconfig で調整してください。

※ 初期ユーザは adduser か bsdconfig で作成できます。

当サイト特設パッケージ(X11なし実機ビルド)の利用方法:

まず静的リンクしたコマンドでpkg自体をインストール
# fetch http://www.peach.ne.jp/archives/rpi/ports/rpi2/pkg-static
# chmod 755 pkg-static
# ./pkg-static add http://www.peach.ne.jp/archives/rpi/ports/rpi2/pkg.txz

デフォルトのパッケージを無効化
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

独自パッケージリポジトリを追加
# fetch http://www.peach.ne.jp/archives/rpi/rpi2.conf
# mv rpi2.conf /usr/local/etc/pkg/repos

リポジトリカタログを最新状態に更新
# pkg update

リポジトリを検索(デフォルトは正規表現の検索)
# pkg search .
リポジトリを検索(依存関係も表示)
# pkg search -d .

例: bash (+その依存パッケージ全部)をインストール
# pkg install bash

例: samba 4.1 をインストール
# pkg install samba41

例: リポジトリの全パッケージをインストール(正規表現マッチ)
# pkg install -x .

ZFSのパフォーマンスが若干向上した模様

先日のUSB改良パッチに加え、イーサネットドライバも若干改良しました。
カーネル空間も2Gに拡大してZFS ARCを550MB搭載してあります。

アクセスが読み書き同時に起こっても以前のような極端な速度低下はしなくなりました。
ただ、やっぱりギガビットを駆動するにはまだCPUパワーが不足するので張り付くとどうしようもない…。

最新版はここからどうぞ。
https://sourceforge.net/projects/nas4free/files/NAS4Free-ARM/

↓Before: 旧版ZFS性能
20150321B
(クリックで拡大)

↓After: 新版ZFS性能
20150401D
(クリックで拡大)

ODROID-C1用のUSBホストドライバ作りました

正確には既存ドライバを改良なのだけど…。
この作業をする為に今更だけどUSB2.0の仕様について少し勉強しました。
おかげで書き込み速度が当方比4倍の高速化!
コンスタントに24MB/sぐらいを叩き出すぐらいの性能になりました。

一方、読み込みはあまり早くならなかった…。
おおよそ30%ぐらいはアップしたはず。これは次回作に期待といったところか。

すぐにイメージを作る予定がないので、NAS4Free用のカーネルだけ用意しました。
NAS4Freeは読み込み専用でマウントされるので、以下のような手順により更新します。
作業はコンソールメニューの 6)Shell かSSHでログインして行います。

ブログ書き込み時の最新イメージのダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-SD-9.3.0.2.1353-20150306.img.gz

改良USBドライバ搭載の新カーネルはこちらから:

http://www.peach.ne.jp/archives/nas4free/kernel/kernel-oc1-20150321

改良USBドライバのパッチファイルはこちらから:

http://www.peach.ne.jp/archives/oc1/patch/dwc_otg-20150321.patch

新カーネルへの更新手順:

1. ブートFSを書き込み用に再マウントします
    # mount -uw /cf

2. 現カーネルをバックアップします
    # cd /cf/boot/kernel
    # mv kernel kernel.bak

3. 新カーネルを /cf/boot/kernel にダウンロードします
    # fetch -o kernel http://www.peach.ne.jp/archives/nas4free/kernel/kernel-oc1-20150321

4. 上記書き込みをフラッシュして、読み込み専用で再マウントして戻します。
    # cd /
    # umount /cf
    # mount /cf

5. サーバをリブートします
    # shutdown -r now

以上でUSB読み込み16MB/sとUSB書き込み24MB/sを備えたNAS4FreeがODROID-C1で利用できるようになります。

↓UFS 100MBベンチマーク
20150319A
(クリックで拡大)

↓UFS 4000MBベンチマーク
20150319B
(クリックで拡大)

今は亡き初代ZFSストレージで使っていた予備のHDDが発掘されたので、今回ついでにZFSについてもベンチマークを取りました。
キャッシュに載らないサイズでは R:7.0MB/s、W:5.4MB/s といったところです。
もちろんキャッシュに載るサイズ(現時点でARC=280MB)は普通です。
まぁ、予想どおりに遅いですけどね。
ただ、キャッシュに載らないサイズであってもオーバークロックしたRaspberryPiのUFS並みに速いのでZFSのスナップショットなど利便性を考えると検討する価値はあると思う。

↓ZFS 100MBベンチマーク
20150321A
(クリックで拡大)

↓ZFS 1000MBベンチマーク
20150321B
(クリックで拡大)

詳細結果はここ:
Server: NAS4Free 9.3.0.2.1353(+ new kernel) ODROID-C1@1512MHz,
samba 4.1.17 standalone (Max SMB3)
Benchmark: UFS 100MB/4000MB, ZFS 100MB/1000MB(遅いので…)

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    23.000 MB/s
          Sequential Write :    23.948 MB/s
         Random Read 512KB :    21.772 MB/s
        Random Write 512KB :    23.712 MB/s
    Random Read 4KB (QD=1) :     2.853 MB/s [   696.4 IOPS]
   Random Write 4KB (QD=1) :     1.476 MB/s [   360.4 IOPS]
   Random Read 4KB (QD=32) :     2.545 MB/s [   621.4 IOPS]
  Random Write 4KB (QD=32) :     1.373 MB/s [   335.3 IOPS]

  Test : 100 MB [V: 12.8% (57.8/451.1 GB)] (x5)
  Date : 2015/03/21 11:09:56
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1 Toshiba MK5065GSX

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    16.432 MB/s
          Sequential Write :    23.959 MB/s
         Random Read 512KB :     7.816 MB/s
        Random Write 512KB :    21.243 MB/s
    Random Read 4KB (QD=1) :     0.299 MB/s [    73.1 IOPS]
   Random Write 4KB (QD=1) :     0.290 MB/s [    70.9 IOPS]
   Random Read 4KB (QD=32) :     0.306 MB/s [    74.6 IOPS]
  Random Write 4KB (QD=32) :     0.294 MB/s [    71.8 IOPS]

  Test : 4000 MB [V: 12.8% (57.9/451.1 GB)] (x9)
  Date : 2015/03/21 11:09:39
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1 Toshiba MK5065GSX

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    22.990 MB/s
          Sequential Write :    23.273 MB/s
         Random Read 512KB :    22.068 MB/s
        Random Write 512KB :    28.933 MB/s
    Random Read 4KB (QD=1) :     2.760 MB/s [   673.9 IOPS]
   Random Write 4KB (QD=1) :     1.421 MB/s [   347.0 IOPS]
   Random Read 4KB (QD=32) :     2.619 MB/s [   639.5 IOPS]
  Random Write 4KB (QD=32) :     1.413 MB/s [   344.9 IOPS]

  Test : 100 MB [S: 0.4% (2.0/449.5 GB)] (x5)
  Date : 2015/03/21 11:04:41
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1/ZFS WD5000AAKS

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :     7.002 MB/s
          Sequential Write :     5.465 MB/s
         Random Read 512KB :     7.735 MB/s
        Random Write 512KB :     6.397 MB/s
    Random Read 4KB (QD=1) :     0.228 MB/s [    55.6 IOPS]
   Random Write 4KB (QD=1) :     0.183 MB/s [    44.7 IOPS]
   Random Read 4KB (QD=32) :     0.229 MB/s [    56.0 IOPS]
  Random Write 4KB (QD=32) :     0.189 MB/s [    46.2 IOPS]

  Test : 1000 MB [S: 0.5% (2.1/449.5 GB)] (x5)
  Date : 2015/03/21 11:04:56
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1/ZFS WD5000AAKS

世界初!NAS4Free 9.3.0.2 on ODROID-C1

2015年の世界初シリーズ!?
まともに起動できるようになりました。
ベースイメージおよびパッチはまだ非公開です。
最終フィックスとクリーンナップが終わるまではパッチ作成しない予定です。

主なハード仕様はこんな感じ:

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G141578608433

Amlogic S805 (Cortex-A5 1.5GHz 4コア/L1 32KB/L2 512KB)
1GB メモリ (初期フレームバッファ 24MB+1MB)
ギガビットイーサネット (USB接続ではないBUS直結のはず)
eMMC HS200/SDR50 MicroSD (SDHCもしくはSDIOを使用)
DWC OTG USB 2.0 (HW rev 3.10a/DOTG_GSNPSID=0x4f54310a)

SMPカーネルの基本性能はこんな感じ:

eMMC 8GB -> R:35.6MB/s W:10.6MB/s (8bit 52MHz/実質 850/17=50MHz)
MicroSD 16GB -> R:34.6MB/s W:9.4MB/s (4bit 100MHz/実質 850/9=94MHz)
iperf3 onboard LAN -> 396Mbps (32k window / E-350 amd64 server)

NAS4Freeによる共有性能はこんな感じ:

SMB share on USB HDD -> R:35MB/s W:3MB/s (USB書き込み遅い・・・) ←間違えてNTFSで計測しました
SMB share on USB HDD -> R:22MB/s W:16MB/s (改善パッチを適用)
SMB share on /dev/md0 -> R:37MB/s W:35MB/s (オンメモリ処理はとっても早い)

USBの書込み処理がありえない程遅くてダメだけどそれ以外はRaspberryPiの4~5倍は出ますね。
USB性能については今後調査します。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-SD-9.3.0.2.1349-20150222.img.gz

2015/2/24更新:

さっそく問題が出たので修正しました(いつもの事だけど…)
前回つかったHDDがNTFSフォーマットだった事を忘れていたので、UFSで再度計測し直しました。
ネットワークは400Mbpsを越える値をたたき出すようになったようです。

ダウンロードはこちらから:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-SD-9.3.0.2.1349-20150224.img.gz

主な変更点:
g_eli_key.c.patchを適用
eMMCから起動して再起動するとMicroSDがタイムアウトする問題を修正
CPUアフィニティーとGICアフィニティーを最適化
EtherとSDHCの割り込み処理をちょっとだけ改良

現在のGIC優先度とCPU割り当て状況:
GIC優先度 / GICアフィニティー / 利用IRQ,割り込みスレッド
0x10 CPU0 TimerF
0x10 CPU1 TimerG (reserved)
0x10 CPU2 TimerH (reserved)
0x10 CPU3 TimerI (reserved)
0x30 CPU0 Other IRQ
0x30 CPU1 SDHC, SDIO
0x30 CPU2 Ether
0x50 CPU3 USB0, USB1

明示的にCPUアフィニティー設定したスレッド(またはタスクキュー):
CPU2 Ether RX/TX (いらないかもしれない・・・)
2015/02/24更新ここまで:

2015/03/03更新:

USB HDDへの書込み速度問題を回避するパッチを作成しました。
概ね16~20MB/s程度で書き込みできるようになったようです。
amd64カーネルでは35MB/s程度は出るのでまだ遅いけど、とりあえず使う分には問題ないと思う・・・。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-SD-9.3.0.2.1351-20150303.img.gz

アップグレード用:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-embedded-9.3.0.2.1351-20150303.img.xz

主な変更点:
USBドライバの速度改善パッチを適用
samba4.1.17, php5.6.6にアップグレード
2015/03/03更新ここまで:

2015/03/06更新:
ベースイメージをr279589に変更しました。
ZFSカーネルモジュールを標準添付するようにしました。
ARC(キャッシュは)の割り当ては280MBです。
ソース未確認ですが300MBあたりが限界のようです。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-SD-9.3.0.2.1353-20150306.img.gz

アップグレード用:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-oc1-embedded-9.3.0.2.1353-20150306.img.xz

主な変更点:
FreeBSDソースをr279589に変更
zfs.ko および opensolaris.ko を添付
ZFSプール使用量の表示バグを修正
2015/03/06更新ここまで:

ダウンロードしたらGZIP圧縮されているので解凍して2GB以上のeMMCモジュールかMicroSDカードに書き込みしてください。
あとは起動すればいつものNAS4Freeコンソールメニューが表示されます。
シリアルコンソールでもHDMI出力+USBキーボードのどちらでも操作可能です。

ダミーパーティションの使い方:
2GB以上のモジュール/カードに書き込むと後方が余りますので、ここをデータ領域として使えます。
ただし、起動中のeMMCモジュールやSDカードを変更すると問題が発生することがわかっていますので、必ずUSBカードリーダーに新版を挿して、それを変更します。
作業用の起動は旧版NAS4FreeでもFreeBSDでもかまいません。

da0として認識してる場合は以下のようにします。

# gpart resize -i4 da0
# gpart resize -a4m -i1 da0s4
# newfs -U -j /dev/da0s4a

これで起動したら、「ディスク|マネージメント」から「ディスクインポート」を行い、「ディスク|マウントポイント|マネージメント」から「パーティションタイプ → MBR」「パーティション番号 → 4」でマウントできます。

↓USB接続のHDDとメモリディスクでベンチマーク
20150221A
(クリックで拡大)
20150221B
(クリックで拡大)
↓4コアの性能は結構すごい!?
20150222B
(クリックで拡大)

現時点のドライバによる制限:
eMMCとMicroSDが同一のコントローラを利用してGPIOピンを共有するので双方にまたがるアクセスをすると、ピンアサインとバス幅・周波数等レジスタ設定を各MMCコマンド毎に切り替えるためと排他制御のため速度が著しく低下します。
本来別のコントローラと別ドライバを割り当てるべき。<Linuxはもちろんそうなってます…
↓速度低下するコマンドの例:

# dd if=NAS4Free-oc1-SD-9.3.0.2.1349.img of=/dev/mmcsd1 bs=16k
92160+0 records in
92160+0 records out
1509949440 bytes transferred in 665.589181 secs (2268591 bytes/sec)

2015/2/24更新:
↓UFSフォーマットのUSB接続HDDでベンチマーク
20150224A

詳細結果はここ:

# iperf3 -c 172.18.0.135 -w32k
Connecting to host 172.18.0.135, port 5201
[  4] local 172.18.0.136 port 27797 connected to 172.18.0.135 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  47.6 MBytes   400 Mbits/sec
[  4]   1.00-2.00   sec  47.7 MBytes   400 Mbits/sec
[  4]   2.00-3.00   sec  47.9 MBytes   402 Mbits/sec
[  4]   3.00-4.00   sec  47.7 MBytes   401 Mbits/sec
[  4]   4.00-5.00   sec  48.2 MBytes   404 Mbits/sec
[  4]   5.00-6.00   sec  48.0 MBytes   403 Mbits/sec
[  4]   6.00-7.00   sec  48.1 MBytes   403 Mbits/sec
[  4]   7.00-8.00   sec  48.0 MBytes   403 Mbits/sec
[  4]   8.00-9.00   sec  48.0 MBytes   403 Mbits/sec
[  4]   9.00-10.00  sec  48.0 MBytes   402 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   479 MBytes   402 Mbits/sec                  sender
[  4]   0.00-10.00  sec   479 MBytes   402 Mbits/sec                  receiver

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    22.709 MB/s
          Sequential Write :     5.817 MB/s
         Random Read 512KB :    21.654 MB/s
        Random Write 512KB :     5.287 MB/s
    Random Read 4KB (QD=1) :     2.852 MB/s [   696.3 IOPS]
   Random Write 4KB (QD=1) :     1.085 MB/s [   264.9 IOPS]
   Random Read 4KB (QD=32) :     2.674 MB/s [   652.7 IOPS]
  Random Write 4KB (QD=32) :     0.924 MB/s [   225.6 IOPS]

  Test : 100 MB [Z: 9.2% (41.4/451.1 GB)] (x5)
  Date : 2015/02/24 9:03:38
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1 1512MHz w/TOSHIBA MK5065GSX

2015/02/24更新ここまで:

2015/03/03更新:
↓USBパッチを適用してベンチマーク
20150303A
(クリックで拡大)

詳細結果はここ:

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    22.465 MB/s
          Sequential Write :    15.902 MB/s
         Random Read 512KB :    21.521 MB/s
        Random Write 512KB :    12.485 MB/s
    Random Read 4KB (QD=1) :     2.792 MB/s [   681.7 IOPS]
   Random Write 4KB (QD=1) :     1.300 MB/s [   317.3 IOPS]
   Random Read 4KB (QD=32) :     2.313 MB/s [   564.7 IOPS]
  Random Write 4KB (QD=32) :     1.119 MB/s [   273.1 IOPS]

  Test : 100 MB [Z: 10.9% (49.4/451.1 GB)] (x5)
  Date : 2015/03/03 1:51:55
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/OC1 1512MHz w/TOSHIBA MK5065GSX

2015/03/03更新ここまで:

詳細結果はここ:

# dd if=/dev/mmcsd0 of=/dev/null bs=1m count=16
16+0 records in
16+0 records out
16777216 bytes transferred in 0.483878 secs (34672409 bytes/sec)

# dd if=/dev/zero of=/dev/mmcsd0s2b bs=1m count=16
16+0 records in
16+0 records out
16777216 bytes transferred in 1.769085 secs (9483556 bytes/sec)

# dd if=/dev/mmcsd1 of=/dev/null bs=1m count=16
16+0 records in
16+0 records out
16777216 bytes transferred in 0.470816 secs (35634337 bytes/sec)

# dd if=/dev/zero of=/dev/mmcsd1s2b bs=1m count=16
16+0 records in
16+0 records out
16777216 bytes transferred in 1.579612 secs (10621099 bytes/sec)

# iperf3 -c 172.18.0.135 -w 32k
Connecting to host 172.18.0.135, port 5201
[  4] local 172.18.0.136 port 11405 connected to 172.18.0.135 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  47.4 MBytes   397 Mbits/sec
[  4]   1.00-2.00   sec  47.6 MBytes   399 Mbits/sec
[  4]   2.00-3.00   sec  47.7 MBytes   400 Mbits/sec
[  4]   3.00-4.00   sec  47.6 MBytes   399 Mbits/sec
[  4]   4.00-5.00   sec  45.2 MBytes   379 Mbits/sec
[  4]   5.00-6.00   sec  46.6 MBytes   391 Mbits/sec
[  4]   6.00-7.00   sec  47.3 MBytes   397 Mbits/sec
[  4]   7.00-8.00   sec  47.4 MBytes   398 Mbits/sec
[  4]   8.00-9.00   sec  48.2 MBytes   404 Mbits/sec
[  4]   9.00-10.00  sec  47.5 MBytes   398 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   472 MBytes   396 Mbits/sec                  sender
[  4]   0.00-10.00  sec   472 MBytes   396 Mbits/sec                  receiver

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    35.816 MB/s
          Sequential Write :     3.125 MB/s
         Random Read 512KB :    36.367 MB/s
        Random Write 512KB :     2.443 MB/s
    Random Read 4KB (QD=1) :     6.309 MB/s [  1540.2 IOPS]
   Random Write 4KB (QD=1) :     0.062 MB/s [    15.2 IOPS]
   Random Read 4KB (QD=32) :     6.622 MB/s [  1616.7 IOPS]
  Random Write 4KB (QD=32) :     0.067 MB/s [    16.4 IOPS]

  Test : 100 MB [Z: 3.8% (11.3/298.1 GB)] (x5)
  Date : 2015/02/21 16:57:25
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    USB HDD

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    37.418 MB/s
          Sequential Write :    35.369 MB/s
         Random Read 512KB :    37.112 MB/s
        Random Write 512KB :    35.103 MB/s
    Random Read 4KB (QD=1) :     5.964 MB/s [  1456.0 IOPS]
   Random Write 4KB (QD=1) :     4.473 MB/s [  1092.1 IOPS]
   Random Read 4KB (QD=32) :     6.638 MB/s [  1620.5 IOPS]
  Random Write 4KB (QD=32) :     5.085 MB/s [  1241.4 IOPS]

  Test : 100 MB [V: 8.0% (19.8/247.5 MB)] (x5)
  Date : 2015/02/21 18:25:16
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    /dev/md0 on ODROID-C1

参考用 /var/run/dmesg.boot:

KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2015 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.0-CURRENT #26 r278759M: Sat Feb 21 22:14:07 JST 2015
    aoyama@fbs11.local:/usr/local/src/crochet-freebsd/work/obj/arm.armv6/usr/src/sys/ODROIDC1-test1 arm
FreeBSD clang version 3.5.1 (tags/RELEASE_351/final 225668) 20150115
VT: init without driver.
Preloaded elf kernel "/boot/kernel/kernel" at 0xc0778000.
Preloaded elf module "/boot/kernel/if_axe.ko" at 0xc0778754.
module axe already present!
CPU: Cortex A5 rev 1 (Cortex-A core)
 Supported features: ARM_ISA THUMB2 JAZELLE THUMBEE ARMv4 Security_Ext
 WB disabled EABT branch prediction enabled
LoUU:2 LoC:2 LoUIS:2 
Cache level 1: 
 32KB/32B 4-way data cache WB Read-Alloc Write-Alloc
 32KB/32B 2-way instruction cache Read-Alloc
real memory  = 1073737728 (1023 MB)
avail memory = 1013493760 (966 MB)
Physical memory chunk(s):
  0x00001000 - 0x3fffffff,  1023 MB ( 262143 pages)
Excluded memory regions:
  0x06000000 - 0x079fffff,    26 MB (   6656 pages) NoAlloc NoDump
  0x10000000 - 0x108b2fff,     8 MB (   2227 pages) NoAlloc 
Static device mappings:
  0xc8100000 - 0xc81fffff mapped at VA 0xffe00000
  0xd0000000 - 0xd01fffff mapped at VA 0xffc00000
  0xc1300000 - 0xc13fffff mapped at VA 0xffb00000
  0xc1100000 - 0xc12fffff mapped at VA 0xff900000
  0xc4200000 - 0xc42fffff mapped at VA 0xff800000
  0xc4300000 - 0xc43fffff mapped at VA 0xff700000
  0xc8000000 - 0xc80fffff mapped at VA 0xff600000
  0xc9000000 - 0xc90fffff mapped at VA 0xff500000
  0xc9400000 - 0xc94fffff mapped at VA 0xff400000
  0xd9000000 - 0xd90fffff mapped at VA 0xff300000
  0xda000000 - 0xda0fffff mapped at VA 0xff200000
  0xcc000000 - 0xcfffffff mapped at VA 0xfb200000
  0x06000000 - 0x060fffff mapped at VA 0xfb100000
  0x06100000 - 0x078fffff mapped at VA 0xf9900000
  0x07900000 - 0x079fffff mapped at VA 0xf9800000
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
ULE: setup cpu 0
ULE: setup cpu 1
ULE: setup cpu 2
ULE: setup cpu 3
random: entropy device infrastructure driver
random: selecting highest priority adaptor <Dummy>
null: <full device, null device, zero device>
openfirm: <Open Firmware control device>
kbd0 at kbdmux0
random: SOFT: yarrow init()
random: selecting highest priority adaptor <Yarrow>
nfslock: pseudo-device
mem: <memory>
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
l2cache0: <PL310 L2 cache controller> mem 0xc4200000-0xc4200fff on simplebus0
simplebus0: no default resources for rid = 0, type = 1
l2cache0: Part number: 0x3, release: 0x9
l2cache0: L2 Cache enabled: 512KB/32B 8 ways
l2cache0: Early BRESP response: enabled
l2cache0: Instruction prefetch: enabled
l2cache0: Data prefetch: enabled
l2cache0: Non-secure interrupt control: enabled
l2cache0: Non-secure lockdown: enabled
l2cache0: Share override: enabled
l2cache0: Double linefill: enabled
l2cache0: Instruction prefetch: enabled
l2cache0: Data prefetch: enabled
l2cache0: Double linefill on WRAP request: disabled
l2cache0: Prefetch drop: enabled
l2cache0: Incr double Linefill: disabled
l2cache0: Not same ID on exclusive sequence: disabled
l2cache0: Prefetch offset: 7
gic0: <ARM Generic Interrupt Controller> mem 0xc4301000-0xc4301fff,0xc4300100-0xc43001ff on simplebus0
gic0: pn 0x390, arch 0x1, rev 0x1, implementer 0x43b irqs 256
m8b_timer0: <Meson8B Timer> irq 92,93,94,95 on simplebus0
Timecounter "Meson8B Timer E" frequency 1000000 Hz quality 1000
Event timer "Meson8B Event Timer" frequency 100000 Hz quality 900
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
m8b_cpufreq0: <CPU Frequency Control> on cpu0
cpu1: <Open Firmware CPU> on cpulist0
m8b_cpufreq1: <CPU Frequency Control> on cpu1
device_attach: m8b_cpufreq1 attach returned 6
cpu2: <Open Firmware CPU> on cpulist0
m8b_cpufreq2: <CPU Frequency Control> on cpu2
device_attach: m8b_cpufreq2 attach returned 6
cpu3: <Open Firmware CPU> on cpulist0
m8b_cpufreq3: <CPU Frequency Control> on cpu3
device_attach: m8b_cpufreq3 attach returned 6
fb0: <Meson8B Framebuffer> on ofwbus0
fbd0 on fb0
VT: initialize with new VT driver "fb".
gpio0: <Meson8B GPIO controller> on simplebus0
gpioc0: <GPIO controller> on gpio0
gpiobus0: <GPIO bus> on gpio0
uart0: <Meson8B UART> mem 0xc81004c0-0xc81004d3 irq 122 on simplebus0
uart0: console (115200,n,8,1)
uart0: fast interrupt
m8b_wdog0: <Meson8B Watchdog Timer> on simplebus0
simplebus0: <sdio> mem 0xc1108c20-0xc1108c3f irq 60 compat amlogic,aml_sdio (no driver attached)
m8b_sdhc0: <Meson8B SDHC> mem 0xc1108e00-0xc1108e3b irq 110 on simplebus0
m8b_sdhc0-port4: 100MHz 4bits SDR50 1.8V HS 3.3V DMA
m8b_sdhc0-port4: ============== REGISTER DUMP ==============
m8b_sdhc0-port4: Argument: 0x00000000 | Send:     0x00000000
m8b_sdhc0-port4: Control:  0x00880000 | Status:   0x00000000
m8b_sdhc0-port4: Clock ctl:0x00000000 | Address:  0x00000000
m8b_sdhc0-port4: PDMA:     0x04081ce0 | Misc:     0x80000150
m8b_sdhc0-port4: Data:     0x6d4102c9 | Int ctl:  0x00000000
m8b_sdhc0-port4: Int stat: 0x00004000 | SW reset: 0x00000000
m8b_sdhc0-port4: Esta:     0x00000000 | Enhc:     0x00f10c0c
m8b_sdhc0-port4: Clock2:   0x00000000 |
m8b_sdhc0-port4: ===========================================
m8b_sdhc0-port5: 150MHz 8bits 4bits HS 3.3V DMA
m8b_sdhc0-port5: ============== REGISTER DUMP ==============
m8b_sdhc0-port5: Argument: 0x00000000 | Send:     0x00000000
m8b_sdhc0-port5: Control:  0xe7ffe000 | Status:   0x00000000
m8b_sdhc0-port5: Clock ctl:0x00000000 | Address:  0x00000000
m8b_sdhc0-port5: PDMA:     0x0c43bcf0 | Misc:     0xe0000150
m8b_sdhc0-port5: Data:     0xf4e210aa | Int ctl:  0x00000000
m8b_sdhc0-port5: Int stat: 0x00004000 | SW reset: 0x00000000
m8b_sdhc0-port5: Esta:     0x00000000 | Enhc:     0x00fe0cff
m8b_sdhc0-port5: Clock2:   0x00000000 |
m8b_sdhc0-port5: ===========================================
amle0: <Meson8B Ether> mem 0xc9410000-0xc941ffff irq 40 on simplebus0
amle0: bpf attached
amle0: Ethernet address: 00:1e:06:a3:7e:b8
amle0: Link is up 1000 Mbps Full duplex
dwcotg0: <DWC OTG 2.0 integrated USB controller> mem 0xc90c0000-0xc90fffff irq 63 on simplebus0
usbus0 on dwcotg0
dwcotg0: usbpf: Attached
simplebus0: <usb_a> mem 0xc9040000-0xc907ffff irq 62 disabled compat synopsys,designware-hs-otg2 (no driver attached)
procfs registered
Timecounters tick every 10.000 msec
tcp_init: net.inet.tcp.tcbhashsize auto tuned to 8192
lo0: bpf attached
m8b_cpufreq0: current ARM 1512MHz
m8b_cpufreq0: max/min ARM 1512/700MHz
usbus0: 480Mbps High Speed USB v2.0
ugen0.1: <DWCOTG> at usbus0
uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub0: 1 port with 1 removable, self powered
mmc0: <MMC/SD bus> on m8b_sdhc0
mmc1: <MMC/SD bus> on m8b_sdhc0
mmc0: Probing bus
mmc0: SD 2.0 interface conditions: OK
mmc0: SD probe: OK (OCR: 0x00ff8000)
mmc0: Current OCR: 0x00ff8000
mmc0: OCR: 0xc1ff8000
mmc0: start UHS-I voltage switching
m8b_sdhc0-port4: switched to 1.8V signaling
mmc0: Probing cards
mmc0: New card detected (CID 02544d534431364789d436994a00d841)
mmc0: New card detected (CSD 400e00325b59000075bf7f800a400093)
mmc0: Card at relative address 0xef20 added:
mmc0:  card: SDHC SD16G 8.9 SN D436994A MFG 08/2013 by 2 TM
mmc0:  bus: 4bit, 100MHz
mmc0:  memory: 30867456 blocks, erase sector 128 blocks
mmc0: setting transfer rate to 100.000MHz (SDR50 timing)
mmcsd0: 16GB <SDHC SD16G 8.9 SN D436994A MFG 08/2013 by 2 TM> at mmc0 100.0MHz/4bit/255-block
GEOM: new disk mmcsd0
mmc1: MMC probe: OK (OCR: 0x00ff8080)
mmc1: Current OCR: 0x00ff8080
mmc1: OCR: 0xc0ff8080
mmc1: Probing cards
mmc1: New card detected (CID 11010030303847393251618ba394b143)
mmc1: New card detected (CSD d00e00320f5903ffffffffef92400045)
mmc1: Card at relative address 0x0002 added:
mmc1:  card: MMCHC 008G92 5.1 SN 618BA394 MFG 11/1998 by 17 0x0000
mmc1:  bus: 8bit, 52MHz, high speed timing
mmc1:  memory: 15269888 blocks, erase sector 8192 blocks
mmc1: setting transfer rate to 52.000MHz (high speed timing)
mmcsd1: 8GB <MMCHC 008G92 5.1 SN 618BA394 MFG 11/1998 by 17 0x0000> at mmc1 52.0MHz/8bit/255-block
random: unblocking device.
Release APs
mmc0: setting bus width to 4 bits
GEOM: new disk mmcsd1
mmc1: setting bus width to 8 bits
GEOM_PART: partition 1 is not aligned on 4194304 bytes
GEOM_PART: partition 2 is not aligned on 4194304 bytes
GEOM_PART: partition 3 is not aligned on 4194304 bytes
GEOM_PART: partition 4 is not aligned on 4194304 bytes
GEOM_PART: partition 1 is not aligned on 4194304 bytes
GEOM_PART: partition 2 is not aligned on 4194304 bytes
GEOM_PART: partition 3 is not aligned on 4194304 bytes
GEOM_PART: partition 4 is not aligned on 4194304 bytes
Trying to mount root from ufs:/dev/mmcsd0s3a [rw,noatime]...
warning: no time-of-day clock registered, system time will not be set accurately
start_init: trying /sbin/init
ugen0.2: <vendor 0x05e3> at usbus0
uhub1: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 2> on usbus0
uhub1: MTT enabled
uhub1: 4 ports with 4 removable, self powered
umass0: <vendor 0x13fe USB Carder, class 0/0, rev 2.00/1.10, addr 3> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4000
umass0:0:0: Attached to scbus0
.
(probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0?
GEOM: new disk pdaas0s0
 at umass-sim0 bus 0 scbus0 target 0 lun 0
pass0: < USB Reader 0001> Removable Direct Access SCSI-0 device 
pass0: Serial Number 123456789ABC
pass0: 40.000MB/s transfers
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: < USB Reader 0001> Removable Direct Access SCSI-0 device 
da0: Serial Number 123456789ABC
da0: 40.000MB/s transfers
da0: 1882MB (3854336 512 byte sectors: 255H 63S/T 239C)
da0: quirks=0x2<NO_6_BYTE>
da0: Delete methods: <NONE(*)>
(da0:umass-sim0:0:0:0): PREVENT ALLOW MEDIUM REMOVAL not supported.

世界初!NAS4Free 9.3.0.2 on Raspberry Pi

やっと起動できるようになりました。
ベースイメージとして先日公開した


http://www.peach.ne.jp/archives/rpi/FreeBSD-armv6-11.0-RPI-B-test21-r275967-20141223.img.gz

2015/1/24更新:
最新イメージはこちらをベースにしています。

http://www.peach.ne.jp/archives/rpi/FreeBSD-armv6-11.0-RPI-B-test22-r277169-20150114.img.gz

2015/1/24更新ここまで:

およびpkgを使っています。NAS4FreeはSVN r1214をベースにカスタマイズしたバージョンです。
修正が落ち着いたら本家ツリーにコミットする予定です。

現在は起動時の速度的な問題からLZ4HCではなくLZ4をデフォルトで/usr/localに使うようになっています。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1214-20141226.img.gz

2014/12/30更新:
ports/firefly (iTunes/DAAP)の作成に成功しました。
調査中ですが ports/fuppes (DLNA/UPnP) はちょっと難しそうなので現時点のバイナリをアップします。
今回からファームウェア更新は既存パーティションを壊さない方法に変更してみました<rpiのみ
また最後尾に64MBのダミーパーティションを作成するようになりました。

ダウンロードはこちらから:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1254-20141230.img.gz

変更点:
iTunes/DAAPサービスを追加
ファームウェア更新方法を変更
パーティションレイアウトの変更
USBデバイスの認識がされない問題を修正
2014/12/30更新ここまで:

2015/01/08更新:
ports/fuppes (DLNA/UPnP)の作成に成功しました。
前回つけたダミーパーティションですが64MBも割り当てる必要がなかったので、システム領域を256MB->320MBに変更してダミーを10MBとしました。
これが最終レイアウトになるはず?次回からアップデート用のイメージも配布する予定です。

今回は以下のclang3.5をベースとして利用しています。


http://www.peach.ne.jp/archives/rpi/FreeBSD-armv6-11.0-RPI-B-test22-r276645-20150104.img.gz

次回はさらにベースを更新する予定(まだ未作成だけど・・・)

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1291-20150108.img.gz

変更点:
DLNA/UPnPサービスを追加
ダミーパーティションを64MB->10MBに変更
システム領域を256MB->320MBに変更
smartctl などがクラッシュする問題の修正

2015/01/11更新:
HSモードで起動しない問題の回避パッチを作りました。
これによりデフォルトをHSモード有効に変更しました。
手持ちのカードではすべて50MHzで起動できました。
50MHzなら良カードで22MB/s、ダメカードなClass10でも18MB/sぐらいの読み込みが期待できます。

ダウンロードはこちらから:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1295-20150111.img.gz
1291からのアップグレード用:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-embedded-9.3.0.2.1295-20150111.img.xz

アップグレード用はダウンロード後、展開せずにファームウェアイメージファイルで選択してください。
メモリの使用状況にもよりますが10分程度待っていれば更新して再起動してくると思います。

特に指定はしていませんが NAS4Free on RPi は Model A と Model B どちらもで動きます。
ファームウェアアップグレードもどちらでも動くように作ってあります。
ただし、256MBだとスワップが不足してアップロード自体が失敗するかもしれません。
その場合は一度再起動してスワップ領域をあけて再度アップグレードしてください。
(いわゆる仕様です…)

変更点:
HSモードでの認識不良を回避するパッチを適用
HSモードをデフォルトで有効に変更
ACT LEDの制御方法の変更

2015/1/18更新:
Netatalk 3.1.7 搭載バージョンです。
ベースイメージをu-boot2015.01搭載のFreeBSD-armv6-11.0-RPI-B-test22-r277169-20150114.img.gzに変更しました。
アップグレード用ではブート部分は更新されないので気になる人は再インストールをどうぞ。
NAS4Free的にはブート部分はあまり関係ないですが…。

ダウンロードはこちらから:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1300-20150116.img.gz
1291以降のアップグレード用:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-embedded-9.3.0.2.1300-20150116.img.xz

変更点:
FreeBSD-armv6-11.0-RPI-B-test22-r277169-20150114.img.gz ベースに変更
Netatalk 2.2.5 -> 3.1.7 に変更
samba の共有設定変更はリロード処理に変更

2015/1/24更新:
最終テストアップ版(予定)です。
少し前に話題になった mount_smbfs を同梱しています。
また、NAS4Freeに無線LAN関係を追加したのでそれらも使えるようになっています。
ただし、FreeBSDの無線ドライバはあまり安定していないようですが・・・。
こちらでは WPA-PSK (WPA2-PSK/AES) しかテストしていないのそれ以外はまともに動かないかもしれない。

ダウンロードはこちらから:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1340-20150124.img.gz
1291以降のアップグレード用:
http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-embedded-9.3.0.2.1340-20150124.img.xz

主な変更点:
samba 4.1.16 にアップグレード
iperf3 3.0.11 にアップグレード
mount_smbfs を同梱
無線LAN関係の処理を追加(APモード親機、子機どちらも利用可能)
2015/01/24更新ここまで:

2015/03/03更新:
現行カーネルからの最終版になる予定なイメージです。
次回からはODROID-C1と同じカーネルバージョンを用意する予定です。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1351-20150303.img.gz

1291以降のアップグレード用:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-embedded-9.3.0.2.1351-20150303.img.xz

主な変更点:
g_eli_key.c.patchを適用
samba4.1.17, php5.6.6にアップグレード
2015/03/03更新ここまで:

2015/03/06更新:
ベースイメージをr279589に変更しました。
ZFSカーネルモジュールを標準添付するようにしました。
ARC(キャッシュは)の割り当ては160MBです。
ソース未確認ですが300MBあたりが限界のようです。

ダウンロードはこちらから:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-SD-9.3.0.2.1353-20150306.img.gz

1291以降のアップグレード用:

http://www.peach.ne.jp/archives/nas4free/test/NAS4Free-rpi-embedded-9.3.0.2.1353-20150306.img.xz

主な変更点:
FreeBSDソースをr279589に変更
zfs.ko および opensolaris.ko を添付
ZFSプール使用量の表示バグを修正
2015/03/06更新ここまで:

2014/12/30更新:
ダミーパーティションの使い方:
2GB以上のカードに書き込むと後方が余りますので、ここをデータ領域として使えます。
ただし、起動中のSDカードを変更すると問題が発生することがわかっていますので、必ずUSBカードリーダーに新版を挿して、それを変更します。
作業用の起動は旧版NAS4FreeでもFreeBSDでもかまいません。

da0として認識してる場合は以下のようにします。

# gpart resize -i4 da0
# gpart resize -a4m -i1 da0s4
# newfs -U -j /dev/da0s4a

これで起動したら、「ディスク|マネージメント」から「ディスクインポート」を行い、「ディスク|マウントポイント|マネージメント」から「パーティションタイプ → MBR」「パーティション番号 → 4」でマウントできます。
2014/12/30更新ここまで:

ダウンロードしたらGZIP圧縮されているので解凍して1GB以上のSDカードに書き込みしてください。
あとは起動すればいつものNAS4Freeコンソールメニューが表示されます。
シリアルコンソールでもHDMI出力+USBキーボードのどちらでも操作可能です。

現時点でビルド不能により以下の機能がありません。
ports/firefly (iTunes/DAAP)9.3.0.2.1254 より対応
ports/fuppes (DLNA/UPnP)9.3.0.2.1291 より対応

ハード依存のため以下のportsの対応予定はありません。
arcconf
tw_cli
isboot
open-vm-tools
vbox-additions
vmxnet3

↓実際に900MHzにクロックアップしたModelBにUSB接続で2.5インチ500GBのHDDを接続してテストするとこんな感じに。
20141224
(クリックで拡大)


-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 Shizuku Edition x64 (C) 2007-2012 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :     4.543 MB/s
          Sequential Write :     3.855 MB/s
         Random Read 512KB :     4.372 MB/s
        Random Write 512KB :     3.707 MB/s
    Random Read 4KB (QD=1) :     0.481 MB/s [   117.5 IOPS]
   Random Write 4KB (QD=1) :     0.603 MB/s [   147.2 IOPS]
   Random Read 4KB (QD=32) :     0.710 MB/s [   173.3 IOPS]
  Random Write 4KB (QD=32) :     0.564 MB/s [   137.8 IOPS]

  Test : 100 MB [R: 8.9% (40.1/451.1 GB)] (x5)
  Date : 2014/12/24 1:19:18
    OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)
    NAS4Free/RPi 900MHz w/TOSHIBA MK5065GSX

↓Raspberry Pi Model Bの共有から1280×720のmp4動画を再生しているとこんな感じに
20141226B
(クリックで拡大)

↓興味本位でModel Aで起動して1GB分のファイルをWin7から書き込みした状態
以外と動くものですね・・・遅いけど!
20141226A
(クリックで拡大)

256MBのモデルAでもスワップ86MBしか使わないところを見ると、512MBのモデルBならキャッシュする余裕はありそうですね。

(少なくともFreeBSD的には)世界初になるLZ4等複数圧縮対応メモリディスク(/dev/xmd)を搭載したNAS4Free 9.3.0.2.1190がリリースされました

2014/12/21追加:
DHCPの設定によっては正しく動かない問題などがありましたので修正されたバージョン1213がリリースされました。
https://sourceforge.net/projects/nas4free/files/NAS4Free-9.3.0.2/9.3.0.2.1213/
2014/12/21追加ここまで:

ChromeでのUI系の不満を解消するべくメインブラウザをChormeにしているので他ブラウザーでは問題があるかも。
今回のアップデートでは、

インストール先に2GBを想定した各種サイズの拡張
FreeBSD 9.3系をベースに使用
Samba 4.1系および SMB3 をデフォルトに使用
LiveUSBなどにデフォルトスワップ領域を常時設置(ユーザが設定追加するまでのつなぎ)
圧縮機能付きのメモリディスク(geom_xmd.ko)を採用
メモリ512MB搭載マシンでの動作を保証(LiveCDモードを除く)

になったのが大きな変更です。

マイナー系では

メモリ2GB未満のマシンに対するLiveCDモードの廃止
(以後はインストールとアップグレードのみ対応/LiveUSBおよびインストール後は引き続き動作保証)
xzを使った高圧縮を全面的に採用
net.inet.carp.preempt使用時のHAST処理の改善
HASTボリュームのインポート処理改善
HASTボリューム上のNFSサービスのサポート
ZFSにおけるログデバイスの追加削除
HTTPSにおけるSSLv3の廃止
2048ビットキーおよびSHA256ハッシュを使った自己証明書の添付
WebGUIの許可ホストを追加
Windows Server 2012 R2での動作確認済みのistgt-20141125を搭載

などです。
ダウンロードはこちらから:


http://sourceforge.net/projects/nas4free/files/NAS4Free-9.3.0.2/9.3.0.2.1190/

今回のNAS4Freeには、実験的なメモリディスク(geom_xmd.ko)および制御コマンド(/sbin/xmdconfig)を搭載しています。
また xmdの圧縮機能使用を前提として mfsroot を /usr/local とそれ以外に分離。
もちろんxmdなんてなくても動作するけど…消費メモリは激しいです。

主な機能としては、

1. swap_pagerを使った動的な可変サイズメモリ確保/解放(ゼロフィル等の同値やTRIMにも対応)
2. リアルタイムのブロックレベル圧縮機能
3. 複数の圧縮方式や圧縮レベルに対応(無圧縮, LZ4/LZ4HC, ZLIB, LZMA2)
4. 圧縮方法はセグメント単位で独立なのでいつでも xmdconfig から変更可能
5. mkuzip(8) や mkulzma(8) による事前圧縮済みの mfsroot に対応
6. mdconfig(8) と同等のインターフェースを用意

実際に512MBの仮想マシン中で使うとこんな感じに(表示上の空きメモリは150~250MB程度)

20141213b
(クリックで拡大)

全体として1GBのメモリディスクを作成して約330MBを利用している画像です。
768MBのディスクが、157085696バイトのスワップメモリ割り当て。(805306368バイト中19%を割り当て済み)
UFSレベルでは302MB使用しているが、生データは137288660の圧縮データとして保持中。
カレントの圧縮方式はLZ4、圧縮レベルは6を指定済み。(LZ4ではレベル4以上はLZ4HCを使うので実際はLZ4HC)
圧縮方式とレベルはもちろん /sbin/xmdconfig でいつでも変更可能です。

xmdconfigによるオペレーション例:

Using -a and -d option is same as mdconfig:
    # xmdconfig -a -s 256m
    # xmdconfig -d -u 3

Change to fastest LZ4 compression
    # xmdconfig -m -u 0 -t lz4 -c 1

Change to LZMA compression with level6
    # xmdconfig -m -u 1 -t lzma -c 6

Change to ZLIB compression
    # xmdconfig -m -u 2 -t zlib

List the disks with verbose
    # xmdconfig -l -v
    xmd0    preload    128M lz4     1        12% (16528790/16608053/134217728)
    xmd1    swap       768M lzma    6         9% (62249776/74780672/805306368)
    xmd2    swap       128M zlib    1         6% (56211/266240/4128768)

なお、ソースファイルの用意が間に合っていないので、まずは9.3用のバイナリ形式のみを提供:
xmd-0.3.2.tar.gz (binary)

istgt (iSCSI target) 20141125版 for openSUSE/Debian/NetBSD/FreeBSD および isboot (iSCSI boot driver) version 0.2.8 と統合デモ版のFreeBSD 9.3/10.0

Raspberry Piの作業が全然進んでないので逃避というわけではないけど・・・

NAS4Free 9.3.X.Xの改版に伴うテスト作業を実行するために、
Windows Server 2012 R2 での動作を検証して動かない部分を直しました。
主に複数イニシエータ使用が前提の修正です。
NAS4FreeのSVNにはコミット済みなので次のリリースから適用されます。

istgt (tarball): istgt-20141125.tar.gz

作成方法:

# cd /path/to/work
# tar zxf /path/to/istgt-20141125.tar.gz
# cd istgt-20141125
# ./configure
# make
# make install
# make install-doc

作成方法(仮想ディスク機能付き):

# cd /path/to/work
# tar zxf /path/to/istgt-20141125.tar.gz
# cd istgt-20141125
# ./configure --with-vbox
or
# ./configure --with-vbox=/path/to/VirtualBox-4.X.X/include
# make
# make install
# make install-doc

MD5 (istgt-20141125.tar.gz) = 95dc647d7bf69f10bb6b09ae9d63f0c5
SHA256 (istgt-20141125.tar.gz) = 8fa4120091ce9be694b5d2ff3d6d188386bec4921a3d0a837b6860ea3fdc79bf

主な修正点:
複数イニシエータから登録されたキーを正しくコピーできていなかった問題を修正。
各ターゲット毎に3接続以上(または3台以上のイニシエータ)から接続した場合にRESERVE/RELEASEが期待通り動かない問題を修正。

また、FreeBSD8/9/10に対応したブートドライバも更新しました。
0.2.7でVIMAGEカーネルが対応できなかったので0.2.8になってます・・・。
ビルドは単独のMakefileを用意しましたので、任意の場所に展開して
そのまま make すれば出来上がります。

isboot の使い方は以前のページを参考にしてください。

isboot (iSCSI boot driver) version 0.2.8 ダウンロードリンク:isboot-0.2.8

MD5 (isboot-0.2.8.tar.gz) = fd29a2537ede3cf223ac5c1f07e8128c
SHA256 (isboot-0.2.8.tar.gz) = a513c1efb42819f8fa33ad497d1253d09b86ecefa58a13f70ba36a52c2b2eb12

統合デモ版 ダウンロードリンク(for testing purpose only):

FreeBSD-10.0-RELEASE-amd64-memstick-isboot-0.2.7.img


FreeBSD-9.3-RELEASE-amd64-memstick-isboot-0.2.7.img

FreeBSD 11-CURRENT on Raspberry Pi に Apache 2.4(event MPM)/MySQL 5.6/PHP 5.6(ZTS) を導入する

ハード依存の初期設定さえ終われば中身は100%のFreeBSDですから
いろいろなネットの情報を使って自由にカスタマイズできます。
ただし、公式のパッケージが用意されていないので、
すべて ports から自力コンパイルして作成しなければいけません。

CPUは700MHzとかなり遅いので時間が結構かかります。
オーバークロックして1000MHzでもそれなりに。

そこで予めテスト環境で十分動くと判断したイメージを使い、
pkgの生成を行う専用マシンを用意して実機作成したものを公開しています。

※現在はベース 20141024 + カーネル 20141026を使用

って前振り長いですね・・・

ダウンロードページで既に書いた手順に従いパッケージリポジトリを取り込みます。

パッケージ利用方法のおさらい:

まず静的リンクしたコマンドでpkg自体をインストール
# fetch http://www.peach.ne.jp/archives/rpi/pkg-static
# chmod 755 pkg-static
# ./pkg-static add http://www.peach.ne.jp/archives/rpi/ports/pkg.txz

デフォルトのパッケージを無効化
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

独自パッケージリポジトリを追加
# fetch http://www.peach.ne.jp/archives/rpi/rpi.conf
# mv rpi.conf /usr/local/etc/pkg/repos

リポジトリカタログを最新状態に更新
# pkg update

シェルやエディタは好みがあるのでどれとは言いにくいけど、
ここでは個人的な趣味で以下のようなものを入れます。

# pkg install bash emacs-nox11 mg
# pkg install ja-less+iso ja-ddskk-emacs24 ja-nkf
# pkg install portupgrade subversion git gmake m4
# pkg install iperf3 trafshow

apache24 は MPM_EVENT + MPM_SHARED(全MPMモジュール化)で作成してあります。
PHPもパッケージを使えばZTS選択済みのを用意してあるので問題ありません。

※portsと組み合わせる場合はZTSを有効にするかMPMを変更してください。
旧パッケージはMPM_PREFORKなのでもし必要であれば
http://www.peach.ne.jp/archives/rpi/old/ports/packages-20141024/All/
からどうぞ。

# pkg install apache24
# pkg install php56 mod_php56
# pkg install mysql56-server phpMyAdmin

※複数行にわける必要はまったくないけど見やすさ優先でこうしています。
MySQLの管理に便利なphpMyAdminも一緒にいれていきます。

インストールしたら簡単な設定をいれてしまいます。

シェルなどの設定ファイルはホームディレクトリの直下の . から始まります。
rootと作成したユーザの両方に同じ設定を置きます。
rootはUSBキーボードで直接コンソールから入った時用で、
作成したユーザはSSHで接続した時用です。

bashのログイン時の設定 .bash_profile:

IGNOREEOF=10
EDITOR=mg
PAGER=jless
export EDITOR PAGER

mgの設定 .mg:

meta-key-mode
global-set-key "\^H" delete-backward-char
global-set-key "\e[6~" scroll-up
global-set-key "\e[5~" scroll-down

ログインシェルの変更(ユーザ指定しないと自分=root)

# chsh -s /usr/local/bin/bash
# chsh -s /usr/local/bin/bash ユーザ名

変更したら新たにSSHの接続を開いて正しくログインできる事を確認します。
ダメな場合は設定を行った古い接続の方で設定を見直します。

MySQLの省メモリ起動の設定:

旧バージョンはサンプルがついてきたけど5.6はもう付いてこないようです。
なので最少設定を書いて後程修正します。

/usr/local/etc/my.cnf:

[mysqld]
log-bin = mysql-bin
expire_logs_days = 7

key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

innodb_data_home_dir = /var/db/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/db/mysql
innodb_buffer_pool_size = 16M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
#innodb_file_per_table

※InnoDBはデフォルトでは1個のファイル(ibdata1)に複数のテーブル情報をまとめて格納します。巨大になりがちなので注意。
ファイル名は my.conf ではないのでそれも注意。

/etc/rc.conf に以下の起動設定を書いて、

mysql_enable="YES"
# /usr/local/etc/rc.d/mysql-server start

で手動起動してみます。初回起動時は初期テーブルのインストールやらなんやらで
1~2分かかるのでしばらく待ちます。

起動に成功すると、/var/db/mysql/ 内にデータが作成されてログが ホスト名.err で出来ます。
特に変更していなければ raspberry-pi.err になります。

起動するとサンプル設定が /usr/local/my.cnf に出来ますが不要なので削除します。

Apache と mod_php の設定:

設定はどこに書いてもいいと思うけど、Includes 以下のファイルは最後に読み込まれるので、

/usr/local/etc/apache24/Includes/mysite.conf としてこんな感じのを書いてあります。

# override httpd.conf
<IfModule dir_module>
    DirectoryIndex index.php index.cgi index.html
</IfModule>

# debug only
<Location /server-status>
    SetHandler server-status
    Require ip 172.18.0
</Location>
LoadModule info_module libexec/apache24/mod_info.so
<Location /server-info>
    SetHandler server-info
    Require ip 172.18.0
</Location>

# php
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

# phpMyAdmin
Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

<Directory "/usr/local/www/phpMyAdmin/">
    Options None
    AllowOverride Limit

    Require local
    Require ip 172.18.0
</Directory>

/etc/rc.conf に以下の起動設定を書いて、

apache24_enable="YES"
# /usr/local/etc/rc.d/apache24 start

で手動起動してみます。

ブラウザで Raspberry Pi のIPアドレスを入れて「It works!」が表示されればOKです。
「It works!」は /usr/local/www/apache24/data/index.html なので、
この時点で /usr/local/www/apache24/data に置いたファイルがアクセス可能です。
たとえば、info.phpとして以下のような内容を書くと、

<?php
        phpinfo();
?>

http://IPアドレス/info.phpを表示させればPHPの情報が見れます。

アクセスできるようになったら、phpMyAdminを設定します。

phpMyAdmin の設定:

http://IPアドレス/phpmyadmin/setup/ から行います。

まずは接続テストする為に、デフォルト指定のまま全部いきます。
「サーバ」→「新しいサーバ」で「このサーバの詳細な名前」の所に

Raspberry Pi FreeBSD11

などの適当な名前をつけます。初回はパスワードが入っていないので、
「サーバ設定」→「パスワードなしログインの許可」にチェックを入れます。
残りはデフォルトのまま「Apply」をクリックします。

「設定ファイル」→「デフォルト言語」を日本語にして「表示する」に行きます。

いままでの設定が表示されますので、

/usr/local/www/phpMyAdmin/config.inc.php

に内容を全部貼り付けます。できたら

http://IPアドレス/phpmyadmin/

にアクセスして、ユーザ名に root を入れてパスワード欄を空のまま実行を押します。
設定が間違っていなければMySQLにログインしてこのような画面になります。

↓ログイン成功
20141027A

ユーザの所をクリックすると、現在MySQLに登録されているユーザが表示されますので
安全の為に使う予定のないものをすべて削除します。

↓いろいろ設定されている
20141027B

localhost を使うと /tmp/mysql.sock を経由したアクセスになります。
IPアドレスを指定すると TCPポート3306を経由したアクセスになります。

WEBとDBサーバが一緒にいる場合は localhost 以外は使わないので消します。
さらに、匿名アクセスも利用しないのでまとめて全部消します。
それぞれのチェックボックスにチェックをいれて、
「選択したユーザを削除する」の右端のほうにある「実行」を押します。

↓削除後の様子
20141027C

次にパスワードの変更を行います。
rootの「特権を編集」の中にある「パスワードを変更する」を実行します。
rootのパスワードを変更すると、おそらくセッションが切れるので、
ブラウザを起動しなおします。
新しいパスワードでログインする事を確認できたら、config.inc.php の
AllowNoPassword の行を削除します。

以上で phpMyAdmin のログイン設定の完了です。

一応ここまでセットアップした後に WordPress4.0 と webmin (pkgあり) を
動かすところまでは確認したけどすごい遅い…
小型省エネだから監視系とかログ収集とかにいいかなとは思う。
次回はメール系(postfix/dovcot)をやってみようかなと思っています。

FreeBSD 11-CURRENT on Raspberry Pi の初期設定をやってみる

※以下の初期設定は

FreeBSD-armv6-11.0-RPI-B-test20-r273303-20141026.img.gz

を前提にしています。以前の初期設定がなくなってちょっと面倒なので、
以前のようにすぐに使えるようにイメージ作成時に修正をいれる予定です。

2014/11/06追記:
FreeBSD-armv6-11.0-RPI-B-test20-r274088-20141106.img.gz
からスワップをデフォルト設定済みになりました。
/etc/fstab は tmpfs を使うように変更されました。
また、/etc/rc.conf で cron/syslog が有効になっています。
2014/11/06追記:

1.一般ユーザーの追加

USBキーボードとHDMIを接続して電源を入れて、login: の所で
root でログインしてSSH接続できる一般ユーザーを作成します。

※シリアルコンソールが使える環境であればそちらから可能

adduser または bsdconfig コマンドを使って新規ユーザーの追加ができます。
ほぼデフォルトでもかまわないけど、other groups に wheel を入れるのを
忘れると管理者になれないので注意します。

adduser コマンドを使った作業例:

root@raspberry-pi:~ # adduser
Username: pi         ←ユーザー名を入れる
Full name:
Uid (Leave empty for default):
Login group [pi]:
Login group is pi. Invite pi into other groups? []: wheel ←root(管理者)になれるように指定する
Login class [default]:
Shell (sh csh tcsh bash rbash git-shell nologin) [sh]:
Home directory [/home/pi]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:        ←新しいパスワードを入力
Enter password again:     ←パスワード確認
Lock out the account after creation? [no]:
Username   : pi
Password   : *****
Full Name  :
Uid        : 1001
Class      :
Groups     : pi wheel
Home       : /home/pi
Home Mode  :
Shell      : /bin/sh
Locked     : no
OK? (yes/no): y        ←設定がよければ y で作成
adduser: INFO: Successfully added (pi) to the user database.
Add another user? (yes/no): n ←他に追加しなければ n で終了
Goodbye!

2.IPアドレスを確認してSSH接続

ネットワークに接続されていれば起動時にDHCPからIPアドレスをとってくるので、
それを確認して、上記で作成したユーザーでSSH接続します。
inet の後にIPアドレスが書いてありますのでそれを使います。

ifconfig の実行例:

# ifconfig
(中略)
ue0: flags=8843 metric 0 mtu 1500
        options=80001
        ether XX:XX:XX:XX:XX:XX
        inet 172.18.0.148 netmask 0xffffff00 broadcast 172.18.0.255
        media: Ethernet autoselect (100baseTX )
        status: active
        nd6 options=29

※ネットワークに接続するのを忘れていたらLANケーブルの接続を確認して
シャットダウン(リブート)しましょう・・・

# shutdown -r now

TeraTerm(UTF-8)の場合は「チャレンジレスポンス認証を使う」を選択すると
SSHでログインできるようになります。
以降の作業はすべてSSHで遠隔操作可能です。

3.root ユーザーのパスワードを設定

まずは上記で作成したユーザーでログインします。
ログインしたら $ というプロンプトが出るので、su コマンドを使って
root ユーザー(管理者)になり、passwd コマンドで新しいパスワードを設定します。

※管理者の場合はプロンプト(の最後)が # に変わり管理者であることを示します。

$ su
root@raspberry-pi:/usr/home/pi # passwd
Changing local password for root
New Password:      ←新しいパスワード
Retype New Password:  ←確認

4.スワップの設定(オプション)

2014/11/06追記:
r274088-20141106 以降は標準で設定されていますのでこの項目は不要です。
2014/11/06追記:

スワップはなくても動きますけど、一時的にメモリ確保が必要な時に
作業中断されると対応が面倒なので、事前に追加しておく事をお勧めします。

まずスワップに使う256MBの空ファイルを作成し、管理者のみ参照できるようにします。

# dd if=/dev/zero of=/usr/swap.dat bs=1m count=256
# chmod 600 /usr/swap.dat

確認するとこんな感じのが出来ています。

# ls -al /usr/
(中略)
-rw-------   1 root  wheel   268435456 Oct 27 16:11 swap.dat

次にこのスワップファイルをfstabに追加します。
ファイルの編集には標準で付いてくる ee コマンドを使い編集します。
後ほどportsからいろいろなテキストエディタをインストールできますが
ここでは ee で行います。ESCキーを押すとメニューが出てくるので
「a) leave editor」→「a) save changes」と選択して保存終了します。

# ee /etc/fstab

※ファイルの最後に改行が付いていないと最終行の次の行頭に移動できないので、
その場合は最終行の行末までいって改行します。

エディタで /etc/fstab の最後に次の一行を追加する。(起動時にスワップ追加の設定)

md none swap sw,late,file=/usr/swap.dat 0 0

fstab の編集が終わったら起動している今はスワップファイルを手動で追加します。

# swapon -aL
swapon: adding /dev/md2 as swap device

swapinfo や top コマンドで追加されている事を確認してみてください。

5.タイムゾーンを日本時間に変更

zoneinfo 内から /etc/localtime にコピーします。
dateコマンドで現在時間表示してJSTになっていればOKです。

# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# date
Mon Oct 27 20:19:10 JST 2014

6.デフォルトの設定をサーバー向けに変更

2014/11/06追記:
r274088-20141106 以降は標準で設定されていますのでこの項目は不要です。
2014/11/06追記:

ログファイルが永続しないメモリディスク上だと追跡が困難になりますので、
/etc/fstab の /var/log の行頭に # を入れて設定を無効化(コメント化)します。

編集後の /etc/fstab の例:

(中略)
md              /tmp            mfs rw,noatime,-s30m    0 0
#md             /var/log        mfs rw,noatime,-s15m    0 0
md              /var/tmp        mfs rw,noatime,-s5m     0 0
md none swap sw,late,file=/usr/swap.dat 0 0

同様に /etc/rc.conf のcronとsyslogの起動停止を無効化(=機能有効化)します。

編集後の /etc/rc.conf の例:

(中略)
# Turn off a lot of standard stuff
# for more free memory.
#cron_enable="NO"
#devd is necessary for proper DHCP operation;
# don't disable unless you know how to run DHCP manually.
#devd_enable="NO"
#syslogd_enable="NO"
(以下略)

7.固定のIPアドレスを設定

DHCPサーバ側で固定できる場合は ifconfig で出てくる ether の行の値を設定します。

DHCPサーバがMACアドレスベースで固定できない場合は、
IPアドレスをDHCP範囲外から選び静的に指定します。

/etc/rc.conf 静的アドレスの例:

defaultrouter="172.18.0.1"
ifconfig_ue0="inet 172.18.0.148 netmask 255.255.255.0"

/etc/hosts に自身のIPアドレスを付け加えておきます。

172.18.0.148    raspberry-pi raspberry-pi.local

※ /etc/resolv.conf (DNS設定)はDHCPで取得した時点で自動作成されるので
確認だけはしておきます。

8.ports デフォルトオプションの設定

サーバ用途でX11がいらない場合は余計なビルドを避けるため make.conf に
以下のようなものを入れておくと良いです。
パッケージ作成はこれを入れた上でビルドされています。

/etc/make.conf:

OPTIONS_UNSET=X11

9.再起動して確認

全部作業が終わったら再起動して正しく設定がされているか確認します。

# shutdown -r now

無事に起動したらパッケージの利用方法の手順に従い追加する事ができます。
続きは長くなりそうなので次回に。

2014/11/06追記:
r274088-20141106 以降のディスクレイアウトはこんな感じです。

# df -h
Filesystem        Size    Used   Avail Capacity  Mounted on
/dev/mmcsd0s2a    7.1G    1.6G    4.9G    25%    /
devfs             1.0K    1.0K      0B   100%    /dev
/dev/mmcsd0s1      17M    7.0M     10M    41%    /boot/msdos
tmpfs              64M    4.0K     64M     0%    /tmp
tmpfs             8.0M    4.0K    8.0M     0%    /var/tmp

# swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/md0           262144        0   262144     0%

2014/11/06追記:

↓ディスクレイアウトはこんな感じになります

# df -h
Filesystem        Size    Used   Avail Capacity  Mounted on
/dev/mmcsd0s2a    7.1G    1.6G    4.9G    25%    /
devfs             1.0K    1.0K      0B   100%    /dev
/dev/mmcsd0s1      17M    7.0M     10M    41%    /boot/msdos
/dev/md0           29M     24K     26M     0%    /tmp
/dev/md1          4.4M    8.0K    4.0M     0%    /var/tmp
# swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/md2           262144        0   262144     0%

※完全に終了させて電源を切る場合は -h または -p を付けて実行します。

# shutdown -h now

↓のような状態になったら電源ケーブルを抜いても大丈夫です。
(シリアルコンソールでないと最後まで見えません)

System shutdown time has arrived
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Waiting (max 60 seconds) for system process `syncer' to stop...
Syncing disks, vnodes remaining...2 0 2 2 1 1 0 0 done
All buffers synced.
Uptime: 2m25s

The operating system has halted.
Please press any key to reboot.

WordPress 4.2 on ESXi 5.1 + 10GbE + istgt