FWCONTROL(8) BSD System Manager’s Manual FWCONTROL(8)


fwcontrol — FireWire control utility


fwcontrol [−u bus_num] [−prt] [−c node] [−d node] [−o node] [−s node] [−l file] [−g gap_count] [−b pri_req] [−R filename] [−S filename]


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

The following options are available:

−u bus_num

Specify the FireWire bus number to be operated on.


Initiate bus reset.


Show the topology map.


Dump PHY registers.

−c node

Show the configuration ROM on the node.

−d node

Hex dump of the configuration ROM.

−o node

Send a link-on PHY packet to the node.

−s node

Write to the RESET_START register on the node.

−l file

Load hex dump file of the configuration ROM and parse it.

−g gap_count

Broadcast gap_count by phy_config packet.

−i pri_req

Set the PRIORITY_BUDGET register on all supported nodes.

−R filename

Receive DV stream and dump it to a file. Use Ctrl-C to stop the 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.firewire.try_bmr=0
fwcontrol -r

The resulting file contains raw DV data excluding isochronous header and CIP header. It can be handled by libdv in the FreeBSD Ports Collection.

−S filename

Send a DV file as isochronous stream.


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

fwcontrol -R original.dv

Receive stream.

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 | fwcontrol -S /dev/stdin

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

For PAL, replace ’’bs=120000’’ with ’’bs=144000’’.


firewire(4), fwe(4), fwohci(4), sbp(4)


The fwcontrol utility first appeared in FreeBSD 5.0.


Hidetoshi Shimokawa <simokawa [AT]>


This utility is still under development and provided for debugging purposes.

BSD December 30, 2002 BSD