vt(4i) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

vt(4i)

Ioctls for a class of drivers or subsystems                             vt(4I)



NAME
       vt - Solaris virtual console interface

SYNOPSIS
       #include <sys/kd.h>


       #include <sys/vt.h>

DESCRIPTION
       The virtual console device driver — also known as virtual terminal (VT)
       — is a layer of management functions that provides facilities  to  sup‐
       port  and  switch  between  multiple  screen faces on a single physical
       device.


       VT's are accessed in the same way as other devices. The open(2)  system
       call  is  used  to  open  the virtual console and read(2), write(2) and
       ioctl(2) are used in the normal way and support  the  functionality  of
       the  underlying  device.  In  addition,  some  virtual console-specific
       ioctls are provided and described below.


       The VT provides a link between different screen faces and  the  device.
       The  active virtual console corresponds to the currently visible screen
       face. Device input is directed to the active console  and  any  device-
       specific  modes  that change on a per virtual terminal basis are set to
       the characteristics associated with the active console.


       You manage VT's by intercepting  keyboard  sequences  ("hot  key").  To
       maintain  consistency  with  Xserver, the virtual console device driver
       supports the Ctrl, Alt, F# and ARROW keys.


       Under text mode, the sequence Alt + F# (where Alt  represents  the  Alt
       key  and  F#  represents  function keys 1 through 12) is used to select
       virtual console 1-12. The sequence AltGraph + F# (where AltGraph repre‐
       sents the right Alt key and F# represent function keys 1 through 12) is
       for virtual console 13-24. Alt + F1 chooses the  system  console  (also
       known as virtual console 1). The sequence Alt + -> (where —> represents
       the right directional arrow) selects the next VT  in  a  circular  ring
       fashion  and Alt + <- ( where <- represents the left directional arrow)
       changes to the previous console in a circular fashion. The sequence Alt
       +  ^ (where ^ represents the up directional arrow) is for the last used
       console.


       Under graphics mode like Xorg, the sequence Ctrl-Alt  +  F#  should  be
       used  in  place  of  Alt  +  F#.  And the sequence Alt + <arrow> for VT
       switching don't work under Xorg, because this hotkey has  been  defined
       as virtual workspace switching.


       Virtual  console  switching  can  be  done  automatically  (VT_AUTO) on
       receipt of a hot-key or by the process owning the VT (VT_PROCESS). When
       performed  automatically,  the process associated with the virtual con‐
       sole is unaware of the switch. Saving and restoring the device are han‐
       dled  by  the underlying device driver and the virtual console manager.
       Note that automatic switching is the default mode.


       When a hot-key is sent when  in  process-controlled  switch  mode,  the
       process owning the VT is sent a signal (relsig) it has specified to the
       virtual console manager (see  signal(3C))  requesting  the  process  to
       release the physical device. At this point, the virtual console manager
       awaits the VT_RELDISP ioctl from the process. If the process refuses to
       release  the  device (meaning the switch does not occur), it performs a
       VT_RELDISP ioctl with an argument of 0 (zero). If the  process  desires
       to  release  the  device, it saves the device state (keyboard, display,
       and I/O registers) and then performs a VT_RELDISP with an argument of 1
       to complete the switch.


       A  ring  of  VT's  can contain intermixed auto mode and process control
       mode consoles. When an auto mode process becomes active, the underlying
       device  driver  and the virtual console manager handle the restoring of
       the device. Process control mode processes are sent a specified  signal
       (acqsig) when they become the active console. The process then restores
       the device state (keyboard, display, and I/O  registers)  and  performs
       VT_RELDISP  ioctl with an argument of VT_ACKACQ to complete the switch‐
       ing protocol.


       The modify-operations ioctls  (VT_SETMODE,  VT_RELDISP,  VT_WAITACTIVE,
       KDSETMODE)  check  if  the  VT  is  the  controlling tty of the calling
       process. If not, the sys_devices  privilege  is  enforced.  VT_ACTIVATE
       requires  the  sys_devices privilege. Note that there is no controlling
       tty and privilege check for query/view operations.

