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 11.0