FWCTL(8)

FWCTL(8) | System Manager's Manual | FWCTL(8)

# NAME

fwctl — IEEE1394 control utility

# SYNOPSIS

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

# DESCRIPTION

The fwctl utility is designed to provide a way for users to access and control the NetBSD IEEE1394 subsystem. Without options, fwctl will output a list of devices that are/were connected to the bus.

The following options are available:

-b pri_req
  Set the PRIORITY_BUDGET register on all supported nodes.
-c node
  Show the configuration ROM on the node.
-d node
  Hex dump of the configuration ROM.
-f node
  Force specified node to be the root node on the next bus reset by sending a PHY config packet. Valid values are 0 - 63.
-g gap_count
  Broadcast new gap_count by phy_config packet. By default this value is 63 on all nodes. Valid values are 0 - 63.
-i pri_req
  Set the PRIORITY_BUDGET register on all supported nodes.
-l file
  Load hex dump file of the configuration ROM and parse it.
-M mode
  Explicitly specify either dv or mpeg mode for the incoming stream. Only meaningful in case of and must precede the -R option. If not specified, the program will try to guess. In case of “format 0x20” error, try to force the mpeg mode.
-m EUI64 | hostname
  Set default fwmem target. Hostname will be converted to EUI64.
-o node
  Send a link-on PHY packet to the node.
-p
  Dump PHY registers.
-R filename
  Receive DV or MPEG TS stream and dump it to a file. Use Ctrl-C to stop receiving. Some DV cameras seem not to send the stream if a bus manager exits. If you cannot get the stream, try the following commands:

      sysctl hw.ieee1394if.try_bmr=0
      fwctl -r

  The resulting file contains raw DV data excluding isochronous header and CIP header. It can be handled by the pkgsrc/multimedia/libdv package. The resulting MPEG TS stream can be played and sent over a network using the VideoLAN tool (pkgsrc/multimedia/vlc). The stream can be piped directly to vlc, see EXAMPLES.

-r
  Initiate bus reset.
-S filename
  Send a DV file as isochronous stream.
-s node
  Write to the RESET_START register on the node.
-t
  Show the topology map.
-u bus_num
  Specify the IEEE1394 bus number to be operated on. The default is bus 0.

# FILES

/dev/fw0.0

# EXAMPLES

Each DV frame has a fixed size and it is easy to edit the frame order.

> `fwctl -R original.dv`

Receive a DV stream with DV camera attached.

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

Get first 30 frames (NTSC).

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

Get second 30 frames (NTSC).

> `cat second.dv first.dv | fwctl -S /dev/stdin`

Swap first and second 30 frames and send them to DV recorder.

For PAL, replace “`bs=120000`” with “`bs=144000`”.

> `fwctl -R file.m2t`

Receive an MPEG TS stream from a camera producing MPEG transport stream. This has been tested with SONY HDR-FX1E camera that produces HD MPEG-2 stream at 25 Mbps bandwidth.

To send the stream from the camera over the network using TCP (which surprisingly works better with vlc), you can use

> `fwctl -R - | nc 192.168.10.11 9000`

with pkgsrc/net/netcat and to receive the stream, use

> `nc -l -p 9000 | vlc -`

To netcast via UDP, you need to use pkgsrc/misc/buffer, since vlc is not fast enough to read UDP packets from buffers and thus it experiences dropouts when run directly. The sending side can use

> `fwctl -R - | nc 192.168.10.11 9000`

and to receive the stream, use

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

For more information on how to work with vlc see its documentation.

# SEE ALSO

mplayer(1), vlc(1), fwip(4), fwohci(4), ieee1394if(4), sbp(4)

# HISTORY

The fwctl command first appeared in FreeBSD 5.0, as fwcontrol. It was added to NetBSD 4.0 under its present name.

# AUTHORS

Hidetoshi Shimokawa <simokawa@FreeBSD.org> Petr Holub <hopet@ics.muni.cz> - MPEG TS mode. KIYOHARA Takashi <kiyohara@NetBSD.org>

# BUGS

This utility is still under development and provided for debugging purposes. Especially MPEG TS reception support is very rudimental and supports only high-bandwidth MPEG-2 streams (fn field in CIP header equals 3).

August 24, 2010 | NetBSD 7.0