Solaris Consoles and the Kernel Terminal Emulator
The role of the kernel terminal emulator is to render text onto the
console frame buffer in the proper position and representation determined by the frame
buffer's screen height, width, and pixel depth mode. The terminal emulator also drives
scrolling, controls a software cursor, and interprets ANSI terminal escape sequences. The terminal
emulator accesses the console frame buffer in either VGA text mode or pixel
mode, depending upon the graphics card. To be used as a Solaris console
frame buffer driver, your frame buffer driver must be compatible with the Solaris
kernel terminal emulator. The target platform is the most significant factor that determines
whether you need to modify your frame buffer driver to make your driver
compatible with the Solaris kernel terminal emulator.
x86 platforms – Console frame buffer drivers do not need to be modified because x86 console frame buffer drivers already support the console frame buffer interfaces.
SPARC platforms – Console frame buffer drivers should use the interfaces described in this appendix to enable the driver to interact with the Solaris kernel terminal emulator.
x86 Platform Console Communication
On x86 platforms, the Solaris kernel terminal emulator module (tem) uses VGA
text mode exclusively to interact with the vgatext module. The vgatext module uses
industry standard VGA text mode to interact with x86 compatible frame buffer devices.
Because the vgatext module already supports the console frame buffer interfaces, x86 frame
buffer drivers are compatible with the kernel tem module. You do not need
to add special interfaces to x86 frame buffer drivers.
The remainder of this appendix applies to SPARC platforms only.
SPARC Platform Console Communication
SPARC frame buffer drivers typically do not operate in VGA text mode. SPARC
frame buffer drivers typically are required to send pixel patterns that depict the
text and images displayed. The kernel tem requires SPARC drivers to support specific
interfaces to facilitate rendering data to the screen, perform scrolling, and display a
text cursor. How the driver actually renders data sent from the tem onto
the screen depends on the device. The driver typically draws the data into
video memory according to the hardware and video mode.
The Solaris OS provides interfaces that enable the kernel terminal emulator to drive
compatible console frame buffers directly. The advantages of converting a driver to be
compatible with the kernel terminal emulator are:
Dramatically improved performance, particularly for scrolling
Enhanced ANSI text color capabilities
The ability to start a login session on the console frame buffer even when the system console stream is directed out the serial port
SPARC console frame buffer drivers are not required to be compatible with the
kernel terminal emulator. If the console frame buffer driver is not compatible with
the kernel terminal emulator, the system uses the FCode terminal emulator in the
OpenBoot PROM.
The console frame buffer is identified through the EEPROM screen environment variable. The
system determines whether the console frame buffer is compatible with the kernel terminal
emulator module by checking whether the frame buffer driver exports the tem-support DDI
property. If the tem-support property is exported, then the system issues the VIS_DEVINIT
I/O control (ioctl) command to the frame buffer driver during system boot, while configuring
the console. If the tem-support DDI property is exported and the VIS_DEVINIT ioctl
command succeeds and returns a compatible version number to the tem, the system configures
the system console to utilize that frame buffer driver through the kernel terminal
emulator. See the ioctl(9E) man page for information about the I/O control driver
entry point.
SPARC drivers that support the kernel terminal emulator should export the tem-support DDI
property. This property indicates that the driver supports the kernel terminal emulator.
If a frame buffer driver exports the tem-support DDI property, then that driver will
be handled early in the boot process, while the console is being
configured. If a frame buffer driver does not export the tem-support property, then that
driver might not be handled early enough in the boot process.
- tem-support
When set to 1, this DDI property indicates that this driver is compatible with the console kernel frame buffer interface.
The kernel terminal emulator module interacts with the console frame buffer driver through
two major interfaces:
The following section provides detailed information.