EN JA
FWCONTROL(8)
FWCONTROL(8) FreeBSD System Manager's Manual FWCONTROL(8)

名称

fwcontrolFireWire 制御ユーティリティ

書式

fwcontrol [ -u bus_num][ -prt][ -c node][ -d node][ -o node][ -s node][ -l file][ -f node][ -g gap_count][ -b pri_req][ -M mode][ -R filename][ -S filename][ -m EUI64 | hostname]

解説

fwcontrol ユーティリティは、 FreeBSD FireWire サブシステムへユーザがアクセスおよび制御する手段を提供するように設計されています。オプションなしで、 fwcontrol は、バスに接続されている/されていたデバイスのリストを出力します。

次のオプションが利用可能です。

-u bus_num
操作される FireWire バスの番号を指定します。デフォルトは、バス 0 です。
-r
バスリセットを起こします。
-t
トポロジ (接続形態) マップを示します。
-p
PHY レジスタをダンプします。
-c node
ノードのコンフィギュレーション ROM を表示します。
-d node
コンフィギュレーション ROM を 16 進ダンプします。
-o node
ノードにリンクオン PHY パケットを送信します。
-s node
ノードの RESET_START レジスタに書き込みます。
-l file
コンフィギュレーション ROM の 16 進ダンプファイルを読み込んで、それを解析します。
-f node
指定された node が PHY コンフィグ (config) パケットを送信することによって次のバスリセットでルートノードとなることを強制します。有効な値は、0 - 63 です。
-g gap_count
PHY_config パケットを送信することによって、新しい gap_count をブロードキャスト (同報通信) します。デフォルトで、この値は、すべてのノードで 63 です。有効な値は、0 - 63 です。
-i pri_req
すべてのサポートされたノードで PRIORITY_BUDGET レジスタを設定します。
-M mode
着信ストリームのために dv または mpeg モードのどちらかを明白に指定します。重要な場合にだけ、 -R オプションに先行しなければなりません。指定されないなら、プログラムは推測しようとします。“format 0x20”エラーの場合には、“mpeg”モードを強制するように試みます。
-R filename
DV または MPEG TS ストリームを受信し、それをファイルにダンプします。受信を停止するために ^C を使用します。いくつかの DV カメラは、バスマネージャが存在するなら、ストリームを送信しないようです。ストリームを得ることが不可能であるなら、次のコマンドを試みてください:

sysctl hw.firewire.try_bmr=0 
fwcontrol -r

結果のファイルは、アイソクロナス (等時性) ヘッダおよび CIP ヘッダ以外の生の DV データを含んでいます。このファイルは、 FreeBSD Ports Collection (ポーツコレクション) の libdv によって扱えます。 FreeBSD Ports Collection の VideoLAN vlc ツールを使用してネットワークを超えて MPEG TS ストリームの結果をプレーして、送信することができます。 vlc に直接ストリームをパイプに送ることができます、 「使用例」 を参照。

-S filename
アイソクロナス (等時性) ストリームとして DV ファイルを送信します。
-m EUI64 | hostname
デフォルトの fwmem ターゲットを設定します。ホスト名は eui64(5) を使用して EUI64 に変換されます。

関連ファイル

/dev/fw0.0

使用例

各 DV フレームは固定サイズを持っており、フレーム順序を編集することは容易です。

fwcontrol -R original.dv

アタッチされた DV カメラで DV ストリームを受信します。

dd if=original.dv of=first.dv bs=120000 count=30

1 つ目の 30 フレーム (NTSC) を取得します。

dd if=original.dv of=second.dv bs=120000 skip=30 count=30

2 つ目の 30 フレーム (NTSC) を取得します。

cat second.dv first.dv | fwcontrol -S /dev/stdin

1 つ目と 2 つ目の 30 フレームを入れ替えて、DV レコーダに送ります。

PAL の場合は“ bs=120000”を“ bs=144000”に読み替えてください。

fwcontrol -R file.m2t

MPEG トランスポートストリームを作り出すカメラから MPEG TS ストリームを受信します。これは 25 Mbps 帯域幅で HD MPEG-2 ストリームを作り出す SONY HDR-FX1E カメラでテストされました。

(vlc で驚いたことによりよく動作しいる) TCP を使用してネットワーク越しにカメラからストリームを送信するためには、利用者は、次を使用することができます。

fwcontrol -R - | nc 192.168.10.11 9000

ポートからの netcat で、ストリームを受信するためには、次を使用します。

nc -l -p 9000 | vlc -

UDP を通る netcast のためには、 vlc がバッファから UDP パケットを読み込むために十分速くないので、ポートから buffer プログラムを使用する必要があり、その結果、直接実行するとき、落ちこぼしを経験します。送信側は次を使用することができます。

fwcontrol -R - | nc 192.168.10.11 9000

そして、ストリームを受信するために、次を使用します。

nc -l -u -p 9000 | buffer -s 10k -b 1000 -m 20m -p 5 | vlc -

vlc でどのように動作するかに関する詳しい情報については、その文書を参照してください。

歴史

fwcontrol ユーティリティは、 FreeBSD 5.0 ではじめて登場しました。

作者

Hidetoshi Shimokawa <simokawa@FreeBSD.org> Petr Holub <hopet@ics.muni.cz> - MPEG TS モード。

バグ

このユーティリティはまだ開発中で、デバッグのために提供しています。特に MPEG TS 受信サポートは、極めて基本的であり、高帯域 MPEG-2 ストリームだけをサポートします (CIP ヘッダの fn フィールドが 3 に等しい)。
September 12, 2008 FreeBSD