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