This chapter describes how to change the display resolution on the PGX32 Graphics Accelerator.
You can use the GFXconfig menu-style interface utility any time to change screen resolutions. See the GFXconfig man page for a detailed description.
gfx is the UNIX device name for the PGX32 Graphics Accelerator.
The PGX32 configuration window is displayed (Figure 6-1).
Table 6-1 describes the PGX32 configuration window.
Table 6-1 PGX32 Configuration Window
Function |
Description |
---|---|
Up and down arrows |
Selects the desired PGX32 device to modify. |
Left and right arrows |
Selects the parameter to modify (for example, screen resolution, bit-depth, or synchronization). |
Space bar |
Used to modify the parameter for the given PGX32 device (brings up a menu when applicable). |
T |
Puts a test pattern on the entire display. Press any key to return to the main screen. |
S |
Saves the current settings and exits the configuration window. |
H |
Help |
Q |
Exits the program without saving any changes. |
Sometimes it is convenient to configure the PGX32 card noninteractively. This method is especially useful when configuring many systems identically or when you know which configuration is appropriate for the system.
GFXconfig uses the same conventions as the m64config utility. m64config is used for all ATI-based graphics which includes the Sun Ultra 5 and Sun Ultra 10 motherboard graphics (both 8-bit and 24-bit systems) and PGX 8-bit PCI frame buffer. You can set all of the parameters that can be set using the interactive version by specifying the correct flag followed by a desired value. Table 6-2 describes these parameters.
Table 6-2 Noninteractive Configuration Parameters
Parameter |
Description |
---|---|
-dev device |
Displays the device to configure. |
-res resolution |
Displays the resolution name. |
-res \? |
Shows resolutions. |
-file filename |
Displays the configuration file: system or machine. |
-depth depth |
Shows the bit depth (8 or 24, default is 24). |
-defaults |
Resets the device to the default parameters. |
-24only (true/false) |
Forces all windows to use 24-bit visuals. This may prohibit some 8-bit applications from working. |
-gfile gamma file |
Lists the gamma file. |
-gvalue gamma value |
Lists the gamma value. |
-propt |
Displays the current settings. |
-prconf |
Displays hardware information. |
-help |
Shows usage information. |
By default, the bit depth is set to 8/24 for resolutions of 1280 x 1024 and less, or 8 only for higher resolutions.
To configure the resolution on the PGX32 to 1152 x 900 at 66, type:
# GFXconfig -res 1152x900x66 |
To verify the resolution prior to setting it permanently, add the word "try" after the resolution name. This option displays a test pattern on the screen until you press the Return key. Then you can accept or reject the resolution. For example:
# GFXconfig -res 1152x900x66 try -dev /dev/fbs/gfxp0 |
To set the resolution to 1024 x 768 at 60 with a single TrueColor visual (no 8-bit PseudoColor visual), type:
# GFXconfig -res 1024x768x60 -24only true |
Normally, the default screen resolution is sufficient for most users. However, you may need to change the default resolution if:
You change the X Windows depth from the default listed in the table, then you should configure the screen depth to match the X Windows depth.
The monitor does not "sync up" at the default screen resolution, then you need to choose a different screen resolution.
The general guidelines to follow when changing the default screen resolutions are:
To run the X Windows environment in 8/24 mode, set the screen resolution to 24 bit-depth.
By default, screen resolutions 1280 x 1024 and lower will automatically be set to 24 bit. Higher resolutions will default to 8-bit mode.
Use GFXconfig -i to test a resolution before configuring the screen to that resolution.
The procedures for changing the screen resolution described in this chapter include:
EDID Auto-Detect feature
Output device method
Video-Mode method
Video-Timing method
If you are using a monitor with DDC2B/EDID protocol, the default resolution will be determined using the Auto-Detect feature. With this protocol, the GFX card first checks the Standard Timing Identifiers (taking the first one supported), then tries to match the Established Timings. Failing the above method, the card will default to 1152 x 900 x 66.
The monitor must be turned on prior to booting the system in order for the PGX32 to communicate with it.
The methods described in this appendix will override any information obtained via EDID.
It is possible to specify the screen resolution of PGX32 card via the output-device environment variable by using the format screen:rAxBxC, where:A is the desired horizontal resolution, B is the desired vertical resolution, and C is the desired refresh rate.
The system will check these values against an internal list of resolutions (see Table 6-3), and use the corresponding entry as the screen resolution.
For example, to use VESA1024 x 768 at 75 as the screen resolution, type the following at the ok prompt:
ok setenv output-device screen:r1024x768x75 ok reset |
The new screen resolution will take effect following the reset, and will hold the resolution information until the output-device variable is changed manually.
At the ok prompt in Boot PROM mode, the screen resolution can be easily set on the PGX32 cards by using one of the 34 preinstalled resolution modes. These resolution settings are identified by video modes 0-33 (Table 6-3).
Use video modes 0-25 to select a screen depth of 24 bits, or video modes 26-33 to select a screen depth of 8 bits.
Mode |
Resolution |
---|---|
0 |
640 x 480 @ 60 |
1 |
640 x 480 @ 72 |
2 |
640 x 480 @ 75 |
3 |
640 x 480 @ 85 |
4 |
800 x 600 @ 60 |
5 |
800 x 600 @ 72 |
6 |
800 x 600 @ 75 |
7 |
800 x 600 @ 85 |
8 |
1024 x 768 @ 60 |
9 |
1024 x 768 @ 70 |
10 |
1024 x 768 @ 75 |
11 |
1024 x 768 @ 77 * |
12 |
1024 x 768 @ 85 |
13 |
1024 x 800 @ 85 * |
14 |
1152 x 900 @ 60 |
15 |
1152 x 900 @ 66 * |
16 |
1152 x 900 @ 70 |
17 |
1152 x 900 @ 75 |
18 |
1152 x 900 @ 76 * |
19 |
1152 x 900 @ 85 |
20 |
1280 x 800 @ 76 * |
21 |
1280 x 1024 @ 60 |
22 |
1280 x 1024 @ 67 * |
23 |
1280 x 1024 @ 75 |
24 |
1280 x 1024 @ 76 * |
25 |
1280 x 1024 @ 85 |
26 |
1600 x 1200 @ 66 * |
27 |
1600 x 1200 @ 76 * |
28 |
1600 x 1200 @ 60 |
29 |
1600 x 1200 @ 65 |
30 |
1600 x 1200 @ 70 |
31 |
1600 x 1200 @ 75 |
32 |
1600 x 1200 @ 76 |
33 |
1600 x 1200 @ 80 * |
See "Using nvedit to Modify NVRAM" for a description of nvedit commands.
For example, to set the screen resolution to 1024 x 768 at 60Hz, video-mode 8, type:
ok nvedit 0: 8 value video-mode 1: <ctrl-c> ok nvstore ok setenv use-nvramrc? true ok reset |
The last three commands enable the NVRAM. Without these lines, the changes you make with nvedit will be ignored.
If all of the previously described methods fail for your configuration, it is possible to specify the exact timing numbers for a particular resolution. The last method for setting the screen resolution also uses nvedit. This method is more involved and requires knowledge of all timing parameters for the desired resolution. Therefore, this method is only meant for monitors whose resolutions are not available in the Video-Mode Method. See "Using nvedit to Modify NVRAM" for a description of nvedit commands.
You should use this method only if the previous methods have been unsuccessful.
For example, to set the screen resolution to 1280 x 1024 at 76 Hz:
ok nvedit 0: : video-timing " 1280, 384, 32, 64, \ 1024, 43, 3, 8, 135000000, 0" ; 1: <ctrl-c> ok nvstore ok setenv use-nvramrc? true ok reset |
The syntax is very important. The spaces must be present exactly as they appear in the example.
The last three commands enable the NVRAM. Without these lines, the changes you make with nvedit will be ignored.
Following is a brief description of the ten parameters used in this method.
horizontal resolution (in pixels)
horizontal blanking total
horizontal front porch
horizontal sync width
vertical resolution (in lines)
vertical blanking total
vertical front porch
vertical sync width
dotclock in Hz
sync value (see Table 6-4). Add the values together to select more than one.
Sync Value |
Meaning |
---|---|
1 |
separate sync |
1 |
sync on green |
512 |
positive vertical sync pulse |
1024 |
positive horizontal sync pulse |
2048 |
composite sync |
To obtain the timing parameters required to use this method, contact SunService at 1-800-USA-4SUN with your monitor requirements.
To use the PGX32 software as the console device, use the procedures in the sections that follow.
To use the PGX32 card as the system console in an Sun Ultra 5 or Sun Ultra 10 system as the only frame buffer, first disable the 8-bit or 24-bit onboard graphics, that comes standard with these systems.
To disable the 8-bit or 24-bit graphics device built into the motherboard, type:
ok setenv pcib-probe-list 1,3 ok reset |
Once the system is reset, all console messages are directed to the PGX32 card.
To restore the motherboard 8-bit or 24-bit graphics device as the console for any reason, simply add it back to pcib-probe-list by typing:
ok setenv pcib-probe-list 1,2,3 ok reset |
If no other frame buffers are present in a Sun Ultra 30 or Sun Ultra 60, then the PGX32 card will be the console by default, provided that the board is in a valid probed PCI slot.
The PGX32 card can be made the console device when other secondary frame buffers are present in the system.
The Sun Ultra 5 and Sun Ultra 10 standard onboard graphics and PGX32 card(s) can only coexist in the system if the onboard graphics device is the console. Otherwise, the onboard graphics device must be disabled as described above in ""PGX32 Card as the Only Frame Buffer"."
To configure the PGX32 card as the console when UPA frame buffers are in the system, the output-device variable in NVRAM must be changed to the actual path of the desired PGX32 cards. This path can best be determined by searching for the string TSI in the / tree at the ok prompt.
For example, to find the pci devices, type:
ok cd /pci@1f,4000 ok ls |
When you are in the correct location, you should see at least one entry containing the string TSI (that is, TSI,gfxp@# where # is a digit representing your PGX32 slot location).
Use this entry as the console device for your desired PGX32 card. For example, if the path is /pcid@1f,4000 (as shown above) to the device TSI,gfxp@#, type:
ok setenv output-device /pci@1f,4000/TSI,gfxp@# ok reset |
Replace # with whatever your PGX32 device requires.
Once the system is reset, all console messages will be directed to that PGX32 card.
To restore the default graphics device as the console for any reason, simply set the output-device variable back to its default value of the screen. To do this, type:
ok setenv output-device screen ok reset |
To make the PGX32 the console device when other PCI frame buffers are present in the system, it may be necessary to change the pcia-probe-list to probe the PGX32 slot before that of the secondary frame buffer (in addition to the changes described above in ""PGX32 Card as the Only Frame Buffer".")
Determine the slot numbers that correspond to these frame buffers, then ensure that the PGX32 slot number precedes that of the secondary frame buffer in the pcia-probe-list.
For example, if the PGX32 is located in slot 3, and the secondary frame buffer is located in slot 1, then update the pcia-probe-list so that slot 3 is probed before slot 1. A possible configuration is:
ok setenv pcia-probe-list 3,2,1,4 ok reset |
Once the system is reset, all console messages will be directed to the PGX32 card.
This section describes how to start the OpenWindows environment, Common Desktop Environment (CDE), and the X Display Manager on the PGX32 card.
The following sections describe how to start the OpenWindows environment as a console or with multiple PGX32 cards. The PGX32 device name is gfxp#.
To start the OpenWindows environment on two PGX32 devices, gfxp0 and gfxp1, type:
# openwin -dev /dev/fbs/gfxp0 -dev /dev/fbs/gfxp1 |
In the above example, the gfxp device numbers are 0 and 1. These may be different in your configuration. Please check /dev/fbs/ or dmesg for correct device numbers.
If you have installed CDE and would like CDE to appear on the PGX32 display, you need to modify your /etc/dt/config/Xservers file. If the SunForum card is the console device, you do not need to modify the Xservers file.
The following sample Xservers.gfx file assumes that the SunForum card is the only frame buffer on which to start CDE:
:0 Local Local_uid@console root /usr/openwin/bin/Xsun \ :0 -dev /dev/fbs/gfxp0 -nobanner |
If for some reason the name of your SunForum device is something other than gfxp0, you need to substitute the correct name in the file.
You can add any other desired command line arguments to the end of this line. For example, you can start CDE on multiple displays.
The following example configuration displays CDE on the display named /dev/fbs/gfxp0 and uses the device named /dev/fbs/m640 (the built-in graphics device on the Sun Ultra 5 and Sun Ultra 10 systems) as a secondary frame buffer.
:0 Local Local_uid@console root /usr/openwin/bin/Xsun \ :0 -dev /dev/fbs/gfxp0 -dev /dev/fbs/m640 |
The SunForum card also supports the X display manager (xdm). A simple configuration file is provided as /usr/openwin/lib/X11/xdm/Xservers.
If you had an Xservers file already in place, the SunForum software installation will have saved it as /usr/openwin/lib/X11/xdm/Xservers.nogfx.
By default, the installation will have added the following line, which assumes that the SunForum is the only frame buffer on which to start xdm:
:0 Local Local /usr/openwin/lib/xdm/StartOW \ :0 -dev /dev/fbs/gfxp0 |
You can add any other desired command line arguments to the end of this line. For example, you can start xdm on multiple displays.
The following example configuration displays xdm on the display named /dev/fbs/gfxp0 and uses the device named /dev/fbs/m640 (the built-in graphics device on the Sun Ultra 5 and Sun Ultra 10 systems) as a secondary frame buffer:
:0 Local Local_uid@console root /usr/openwin/bin/Xsun \ :0 -dev /dev/fbs/gfxp0 -dev /dev/fbs/m640 |
See "Video Timing Method" for using the nvedit editor. There are several key sequences that you must use to edit the variables in NVRAM:
Table 6-5 NVRAM Editor
Key Sequence |
Description |
---|---|
Backspace |
Delete the character preceding the cursor |
ctrl-1 |
List NVRAM current values |
ctrl-p |
Move to the previous line |
ctrl-n |
Move to the next line |
ctrl-b |
Move to the previous character |
ctrl-l |
Delete to the beginning of the line |
ctrl-k |
Join the current and next line |
ctrl-u |
Delete the current line |
ctrl-c |
Exit nvram editor (return to ok prompt) |
The changes will take effect only if they are stored using the nvstore command, entered at the ok prompt. Once the changes are stored, the NVRAM must be enabled before the system will execute it. This is done by setting the environment variable use-nvramrc? to true.