Print this page
10563 Convert vt(7I) to mandoc
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/man/man7i/vt.7i
+++ new/usr/src/man/man7i/vt.7i
1 -'\" te
1 +.\" Copyright (c) 2017, Joyent, Inc.
2 2 .\" Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
3 -.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 -.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 -.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 -.TH VT 7I "Sep 22, 2008"
7 -.SH NAME
8 -vt \- Solaris virtual console interface
9 -.SH SYNOPSIS
10 -.LP
11 -.nf
12 -\fB#include <sys/kd.h> \fR
13 -.fi
14 -
15 -.LP
16 -.nf
17 -\fB#include <sys/vt.h> \fR
18 -.fi
19 -
20 -.SH DESCRIPTION
21 -.sp
22 -.LP
3 +.\" The contents of this file are subject to the terms of the
4 +.\" Common Development and Distribution License (the "License").
5 +.\" You may not use this file except in compliance with the License.
6 +.\"
7 +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8 +.\" or http://www.opensolaris.org/os/licensing.
9 +.\" See the License for the specific language governing permissions
10 +.\" and limitations under the License.
11 +.\"
12 +.\" When distributing Covered Code, include this CDDL HEADER in each
13 +.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14 +.\" If applicable, add the following below this CDDL HEADER, with the
15 +.\" fields enclosed by brackets "[]" replaced with your own identifying
16 +.\" information: Portions Copyright [yyyy] [name of copyright owner]
17 +.Dd October 29, 2017
18 +.Dt VT 7I
19 +.Os
20 +.Sh NAME
21 +.Nm vt
22 +.Nd Solaris virtual console interface
23 +.Sh SYNOPSIS
24 +.In sys/kd.h
25 +.In sys/vt.h
26 +.Sh DESCRIPTION
23 27 The virtual console device driver \(em also known as virtual terminal
24 -(\fBVT\fR) \(em is a layer of management functions that provides facilities to
28 +.Pq Sy VT
29 +\(em is a layer of management functions that provides facilities to
25 30 support and switch between multiple screen faces on a single physical device.
26 -.sp
27 -.LP
28 -VT's are accessed in the same way as other devices. The \fBopen\fR(2) system
29 -call is used to open the virtual console and \fBread\fR(2), \fBwrite\fR(2) and
30 -\fBioctl\fR(2) are used in the normal way and support the functionality of the
31 -underlying device. In addition, some virtual console-specific ioctls are
31 +.Pp
32 +VT's are accessed in the same way as other devices.
33 +The
34 +.Xr open 2
35 +system
36 +call is used to open the virtual console and
37 +.Xr read 2 ,
38 +.Xr write 2
39 +and
40 +.Xr ioctl 2
41 +are used in the normal way and support the functionality of the
42 +underlying device.
43 +In addition, some virtual console-specific ioctls are
32 44 provided and described below.
33 -.sp
34 -.LP
35 -The VT provides a link between different screen faces and the device. The
36 -\fBactive virtual console\fR corresponds to the currently visible screen face.
45 +.Pp
46 +The VT provides a link between different screen faces and the device.
47 +The
48 +.Sy "active virtual console"
49 +corresponds to the currently visible screen face.
37 50 Device input is directed to the active console and any device-specific modes
38 51 that change on a per virtual terminal basis are set to the characteristics
39 52 associated with the active console.
40 -.sp
41 -.LP
42 -You manage VT's by intercepting keyboard sequences ("hot key"). To maintain
43 -consistency with Xserver, the virtual console device driver supports the Ctrl,
44 -Alt, F# and arrow keys.
45 -.sp
46 -.LP
47 -The sequence \fBAltL + F#\fR (where AltL represents the Alt key and F#
48 -represents function keys 1 through 12) is used to select virtual console 1-12.
49 -The sequence \fBAltGraph + F#\fR (where AltGraph represents the right Alt key
50 -and F# represent function keys 1 through 12) is for virtual console 13-24.
51 -\fBAlt + F1\fR chooses the system console (also known as virtual console 1).
52 -The sequence \fBAlt + ->\fR (where ">" represents the right directional arrow)
53 -selects the next VT in a circular ring fashion and \fBAlt + <-\fR ( where "<"
54 -represents the left directional arrow) changes to the previous console in a
55 -circular fashion. The sequence \fBAlt + ^\fR (where "^" represents the up
56 -directional arrow) is for the last used console.
57 -.sp
58 -.LP
59 -Virtual console switching can be done automatically (\fBVT_AUTO\fR) on receipt
60 -of a ``hot-key'' or by the process owning the VT (\fBVT_PROCESS\fR). When
61 -performed automatically, the process associated with the virtual console is
62 -unaware of the switch. Saving and restoring the device are handled by the
63 -underlying device driver and the virtual console manager. Note that automatic
64 -switching is the default mode.
65 -.sp
66 -.LP
67 -When a ``hot-key'' is sent when in process-controlled switch mode, the process
53 +.Pp
54 +You manage VT's by intercepting keyboard sequences
55 +.Pq Dq "hot key" .
56 +To maintain consistency with Xserver, the virtual console device driver
57 +supports the Ctrl, Alt, F# and arrow keys.
58 +.Pp
59 +The sequence
60 +.Sy "AltL + F#"
61 +(where AltL represents the left Alt key and F# represents function keys 1
62 +through 12) is used to select virtual console 1-12.
63 +The sequence
64 +.Sy "AltGraph + F#"
65 +(where AltGraph represents the right Alt key and F# represent function keys 1
66 +through 12) is for virtual console 13-24.
67 +.Sy "Alt + F1"
68 +chooses the system console (also known as virtual console 1).
69 +The sequence
70 +.Sy "Alt + \(->"
71 +(where "\(->" represents the right directional arrow)
72 +selects the next VT in a circular ring fashion and
73 +.Sy "Alt + \(<-"
74 +(where "\(<-" represents the left directional arrow) changes to the previous
75 +console in a circular fashion.
76 +The sequence
77 +.Sy "Alt + \(ua"
78 +(where "\(ua" represents the up directional arrow) is for the last used console.
79 +.Pp
80 +Virtual console switching can be done automatically
81 +.Pq Dv VT_AUTO
82 +on receipt of a
83 +.Dq hot-key
84 +or by the process owning the VT
85 +.Pq Dv VT_PROCESS .
86 +When performed automatically, the process associated with the virtual console is
87 +unaware of the switch.
88 +Saving and restoring the device are handled by the
89 +underlying device driver and the virtual console manager.
90 +Note that automatic switching is the default mode.
91 +.Pp
92 +When a
93 +.Dq hot-key
94 +is sent when in process-controlled switch mode, the process
68 95 owning the VT is sent a signal (relsig) it has specified to the virtual console
69 -manager (see \fBsignal\fR(3C)) requesting the process to release the physical
70 -device. At this point, the virtual console manager awaits the \fBVT_RELDISP\fR
71 -ioctl from the process. If the process refuses to release the device (meaning
72 -the switch does not occur), it performs a \fBVT_RELDISP\fR ioctl with an
73 -argument of 0 (zero). If the process desires to release the device, it saves
96 +manager (see
97 +.Xr signal 3C )
98 +requesting the process to release the physical device.
99 +At this point, the virtual console manager awaits the
100 +.Dv VT_RELDISP
101 +ioctl from the process.
102 +If the process refuses to release the device (meaning
103 +the switch does not occur), it performs a
104 +.Dv VT_RELDISP
105 +ioctl with an argument of 0 (zero).
106 +If the process desires to release the device, it saves
74 107 the device state (keyboard, display, and I/O registers) and then performs a
75 -\fBVT_RELDISP\fR with an argument of 1 to complete the switch.
76 -.sp
77 -.LP
108 +.Dv VT_RELDISP
109 +with an argument of 1 to complete the switch.
110 +.Pp
78 111 A ring of VT's can contain intermixed auto mode and process control mode
79 -consoles. When an auto mode process becomes active, the underlying device
112 +consoles.
113 +When an auto mode process becomes active, the underlying device
80 114 driver and the virtual console manager handle the restoring of the device.
81 115 Process control mode processes are sent a specified signal (acqsig) when they
82 -become the active console. The process then restores the device state
83 -(keyboard, display, and I/O registers) and performs \fBVT_RELDISP\fR ioctl with
84 -an argument of \fBVT_ACKACQ\fR to complete the switching protocol.
85 -.sp
86 -.LP
87 -The modify-operations ioctls (\fBVT_SETMODE\fR, \fBVT_RELDISP\fR,
88 -\fBVT_WAITACTIVE\fR, \fBKDSETMODE\fR) check if the VT is the controlling tty of
89 -the calling process. If not, the sys_devices privilege is enforced.
90 -\fBVT_ACTIVATE\fR requires the sys_devices privilege. Note that there is no
116 +become the active console.
117 +The process then restores the device state
118 +(keyboard, display, and I/O registers) and performs
119 +.Dv VT_RELDISP
120 +ioctl with an argument of
121 +.Dv VT_ACKACQ
122 +to complete the switching protocol.
123 +.Pp
124 +The modify-operations ioctls
125 +.Po
126 +.Dv VT_SETMODE ,
127 +.Dv VT_RELDISP ,
128 +.Dv VT_WAITACTIVE ,
129 +.Dv KDSETMODE
130 +.Pc
131 +check if the VT is the controlling tty of
132 +the calling process.
133 +If not, the sys_devices privilege is enforced.
134 +.Dv VT_ACTIVATE
135 +requires the sys_devices privilege.
136 +Note that there is no
91 137 controlling tty and privilege check for query/view operations.
92 -.SH IOCTLS
93 -.sp
94 -.LP
138 +.Sh IOCTLS
95 139 The following ioctls apply to devices that support virtual consoles:
96 -.sp
97 -.ne 2
98 -.na
99 -\fB\fBVT_ENABLED\fR\fR
100 -.ad
101 -.sp .6
102 -.RS 4n
103 -Queries to determine if VT functionality is available on the system. The
104 -argument is a pointer to an integer. If VT functionality is available, the
140 +.Bl -tag -width VT_ENABLED
141 +.It Dv VT_ENABLED
142 +Queries to determine if VT functionality is available on the system.
143 +The argument is a pointer to an integer.
144 +If VT functionality is available, the
105 145 integer is 1, otherwise it is 0.
106 -.RE
107 -
108 -.sp
109 -.ne 2
110 -.na
111 -\fB\fBVT_OPENQRY\fR\fR
112 -.ad
113 -.sp .6
114 -.RS 4n
115 -Finds an available VT. The argument is a pointer to an integer. The integer is
146 +.It Dv VT_OPENQRY
147 +Finds an available VT.
148 +The argument is a pointer to an integer.
149 +The integer is
116 150 filled in with the number of the first available console that no other process
117 -has open (and hence, is available to be opened). If there are no available
151 +has open (and hence, is available to be opened).
152 +If there are no available
118 153 VT's, -1 is filled in.
119 -.RE
120 -
121 -.sp
122 -.ne 2
123 -.na
124 -\fB\fBVT_GETMODE\fR\fR
125 -.ad
126 -.sp .6
127 -.RS 4n
128 -Determines the VT's current mode, either \fBVT_AUTO\fR or \fBVT_PROCESS\fR. The
154 +.It Dv VT_GETMODE
155 +Determines the VT's current mode, either
156 +.Dv VT_AUTO
157 +or
158 +.Dv VT_PROCESS .
159 +The
129 160 argument is the address of the following structure, as defined in
130 -<\fBsys/vt.h\fR>
131 -.sp
132 -.in +2
133 -.nf
161 +.In sys/vt.h
162 +.Bd -literal -offset 2n
134 163 struct vt_mode {
135 - char mode; /* VT mode */
136 - char waitv; /* not used */
137 - short relsig;/* signal to use for release request */
138 - short acqsig;/* signal to use for display acquired */
139 - short frsig;/* not used */
140 - }
164 + char mode; /* VT mode */
165 + char waitv; /* not used */
166 + short relsig; /* signal to use for release request */
167 + short acqsig; /* signal to use for display acquired */
168 + short frsig; /* not used */
169 +}
141 170
142 - /* Virtual console Modes */
143 - #define VT_AUTO 0 /* automatic VT switching */
144 - #define VT_PROCESS 1 /* process controls switching */
145 -
146 -
147 - The structure will be filled in with the current value
148 - for each field.
149 -.fi
150 -.in -2
151 -
152 -.RE
153 -
154 -.sp
155 -.ne 2
156 -.na
157 -\fB\fBVT_SETMODE\fR\fR
158 -.ad
159 -.sp .6
160 -.RS 4n
161 -Sets the VT mode. The argument is a pointer to a vt_mode structure as defined
162 -above. The structure should be filled in with the desired mode. If
163 -process-control mode is specified, the signals used to communicate with the
164 -process should be specified. If any signals are not specified (value is zero),
165 -the signal default is \fBSIGUSR1\fR (for relsig and acqsig).
166 -.RE
167 -
168 -.sp
169 -.ne 2
170 -.na
171 -\fB\fBVT_RELDISP\fR\fR
172 -.ad
173 -.sp .6
174 -.RS 4n
171 +/* Virtual console Modes */
172 +#define VT_AUTO 0 /* automatic VT switching */
173 +#define VT_PROCESS 1 /* process controls switching */
174 +.Ed
175 +.Pp
176 +The structure will be filled in with the current value for each field.
177 +.It Dv VT_SETMODE
178 +Sets the VT mode.
179 +The argument is a pointer to a vt_mode structure as defined above.
180 +The structure should be filled in with the desired mode.
181 +If process-control mode is specified, the signals used to communicate with the
182 +process should be specified.
183 +If any signals are not specified (value is zero), the signal default is
184 +.Dv SIGUSR1
185 +(for relsig and acqsig).
186 +.It Dv VT_RELDISP
175 187 Tells the VT manager if the process releases (or refuses to release) the
176 -display. An argument of 1 indicates the VT is released. An argument of 0
177 -indicates refusal to release. The \fBVT_ACKACQ\fR argument indicates if
178 -acquisition of the VT has been completed.
179 -.RE
180 -
181 -.sp
182 -.ne 2
183 -.na
184 -\fB\fBVT_ACTIVATE\fR\fR
185 -.ad
186 -.sp .6
187 -.RS 4n
188 +display.
189 +An argument of 1 indicates the VT is released.
190 +An argument of 0 indicates refusal to release.
191 +The
192 +.Dv VT_ACKACQ
193 +argument indicates if acquisition of the VT has been completed.
194 +.It Dv VT_ACTIVATE
188 195 Makes the VT specified in the argument the active VT (in the same manner as if
189 -a hotkey initiated the switch). If the specified VT is not open or does not
190 -exist, the call fails and errno is set to \fBENXIO\fR.
191 -.RE
192 -
193 -.sp
194 -.ne 2
195 -.na
196 -\fB\fBVT_WAITACTIVE\fR\fR
197 -.ad
198 -.sp .6
199 -.RS 4n
196 +a hotkey initiated the switch).
197 +If the specified VT is not open or does not exist, the call fails and errno is
198 +set to
199 +.Er ENXIO .
200 +.It Dv VT_WAITACTIVE
200 201 If the specified VT is currently active, this call returns immediately.
201 202 Otherwise, it sleeps until the specified VT becomes active, at which point it
202 203 returns.
203 -.RE
204 -
205 -.sp
206 -.ne 2
207 -.na
208 -\fB\fBVT_GETSTATE\fR\fR
209 -.ad
210 -.sp .6
211 -.RS 4n
212 -Obtains the active VT number and a list of open VTs. The argument is an address
213 -to the following structure:
214 -.sp
215 -.in +2
216 -.nf
204 +.It Dv VT_GETSTATE
205 +Obtains the active VT number and a list of open VTs.
206 +The argument is an address to the following structure:
207 +.Bd -literal -offset 2n
217 208 struct vt_stat {
218 - unsigned short v_active, /* number of the active VT */
219 - v_signal, /* not used */
220 - v_state; /* count of open VTs. For every 1 in this
221 - field, there is an open VT */
222 - }
223 -.fi
224 -.in -2
225 -
226 -With \fBVT_GETSTATE\fR, the VT manager first gets the number of the active VT,
209 + unsigned short v_active, /* number of the active VT */
210 + v_signal, /* not used */
211 + /*
212 + * count of open VTs. For every 1 in this
213 + * field, there is an open VT
214 + */
215 + v_state;
216 +}
217 +.Ed
218 +.Pp
219 +With
220 +.Dv VT_GETSTATE ,
221 +the VT manager first gets the number of the active VT,
227 222 then determines the number of open VTs in the system and sets a 1 for each open
228 -VT in v_state. Next, the VT manager transfers the information in structure
229 -\fBvt_stat\fR passed by the user process.
230 -.RE
231 -
232 -.sp
233 -.ne 2
234 -.na
235 -\fB\fBKDGETMODE\fR\fR
236 -.ad
237 -.sp .6
238 -.RS 4n
223 +VT in v_state.
224 +Next, the VT manager transfers the information in structure
225 +.Vt vt_stat
226 +passed by the user process.
227 +.It Dv KDGETMODE
239 228 Obtains the text/graphics mode associated with the VT.
240 -.sp
241 -.in +2
242 -.nf
243 - #define KD_TEXT 0
244 - #define KD_GRAPHICS 1
245 -.fi
246 -.in -2
247 -
248 -.RE
249 -
250 -.sp
251 -.ne 2
252 -.na
253 -\fB\fBKDSETMODE\fR\fR
254 -.ad
255 -.sp .6
256 -.RS 4n
229 +.Bd -literal -offset 2n
230 +#define KD_TEXT 0
231 +#define KD_GRAPHICS 1
232 +.Ed
233 +.It Dv KDSETMODE
257 234 Sets the text/graphics mode to the VT.
258 -.sp
259 -\fBKD_TEXT\fR indicates that console text is displayed on the screen. Normally
260 -\fBKD_TEXT\fR is combined with \fBVT_AUTO\fR mode for text console terminals,
235 +.It Dv KD_TEXT
236 +indicates that console text is displayed on the screen.
237 +Normally
238 +.Dv KD_TEXT
239 +is combined with
240 +.Dv VT_AUTO
241 +mode for text console terminals,
261 242 so that the console text display automatically is saved and restored on the hot
262 243 key screen switches.
263 -.sp
264 -\fBKD_GRAPHICS\fR indicates that the user/application (usually Xserver) has
265 -direct control of the display for this VT in graphics mode. Normally
266 -\fBKD_GRAPHICS\fR is combined with \fBVT_PROCESS\fR mode for this VT indicating
267 -direct control of the display in graphics mode. In this mode, all writes to the
244 +.Pp
245 +.Dv KD_GRAPHICS
246 +indicates that the user/application (usually Xserver) has
247 +direct control of the display for this VT in graphics mode.
248 +Normally
249 +.Dv KD_GRAPHICS
250 +is combined with
251 +.Dv VT_PROCESS
252 +mode for this VT indicating
253 +direct control of the display in graphics mode.
254 +In this mode, all writes to the
268 255 VT using the write system call are ignored, and you must save and restore the
269 256 display on the hot key screen switches.
270 -.sp
271 -When the mode of the active VT is changed from \fBKD_TEXT\fR to
272 -\fBKD_GRAPHICS\fR or a VT of \fBKD_GRAPHICS\fR mode is made active from a
273 -previous active VT of \fBKD_TEXT\fR mode, the virtual console manager initiates
274 -a \fBKDSETMODE\fR ioctl with \fBKD_GRAPHICS\fR as the argument to the
275 -underlying console frame buffer device indicating that current display is
276 -running into graphics mode.
277 -.sp
278 -When the mode of the active VT is changed from \fBKD_GRAPHICS\fR to
279 -\fBKD_TEXT\fR or a VT of \fBKD_TEXT\fR mode is actived from a previous active
280 -VT of \fBKD_GRAPHICS\fR mode, the virtual console manager initiates a
281 -\fBKDSETMODE\fR ioctl with \fBKD_TEXT\fR as the argument to the underlying
282 -console frame buffer device indicating that current display is running into
283 -console text mode.
284 -.RE
285 -
286 -.SH FILES
287 -.sp
288 -.ne 2
289 -.na
290 -\fB\fB/dev/vt/#\fR \fR
291 -.ad
292 -.RS 14n
257 +.Pp
258 +When the mode of the active VT is changed from
259 +.Dv KD_TEXT
260 +to
261 +.Dv KD_GRAPHICS
262 +or a VT of
263 +.Dv KD_GRAPHICS
264 +mode is made active from a
265 +previous active VT of
266 +.Dv KD_TEXT
267 +mode, the virtual console manager initiates a
268 +.Dv KDSETMODE
269 +ioctl with
270 +.Dv KD_GRAPHICS
271 +as the argument to the underlying console frame buffer device indicating that
272 +current display is running into graphics mode.
273 +.Pp
274 +When the mode of the active VT is changed from
275 +.Dv KD_GRAPHICS
276 +to
277 +.Dv KD_TEXT
278 +or a VT of
279 +.Dv KD_TEXT
280 +mode is actived from a previous active VT of
281 +.Dv KD_GRAPHICS
282 +mode, the virtual console manager initiates a
283 +.Dv KDSETMODE
284 +ioctl with
285 +.Dv KD_TEXT
286 +as the argument to the underlying console frame buffer device indicating that
287 +current display is running into console text mode.
288 +.El
289 +.Sh FILES
290 +.Bl -tag -width xxxxxxxxx
291 +.It Pa /dev/vt/#
293 292 VT devices.
294 -.RE
295 -
296 -.SH SEE ALSO
297 -.sp
298 -.LP
299 -\fBioctl\fR(2), \fBsignal\fR(3C), \fBwscons\fR(7D)
300 -.SH NOTES
301 -.sp
302 -.LP
293 +.El
294 +.Sh SEE ALSO
295 +.Xr ioctl 2 ,
296 +.Xr signal 3C ,
297 +.Xr wscons 7D
298 +.Sh NOTES
303 299 By default, there are only five virtual console instance login prompts running
304 -on \fB/dev/vt/#\fR (where "#" represents 2 to 6) in addition to the system
305 -console running on \fB/dev/console\fR. Normally Xorg uses the seventh virtual
306 -console (\fB/dev/vt/7\fR.) To switch from consoles to Xserver (which normally
300 +on
301 +.Pa /dev/vt/#
302 +(where "#" represents 2 to 6) in addition to the system
303 +console running on
304 +.Pa /dev/console .
305 +Normally Xorg uses the seventh virtual console
306 +.Pq Pa /dev/vt/7 .
307 +To switch from consoles to Xserver (which normally
307 308 picks up the first available virtual console), use [ Ctrl + ] Alt + F7 .
308 -.sp
309 -.in +2
310 -.nf
311 - # svcs | grep login
312 - online 17:49:11 svc:/system/console-login:default
313 - online 17:49:11 svc:/system/console-login:vt2
314 - online 17:49:11 svc:/system/console-login:vt3
315 - online 17:49:11 svc:/system/console-login:vt4
316 - online 17:49:11 svc:/system/console-login:vt5
317 - online 17:49:11 svc:/system/console-login:vt6
318 -
319 - console-login:default is for the system console, others for
320 - virtual consoles.
321 -
322 - You can modify properties/disable/enable and remove/add
323 - virtual consoles using smf(5):
324 -
325 - # svccfg -s console-login add vt8
326 - # svccfg -s console-login:vt8 setprop ttymon/device=astring: "/dev/vt/8"
327 - # svcadm enable console-login:vt8
328 -.fi
329 -.in -2
330 -
309 +.Bd -literal -offset indent
310 +# svcs | grep login
311 +online 17:49:11 svc:/system/console-login:default
312 +online 17:49:11 svc:/system/console-login:vt2
313 +online 17:49:11 svc:/system/console-login:vt3
314 +online 17:49:11 svc:/system/console-login:vt4
315 +online 17:49:11 svc:/system/console-login:vt5
316 +online 17:49:11 svc:/system/console-login:vt6
317 +.Ed
318 +.Pp
319 +.Sy console-login:default
320 +is for the system console, others for virtual consoles.
321 +.Pp
322 +You can modify properties/disable/enable and remove/add virtual consoles using
323 +.Xr smf 5 :
324 +.Bd -literal -offset indent
325 +# svccfg -s console-login add vt8
326 +# svccfg -s console-login:vt8 setprop \e
327 + ttymon/device=astring: "/dev/vt/8"
328 +# svcadm enable console-login:vt8
329 +.Ed
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX