Solaris Handbook for Sun Frame Buffers

Chapter 9 Multiple Monitors on a System

This chapter describes how to use multiple monitors on a SPARCstation system. Skip this chapter if you do not run multiple monitors on your system.

Most SPARCstations and UltraSPARC systems support multiple monitor configurations, providing that additional SBus slots (or PCI slots for some systems) are available.

The procedures described in this chapter require some knowledge of UNIX and basic editing tools such as vi or emacs.

Multiple Monitor Configuration

Sun Ultra Systems

To run more than one frame buffer, you need to modify your /etc/dt/config/Xservers file. Identify the device name for the frame buffers you are using. To do this:

  1. Become superuser and open the /etc/dt/config/Xservers file.

    # cd /etc/dt/config
    # vi Xservers

  2. Modify the file by adding the device locations for the applicable frame buffers being used.

The following example shows the Xservers configuration file modified for one Creator (ffb0) card and two Expert3D cards (ifb0 and ifb1):

:0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -dev /dev/fbs/ffb0 

-dev /dev/fbs/ifb1 -dev /dev/fbs/ifb0 -nobanner

Sun SPARCstation SBus Systems

When the system is booted, it looks for the sbus-probe-list, which determines the order in which the SBus devices are addressed. For the SPARCstation 10, SBus address f is reserved for the CPU and should always be the first address in the sbus-probe-list.

To determine the system information and sbus-probe-list, type:

% eeprom

The addressing numbers are 0, 1, 2, and 3. However, 0 is reserved for the CPU and should always be the first address in the sbus-probe-list for all SPARCstation systems except the SPARCstation 10 system.

The following system information and sbus-probe-list (starting with f) will be displayed if you have a SPARCstation 10 system:

% eeprom

Device File Names

If you are using OpenWindows(TM) software on multiple monitors, you should be familiar with the way frame buffer devices are assigned to UNIX device file names. Multiple frame buffers used with OpenWindows software require that you supply UNIX device file names for frame buffers on the command line when either is started.

The UNIX boot messages identify the frame buffer as /dev/fb (where fb is the type of frame buffer). The /dev/fb usually has another device file name such as /dev/fbs/cgsix0, /dev/fbs/bwtwo0, or /dev/fbs/leo0, depending on the type of frame buffer. When a second frame buffer is added, the system decides which is /dev/fb based on the SBus slot number of each frame buffer and the sbus-probe-list EEPROM variable. The /dev/fb is the frame buffer in the first SBus slot defined in the sbus-probe-list.

If a TurboGXplus card is added to the system with an existing GX frame buffer, the sbus-probe-list also determines which is /dev/fbs/cgsix0 and which is /dev/fbs/cgsix1.

For example, assume that the sbus-probe-list on a SPARCstation 10 system has the default value of f0123 and that SBus slots 2 and 3 contain TurboGXplus cards. The TurboGXplus card in slot 2 will be known as /dev/fb and /dev/fbs/cgsix0; the TurboGXplus card in slot 3 will be known as /dev/fbs/cgsix1.

The command line examples shown in this chapter use possible device file names to refer to frame buffers. Substitute the device file name that is appropriate for your system.

Checking the Available Frame Buffers

If you do not know the names of the frame buffer devices in your system, check them by entering:

% /etc/dmesg | more

The system configuration is displayed, including the types of available frame buffers in your system and the slots they occupy. The list of messages might be lengthy. Look for the lines that start with cg or leo (for color frame buffers) and bw (for black and white frame buffers).

cgsix0 at SBus0: SBus slot 1 0x0 SBus level 5 sparc ipl 7
cgsix0 is /sbus@1,f8000000/chsix@1,0
cgsix0: screen 1152x900, single buffered, 1M mappable, rev1

Note -

Executing the dmesg command may result in numerous messages. The system configuration messages shown below may not even be displayed. In this case, reboot your system. After rebooting, repeat the command shown previously.

Starting OpenWindows from the Console

The following is an example of a .login file configured to start OpenWindows from the console.

# if possible, start the windows system.  Give user a chance to bail out
if ( `tty` == "/dev/console" && $TERM == "sun" ) then
	if ( ${?OPENWINHOME} == 0 ) then
			setenv OPENWINHOME /usr/openwin
	echo ""
	echo -n "Starting OpenWindows in 5 seconds (type Control-C to interrupt)"
	sleep 5
	echo ""
	clear					# get rid of annoying cursor rectangle
	logout					# logout after leaving windows system


Running OpenWindows on Multiple Monitors

  1. To run multiple monitors with OpenWindows Version 3

  1. Set up the OpenWindows Version 3 environment by typing the following command (use the actual pathname for /usr/local where OpenWindows Version 3 software is located):

    % setenv OPENWINHOME [[/usr/local/openwin]]

  2. Verify that a device file already exists for the desired frame buffer by typing:

    # ls -l /dev/fbs/cgsix1

    If the device file already exists, a message similar to the one shown below is displayed. If so, skip Steps 3, 4, and 5 and go to Step 6. If the "not found" message is displayed, continue to Step 3.

    crw-rw-rw- 1 root      67,   0 Jan 10 1991 /dev/fbs/cgsix1

  3. Become superuser, halt the system, and perform a reconfiguration boot, as follows:

    # boot -r

    The system probes all of the attached hardware devices and creates the device file for the second frame buffer.

  4. Verify the newly created file by typing:

    # ls -l /dev/fbs/cgsix1

    A message similar to the following is displayed, indicating that the device file was successfully created:

    crw-rw-rw- 1 root      67,   0 Jan 10 1991 /dev/fbs/cgsix1

  5. Exit the superuser mode.

  6. Specify the screens that you want to run by typing:

    % $OPENWINHOME/bin/openwin -dev /dev/fb -dev /dev/fbs/cgsix1

    Note -

    The order in which the devices are listed is important. The first device corresponds to the left screen; the second device corresponds to the right screen. The names of your devices (for example, /dev/fbs/cgsix1) may differ. Use the device file name that is appropriate for your system.

Changing the Polling Order

This section provides information about the SBus polling order and how to change it. Skip this section if you know the order in which the SBus devices are addressed, or if you do not want to change the current order.

SBus Addresses

Two-slot SPARCstation systems, such as the SPARCstation IPX and LX, have four SBus addresses: 0, 1, 2, and 3. SBus address 0 is located on the main logic board and is reserved for system use. SBus slots (SBus addresses) 1 and 2 are for customer-installable SBus cards. SBus slots 1 and 2 are the only physical slots. SBus address 3 is the frame buffer on the main logic board.

The SPARCstation 2 system has no on-board frame buffer. Slots 1, 2, and 3 in this system are used to install SBus cards.

There is also no on-board frame buffer on the SPARCstation 10 and SPARCstation 20 systems. SBus address f is reserved for the CPU and should always be the first address in the sbus-probe-list. In SPARCstation 10 and 20 systems, SBus address lines 0, 1, 2, and 3 are used for customer-installable SBus cards.

Polling Order

The polling order is determined by the sbus-probe-list parameter in the system OpenBoot(TM) PROM. For the SPARCstation 10 and 20 systems, you must begin with f. This parameter is set up to poll the slots in order from 0 to 3. You can change the order of slots 1, 2, and 3, but you must begin with slot 0.

For example, if you install a frame buffer card into an SBus slot in SPARCclassic(TM), SPARCstation IPX, and SPARCstation LX systems, the system looks first for the frame buffer at the SBus slot rather than on the on-board frame buffer. If it finds a frame buffer at an SBus slot, the system establishes the video connection at that slot and looks no further. To have the system look first at the on-board frame buffer, you have to change the polling order to 0, 3, 1, 2.

Note -

If you change the sbus-probe-list in a SPARCstation IPX or LX system and select 3 as the console device, make sure that a monitor is attached to the on-board frame buffer. Otherwise, the system will not recognize any other monitor regardless of polling order.

Changing the sbus-probe-list

The following procedure describes how to change the sbus-probe-list.

Caution - Caution -

The procedure described in this section is for experienced SunOS(TM) software users only. If you have only one monitor or do not need to change the probe list, do not follow this procedure. Any changes made to the system information displayed after typing the eeprom command will alter the system configuration.

  1. To change the sbus-probe-list

  1. As superuser, type:

    # eeprom sbus-probe-list=0xyz (or fwxyz for a SPARCstation 10 system)

    where xyz or wxyz is the order of SBus slots to be probed.

    For example, in a SPARCclassic, SPARCstation IPX, and SPARCstation LX configuration, 0312 would cause SBus slot 3 (on-board frame buffer) to be probed first. After slot 3 is probed, SBus slots 1 and 2 will be probed, respectively. Here is what you would type for this example

    # eeprom sbus-probe-list=0312

    Figure 9-1 SBus Probe List Explanation


The leftmost character, except 0, in eeprom sbus-probe-list indicates the device that will be probed first. This will be the console device, regardless of its physical location.

Note -

If you are using a SPARCstation 10 or 20 system, the leftmost character in sbus-probe-list will be f (not 0) which is reserved for the CPU.

  1. Be sure a monitor is connected to the frame buffer identified as the console.

  2. Reboot the system.