xref: /dragonfly/usr.sbin/dconschat/dconschat.8 (revision 25a2db75)
1.\" Copyright (c) 2003 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.\" $FreeBSD: src/usr.sbin/dconschat/dconschat.8,v 1.5 2004/06/13 18:03:42 ru Exp $
26.\" $DragonFly: src/usr.sbin/dconschat/dconschat.8,v 1.4 2008/09/02 11:50:46 matthias Exp $
27.\"
28.\"
29.Dd September 2, 2008
30.Dt DCONSCHAT 8
31.Os
32.Sh NAME
33.Nm dconschat
34.Nd user interface to
35.Xr dcons 4
36.Sh SYNOPSIS
37.Nm
38.Op Fl brvwRT1
39.Op Fl h Ar hz
40.Op Fl C Ar console_port
41.Op Fl G Ar gdb_port
42.Op Fl M Ar core
43.Op Fl N Ar system
44.Nm
45.Op Fl brvwR1
46.Op Fl h Ar hz
47.Op Fl C Ar console_port
48.Op Fl G Ar gdb_port
49.Op Fl a Ar address
50.Op Fl u Ar bus_num
51.Fl t Ar target_eui64
52.Sh DESCRIPTION
53The
54.Nm
55utility is designed to provide a way for users to access
56.Xr dcons 4
57(dumb console device) on a local or remote system.
58The
59.Nm
60utility interacts with
61.Xr dcons 4
62using
63.Xr kvm 3
64or
65.Xr firewire 4 ,
66and interacts with the user over TTY or TCP/IP.
67To access remote
68.Xr dcons 4
69using
70.Xr firewire 4 ,
71you have to specify target EUI64 address using the
72.Fl t
73option.
74.Pp
75The
76.Nm
77utility and the
78.Xr dcons 4
79driver communicate using 2 ports, one for the console port and another
80for remote
81.Xr gdb 1
82port.
83Users are supposed to access
84.Nm
85using TTY,
86.Xr telnet 1
87and
88.Xr gdb 1 .
89You can specify listen ports for console and
90.Xr gdb 1
91port using the
92.Fl C
93and
94.Fl G
95options respectively.
96The port number 0 has special meaning that
97current TTY (stdin/stdout) is used instead of TCP/IP.
98A negative port number will disable the port.
99To quit
100.Nm ,
101send a CR +
102.Ql ~
103+
104.Ql \&.
105sequence to the console port,
106or send signal to the process.
107.Pp
108By analogy with
109.Xr pty 4
110device, the
111.Xr dcons 4
112acts as a slave device and
113.Nm
114acts as a master device with
115.Xr telnetd 8 .
116.Bl -tag -width indent
117.It Fl b
118Translate Ctrl-C to ALT_BREAK (CR +
119.Ql ~
120+ Ctrl-B) on
121.Xr gdb 1
122port.
123.It Fl r
124Replay old buffer on connection.
125.It Fl v
126Verbose debug output.
127Multiple
128.Fl v
129options increase verbosity.
130.It Fl w
131Listen on a wildcard address rather than localhost.
132.It Fl R
133Read-only.
134Do not write anything to the
135.Xr dcons 4
136buffer.
137.It Fl T
138Enable ad-hoc workaround for the TELNET protocol to
139remove unnecessary byte sequences.
140It should be set when you access
141.Nm
142using
143.Xr telnet 1 .
144.It Fl 1
145One-shot.
146Read available buffer, then exit.
147This implies the
148.Fl r
149option.
150.It Fl h Ar hz
151Specify polling rate.
152The default value is 100.
153.It Fl C Ar console_port
154Specify the console port.
155The default value is 0 (stdin/stdout).
156.It Fl G Ar gdb_port
157Specify
158.Xr gdb 1
159port.
160The default value is \-1 (disabled).
161.It Fl M Ar core
162Specify core file.
163.It Fl N Ar system
164Specify system file such as
165.Pa /boot/kernel .
166.It Fl t Ar target_eui64
167Specify the 64-bit extended unique identifier of the target,
168and use FireWire to access remote
169.Xr dcons 4 .
170.It Fl a Ar address
171Specify the physical I/O address of the
172.Xr dcons 4
173buffer.
174See
175.Xr dcons 4
176for details.
177If this option is not specified,
178.Nm
179tries to get the address from the Configuration ROM on the target.
180You are supposed to enable
181.Xr dcons_crom 4
182on the target to omit this option.
183.It Fl u Ar bus_num
184Specify FireWire bus number.
185The default is 0.
186.El
187.Sh FILES
188.Bl -tag -width indent -compact
189.It Pa /dev/fwmem0.0
190.It Pa /dev/mem
191.It Pa /dev/kmem
192.El
193.Sh EXAMPLES
194To use
195.Nm
196with FireWire for remote
197.Xr dcons 4 ,
198you have to specify the EUI64 of the target.
199You can obtain EUI64 by running
200.Xr fwcontrol 8
201without options.
202The first EUI64 is of the host running
203.Xr fwcontrol 8
204and others on the bus follow.
205.Bd -literal -offset indent
206# fwcontrol
2072 devices (info_len=2)
208node           EUI64          status
209   1  77-66-55-44-33-22-11-00      0
210   0  00-11-22-33-44-55-66-77      1
211.Ed
212.Pp
213The EUI64 does not change unless you change the hardware
214as the ethernet address.
215.Pp
216Now we can run
217.Nm .
218.Bd -literal -offset indent
219# dconschat -br -G 12345 -t 00-11-22-33-44-55-66-77
220.Ed
221.Pp
222You will get console output of the target and login prompt if a
223.Xr getty 8
224is running on
225.Xr dcons 4 .
226You can break to DDB with ALT_BREAK (CR +
227.Ql ~
228+ Ctrl-B)
229if
230.Dv DDB
231and
232.Dv ALT_BREAK_TO_DEBUGGER
233are enabled in the target kernel.
234To quit the session, type CR +
235.Ql ~
236+
237.Ql \&.
238in the console port.
239.Pp
240Using
241.Xr gdb 1
242port is almost the same as remote
243.Xr gdb 1
244over serial line except
245using TCP/IP instead of
246.Pa /dev/cu* .
247See
248.Sx "On-line Kernel Debugging Using Remote GDB"
249section of
250.%T "The FreeBSD Developers Handbook"
251and
252.Xr gdb 4
253for details.
254.Bd -literal -offset indent
255% gdb -k kernel.debug
256(kgdb) target remote :12345
257.Ed
258.Pp
259Once
260.Xr gdb 1
261is attached and you specified the
262.Fl b
263option to
264.Nm ,
265typing Ctrl-C in
266.Xr gdb 1
267causes a break to debugger.
268.Pp
269The following command gets the console log from the crash dump:
270.Bd -literal -offset indent
271# dconschat -1 -M vmcore.0 -N kernel.0
272.Ed
273.Pp
274If you want access to the console using
275.Xr telnet 1 ,
276try the following:
277.Bd -literal -offset indent
278# dconschat -rTC 5555 &
279# telnet localhost 5555
280.Ed
281.Pp
282You may want to keep logging console output of several machines.
283.Nm conserver-com
284in the Ports collection may help you.
285Insert the following lines in
286.Pa conserver.cf :
287.Bd -literal -offset indent
288console local {
289	master localhost;
290	type exec;
291	exec /usr/sbin/dconschat -rh 25;
292}
293console remote {
294	master localhost;
295	type exec;
296	exec /usr/sbin/dconschat -rh 25 -t 00-11-22-33-44-55-66-77;
297}
298.Ed
299.Sh SEE ALSO
300.Xr gdb 1 ,
301.Xr telnet 1 ,
302.Xr kvm 3 ,
303.Xr dcons 4 ,
304.Xr dcons_crom 4 ,
305.Xr ddb 4 ,
306.Xr firewire 4 ,
307.Xr fwohci 4 ,
308.Xr gdb 4 ,
309.Xr eui64 5 ,
310.Xr fwcontrol 8
311.Sh AUTHORS
312.An Hidetoshi Shimokawa Aq simokawa@FreeBSD.org
313.Sh BUGS
314This utility is
315.Ud
316