IOCTLS
       The following ioctls apply to devices that support virtual consoles:

       KDGETMODE

           Obtains the text/graphics mode associated with the VT.



                         #define KD_TEXT         0
                         #define KD_GRAPHICS     1



       KDSETMODE

           Sets the text/graphics mode to the VT.

           KD_TEXT indicates that console text is  displayed  on  the  screen.
           Normally  KD_TEXT  is  combined  with VT_AUTO mode for text console
           terminals, so that the console text display automatically is  saved
           and restored on the hot key screen switches.

           KD_GRAPHICS  indicates  that the user/application (usually Xserver)
           has direct control of the display for this  VT  in  graphics  mode.
           Normally  KD_GRAPHICS  is combined with VT_PROCESS mode for this VT
           indicating direct control of the display in graphics mode. In  this
           mode, all writes to the VT using the write system call are ignored,
           and you must save and restore the display on  the  hot  key  screen
           switches.

           When the mode of the active VT is changed from KD_TEXT to KD_GRAPH‐
           ICS or a VT of KD_GRAPHICS mode is  made  active  from  a  previous
           active  VT of KD_TEXT mode, the virtual console manager initiates a
           KDSETMODE ioctl with KD_GRAPHICS as the argument to the  underlying
           console frame buffer device indicating that current display is run‐
           ning into graphics mode.

           When the mode of the active  VT  is  changed  from  KD_GRAPHICS  to
           KD_TEXT or a VT of KD_TEXT mode is activated from a previous active
           VT of KD_GRAPHICS mode, the virtual  console  manager  initiates  a
           KDSETMODE ioctl with KD_TEXT as the argument to the underlying con‐
           sole frame buffer device indicating that current display is running
           into console text mode.


       VT_ACTIVATE

           Makes  the  VT specified in the argument the active VT (in the same
           manner as if a hotkey initiated the switch). If the specified VT is
           not  open  or  does  not  exist, the call fails and errno is set to
           ENXIO.


       VT_ENABLED

           Queries to determine if VT functionality is available on  the  sys‐
           tem.  The  argument is a pointer to an integer. If VT functionality
           is available, the integer is 1, otherwise it is 0.


       VT_GETMODE

           Determines the VT's current mode, either VT_AUTO or VT_PROCESS. The
           argument  is  the address of the following structure, as defined in
           <sys/vt.h>



             struct vt_mode {
                        char mode;  /* VT  mode */
                        char waitv; /* not used */
                        short relsig;/* signal to use for release request */
                        short acqsig;/* signal to use for display acquired */
                        short frsig;/* not used */
                      }

                      /* Virtual console Modes */
                      #define    VT_AUTO        0 /* automatic VT switching   */
                      #define    VT_PROCESS     1 /* process controls switching */


                      The structure is filled in with the current value
                      for each field.



       VT_GET_CONSUSER

           Returns the target of  /dev/vt/console_user.  The  argument  is  an
           address  of  an  int  variable.  The  number of the VT device which
           /dev/vt/console_user points to is returned. If /dev/vt/console_user
           points to /dev/console, then 0 is returned.


       VT_GETSTATE

           Obtains  the  active VT number and a list of open VTs. The argument
           is an address to the following structure:




             struct vt_stat {
                      unsigned short  v_active, /* number of the active VT */
                                 v_signal, /* not used */
                                 v_state;  /* count of open VTs.  For every 1 in this
                                               field, there is an open VT */
                      }

           With VT_GETSTATE, the VT manager  first  gets  the  number  of  the
           active VT, then determines the number of open VTs in the system and
           sets a 1 for each open VT in v_state. Next, the VT  manager  trans‐
           fers  the  information  in  structure  vt_stat  passed  by the user
           process.


       VT_OPENQRY

           Finds an available VT. The argument is a pointer to an integer. The
           integer is filled in with the number of the first available console
           that no other process has open  (and  hence,  is  available  to  be
           opened). If there are no available VT's, -1 is filled in.


       VT_RELDISP

           Tells  the  VT  manager  if  the  process  releases  (or refuses to
           release) the  display.  An  argument  of  1  indicates  the  VT  is
           released.  An  argument  of  0  indicates  refusal  to release. The
           VT_ACKACQ argument indicates if acquisition of the VT has been com‐
           pleted.


       VT_SET_CONSUSER

           Sets the current VT node (where the ioctl comes from) as the target
           of /dev/vt/console_user. The sys_devices privilege is required  for
           this ioctl.


       VT_SETMODE

           Sets  the VT mode. The argument is a pointer to a vt_mode structure
           as defined above. The  structure  should  be  filled  in  with  the
           desired  mode.  If  process-control  mode is specified, the signals
           used to communicate with the process should be  specified.  If  any
           signals  are  not  specified (value is zero), the signal default is
           SIGUSR1 (for relsig and acqsig).


       VT_WAITACTIVE

           If the specified VT is currently active, this call returns  immedi‐
           ately.  Otherwise, it sleeps until the specified VT becomes active,
           at which point it returns.


FILES
       /dev/vt/#    VT devices.


SEE ALSO
       ioctl(2), signal(3C), wscons(4D)

NOTES
       By default, there are only five virtual console instance login  prompts
       running  on  /dev/vt/# (where "#" represents 2 to 6) in addition to the
       system console running on /dev/console. Normally Xorg uses the  seventh
       virtual  console (/dev/vt/7.) To switch from consoles to Xserver (which
       normally picks up the first available virtual console), use [ Ctrl +  ]
       Alt + F7 .



                # svcs  | grep login
                online         17:49:11 svc:/system/console-login:default
                online         17:49:11 svc:/system/console-login:vt2
                online         17:49:11 svc:/system/console-login:vt3
                online         17:49:11 svc:/system/console-login:vt4
                online         17:49:11 svc:/system/console-login:vt5
                online         17:49:11 svc:/system/console-login:vt6

                console-login:default is for the system console, others for
                virtual consoles.

                You can modify properties/disable/enable and remove/add
                virtual consoles using smf(7):

                # svccfg -s console-login add vt8
                # svccfg -s console-login:vt8 setprop ttymon/device=astring: "/dev/vt/8"
                # svcadm enable console-login:vt8




Oracle Solaris 11.4               13 Nov 2020                           vt(4I)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3