Windows使いのOpenWrt(一段落編完結)

上海問屋DN-84749ことWT1520についてかなり朗報があります。

  1. WT1520のwikiが出来ました! (Buttonsの所とかかなり怪しいのですがw)
  2. WT1520のシリアルポートはここだ!(いずれ、文鎮となったWT1520をArduinoの3.3v版で救出したい。実際開けてみるととても小さいですよw)
  3. NTFSへの書き込み約3.5MB/s達成(思いっきり条件付きw)
  4. ソースからビルドする方法の詳細はこちら

2.4.2 ExtRootファーム更新

ExtRoot設定は簡単なのですがファームウェアをアップデートしようとすると途端にややこしくなります。設定はLuciからでも可能です。Luciの「ルートを使用する」を使わずにマウントポイント/overlayにしています。

問題はファームウェアの更新です。手順としてはここを参考に以下のようになりました。

①現状のバックアップ

Luciのバックアップで現状の設定をバックアップします。

image

②/etc/.extroot-uuidの削除

OpenWrtが自動で作成するExtRoot用のファイルを削除します。これをやらないとExtRootが設定できなかったりExtRootを解除して新しいファームをExtRootにコピーすることができません。

image

③sysupgradeの実行

ファームウェアを/tmpにコピーしてsysupgradeを実行。ファームの書き換えが終わると自動的に再起動します。

image

④ファームウェアのコピー

再起動後、telnetで入りrootのパスワードを設定しsshでログイン。ExtRootが外れている。ルータのフラッシュROMをExtRootするusbメモリにコピー(usbメモリのExtRootのファイルを削除した方がいいかも)

image

⑤ExtRootの有効化

/etc/config/fstabにExtRootのマウントを設定して再起動。

image

⑥設定のリストア

ExtRootが有効になっていることを確認。

image

以前のファームウェアで追加していたパッケージ(samba、uShareなど)を再度インストールして、①で取っておいたバックアップをリストアする。

image

重要なのは②の/etc/.extroot-uuidを削除することです。これをやらないと④の時点ですでにExtRootされていたり、⑤でfstabを修正してもExtRootされなかったりで混乱のもとになります。微妙にまちがっているかもしれませんが動くのでおk。OpenWrtのWikiも参考にどうぞ。

あとuuidは”block info”コマンドで参照できます。

2.5 Samba

 インストールするパッケージはluci-app-sambaでおk。ついでにsamba36-serverもインストールされます。

image

luci-app-xxxxxをインストールするとLuciメニューに設定用の画面が追加されます、便利です、日本語ですw。

image

ただ、Luci画面だけからは設定できない部分があります。samba用のユーザを追加する必要があります。詳細はこちら

2.4 ntfs-3G

2.4.1 インストール

NTFSに書き込み可能とするためntfs-3gのパッケージを追加する必要があります。opkgでインストールしようとするとカーネル依存と言われてインストールできませんでした。build時にntfs-3gのパッケージを組み込んでファームを生成して対応しています。

image

いわゆるカーネルモジュール(k-mod-xxとかntfs-3gとか)の/rom(ファームウェアのリードオンリー領域)に影響を与えるパッケージは主の環境ではopkgインストールできませんでした。

2.4.2 NTFSのマウント

ntfs-3gではfstabの設定で起動時に自動マウントできません(参照)。面倒なのでrc.localにマウントコマンドを記述しました。

image

2.4.3 NTFSへの読み込み・書き込みスピード

ようやく性能を計れる状態になりました。ntfs-3gではマウントするときのオプションで大きく性能が異なってきます。

1)一番大人しい状態

読み書きは同期モード。コマンド的には

ntfs-3g -o rw,sync -o noatime /dev/sdb1 /mnt/share

image

2)非同期モード

組み込み系ではご法度の非同期モード

ntfs-3g -o async -o noatime /dev/sdb1 /mnt/share

image

