xref: /freebsd/usr.sbin/fwcontrol/fwcontrol.8 (revision fd45b686f9d92f583366c75b22c04c7ee49709c0)
1.\" Copyright (c) 2002 Hidetoshi Shimokawa
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
17.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
22.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23.\" POSSIBILITY OF SUCH DAMAGE.
24.\"
25.Dd September 12, 2008
26.Dt FWCONTROL 8
27.Os
28.Sh NAME
29.Nm fwcontrol
30.Nd FireWire control utility
31.Sh SYNOPSIS
32.Nm
33.Op Fl u Ar bus_num
34.Op Fl prt
35.Op Fl c Ar node
36.Op Fl d Ar node
37.Op Fl o Ar node
38.Op Fl s Ar node
39.Op Fl l Ar file
40.Op Fl f Ar node
41.Op Fl g Ar gap_count
42.Op Fl b Ar pri_req
43.Op Fl M Ar mode
44.Op Fl R Ar filename
45.Op Fl S Ar filename
46.Op Fl m Ar EUI64 | hostname
47.Sh DESCRIPTION
48The
49.Nm
50utility is designed to provide a way for users to access and control the
51.Fx
52FireWire subsystem.
53Without options,
54.Nm
55will output a list of devices that are/were connected to the bus.
56.Pp
57The following options are available:
58.Bl -tag -width indent
59.It Fl u Ar bus_num
60Specify the FireWire bus number to be operated on.
61The default is bus 0.
62.It Fl r
63Initiate bus reset.
64.It Fl t
65Show the topology map.
66.It Fl p
67Dump PHY registers.
68.It Fl c Ar node
69Show the configuration ROM on the node.
70.It Fl d Ar node
71Hex dump of the configuration ROM.
72.It Fl o Ar node
73Send a link-on PHY packet to the node.
74.It Fl s Ar node
75Write to the
76.Dv RESET_START
77register on the node.
78.It Fl l Ar file
79Load hex dump file of the configuration ROM and parse it.
80.It Fl f Ar node
81Force specified
82.Ar node
83to be the root node on the next bus reset by sending a PHY config packet.
84Valid values are 0 - 63.
85.It Fl g Ar gap_count
86Broadcast new
87.Ar gap_count
88by sending a PHY_config packet.
89By default this value is 63 on all nodes.
90Valid values are 0 - 63.
91.It Fl i Ar pri_req
92Set the
93.Dv PRIORITY_BUDGET
94register on all supported nodes.
95.It Fl M Ar mode
96Explicitly specify either
97.Ar dv
98or
99.Ar mpeg
100mode for the incoming stream.
101Only meaningful in case of and must precede the
102.Fl R
103option.
104If not specified, the program will try to guess.
105In case of
106.Dq format 0x20
107error, try to force the
108.Dq mpeg
109mode.
110.It Fl R Ar filename
111Receive DV or MPEG TS stream and dump it to a file.
112Use ^C to stop the receiving.
113Some DV cameras seem not to send the stream if a bus manager exists.
114If it is impossible to get the stream, try the following commands:
115.Bd -literal -offset indent
116sysctl hw.firewire.try_bmr=0
117fwcontrol -r
118.Ed
119.Pp
120The resulting file contains raw DV data excluding isochronous header
121and CIP header.
122It can be handled by
123.Nm libdv
124in the
125.Fx
126Ports Collection.
127Resulting MPEG TS stream can be played and sent over a
128network using the VideoLAN
129.Nm vlc
130tool in the
131.Fx
132Ports Collection.
133The stream can be piped directly to
134.Nm vlc,
135see
136.Sx EXAMPLES .
137.It Fl S Ar filename
138Send a DV file as isochronous stream.
139.It Fl m Ar EUI64 | hostname
140Set default fwmem target.
141Hostname will be converted to EUI64 using
142.Xr eui64 5 .
143.El
144.Sh FILES
145.Bl -tag -width "Pa /dev/fw0.0"
146.It Pa /dev/fw0.0
147.El
148.Sh EXAMPLES
149Each DV frame has a fixed size and it is easy to edit the frame order.
150.Pp
151.Dl "fwcontrol -R original.dv"
152.Pp
153Receive a DV stream with DV camera attached.
154.Pp
155.Dl "dd if=original.dv of=first.dv bs=120000 count=30"
156.Pp
157Get first 30 frames(NTSC).
158.Pp
159.Dl "dd if=original.dv of=second.dv bs=120000 skip=30 count=30"
160.Pp
161Get second 30 frames(NTSC).
162.Pp
163.Dl "cat second.dv first.dv | fwcontrol -S /dev/stdin"
164.Pp
165Swap first and second 30 frames and send them to DV recorder.
166.Pp
167For PAL, replace
168.Dq Li bs=120000
169with
170.Dq Li bs=144000 .
171.Pp
172.Dl "fwcontrol -R file.m2t"
173.Pp
174Receive an MPEG TS stream from a camera producing MPEG transport stream.
175This has been tested with SONY HDR-FX1E camera that produces HD MPEG-2
176stream at 25 Mbps bandwidth.
177.Pp
178To send the stream from the camera over the network using TCP (which
179surprisingly works better with vlc), you can use
180.Dl "fwcontrol -R - | nc 192.168.10.11 9000"
181with
182.Nm netcat
183from ports and to receive the stream, use
184.Dl nc -l -p 9000 | vlc -
185.Pp
186To netcast via UDP, you need to use
187.Nm buffer
188program from ports, since vlc is not fast enough to read UDP packets from
189buffers and thus it experiences dropouts when run directly.
190The sending side can use
191.Dl "fwcontrol -R - | nc 192.168.10.11 9000"
192and to receive the stream, use
193.Dl nc -l -u -p 9000 | buffer -s 10k -b 1000 -m 20m -p 5 | vlc -
194.Pp
195For more information on how to work with
196.Nm vlc
197see its docs.
198.Sh SEE ALSO
199.Xr mplayer 1 ,
200.Xr vlc 1 ,
201.Xr firewire 4 ,
202.Xr fwe 4 ,
203.Xr fwip 4 ,
204.Xr fwohci 4 ,
205.Xr sbp 4
206.Sh HISTORY
207The
208.Nm
209utility first appeared in
210.Fx 5.0 .
211.Sh AUTHORS
212.An Hidetoshi Shimokawa Aq Mt simokawa@FreeBSD.org
213.An Petr Holub Aq Mt hopet@ics.muni.cz
214(MPEG TS mode)
215.Sh BUGS
216This utility is still under development and provided for debugging purposes.
217Especially MPEG TS reception support is very rudimental and supports only
218high-bandwidth MPEG-2 streams (fn field in CIP header equals 3).
219