3)big_writeモード

本命big_writeモード

ntfs-3g -o big_writes -o async -o noatime /dev/sdb1 /mnt/share

image

3.5MB/S前後が安定して出ています。素晴らしい!これで地上波TSの書き込みはクリアできそうです。しかし・・・

4)読み込み性能

image

こればSambaでファイルをオープンしてみると微妙に帯域が足りない。音声が途切れ途切れになります。困りました。そこで

2.6 DLNA

2.6.1 minidlna

 minidlnaを入れてみましたが、問題点があり使えません

  • 重い!特にファイル一覧のDBを作成しているときはSWAPを数十M使っていました。
  • 一部のTSファイルを認識できない。一覧に出てこない

ということで断念。残るなushareとなりました。

2.6.1 uShare

1)パッケージ

Trunk版にはushareがありません。そこでoldpackagesから持ってきます。OPKG-設定に一行追加します。

src/gz oldpackagew http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/oldpackages/

リストを更新後、パッケージが出てくるようになります。もしかしたらlibdlnaもインストールしておいた方がいいかもです。

image

2)uShare動作の為の小細工

パッケージをインストールしても起動できません。色々小細工が必要ですw。

① ライブラリの追加

image

55と同じようにシンボリックリンクで54を作りますw。もはや動けば何でもいいw

ln -s libavformat.so.55.48.100 libavformat.so.54
ln -s libavcodec.so.55.69.100 libavcodec.so.54

② uShareの設定

LuciでuShareの設定を行います。詳細なオプションはこちらを参照

image

③/etcinit.d/ushareの変更

それでも動かない場合、/etc/init.d/ushareの変更。情報元はこちら。なぜか起動前にsleep 10を入れると動きますw。

image

④ /etc/rc.localに起動コマンドを追加

/etc/rc.dに追加してもいいのですが、NTFSをrc.localでマウントしているのでそれ以降に起動しないといけません。

image

⑤ フリーなメモリをできるだけ増やす

uShareは簡易的なDLNAとはいえメモリをかなり消費します。少しでも動作が軽くなるように/tmp(RAMディスク)の容量を減らしフリーなメモリを増やします。

/etc/rc.localに以下のコマンドを追加。デフォルトでは16Mを8Mにしました。情報元はこちら

mount tmpfs /tmp -t tmpfs -o remount,size=8000k,nosuid,nodev

視聴中の左の%がCPU使用率で右がメモリ使用率です。SWAPも設定した方がいいみたいです。

image

image

3 そして

imageimageimage

実用的かはさておき、iphone4S+nplayerで途切れる回数が大幅に減少しますw。DLNAのがSambaより軽いんですね。

ちなみに環境としてはWT1520にUSBハブ(二股ケーブルで電源強化)にUSBメモリとUSB-SATA変換を差しています。

そして、無駄なOpenWrt上で無駄なサービスを停止(NTPとか)を見直しSambaでも同じくらい再生できるようになりました。

おまけの性能測定(目安として)

SDカード32G、Windowsでの書き込み約11MB/s、読み込み約19MB/s。Sambaのファイルコピーを目測で測定w

format アロケーションサイズ マウント
オプション
書き込み(MB/s) 読み込み
(MB/s)
NTFS

512

非同期big_write

3.0

2.3

NTFS

8k

非同期
big_write

3.2

2.4

NTFS

64k

非同期
big_write

2.5

2.4

ext3

?

非同期

4.0

2.9

ext3

?

同期

2.1

2.9

ext3でも読み込みはあまり早くならないです。読み込みのが遅いなんて何かがおかしい。まぁ、いいか

image

DLNA経由でNTFSファイル再生時のCPU使用率(いっぱいいっぱいですw)

#疲れた。でもビルド編とシリアルコンソール編に続くw

広告
カテゴリー: 20世紀プログラマ, コンピューターとインターネット, OpenWrt タグ: , , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中