This site is 100% Micro$oft-free -- no Micro$oft products of any kind were used to create or serve these pages.

Changing Display Resolution / Configuring Frame Buffers on a SUN Ultra Workstation

Using Multiple monitors is a nice way to get more screen real estate..

Changing the Display Resolution is another way to get more screen real estate.. and here is how to do it..

Here is a pointer to some additional info on the different SUN Frame Buffers.

Finding out what Framebuffer Devices you have

There are different kinds of grafic adapters in SUNs. Check /dev/fbs for sym-links to frame buffer devices.. Here is an example:
	% ls -altr /dev/fbs/
	   m640 -> ../../devices/pci@1f,0/pci@1,1/SUNW,m64B@2:m640
	   ffb0 -> ../../devices/SUNW,ffb@1e,0:ffb0

The devices you find are either named ffb*, afb* or m64*. For each of those device types you need to use a different command to configure the grafics adapter.

Configuring a Framebuffer Device

Depending on what the name of your frame buffer device is, you need a different command to configure that device:
/dev/ffb*
use ffbconfig
/dev/afb*
use afbconfig
/dev/m64*                 check for latest patches for the device driver!
use m64config
/dev/ifb*                   (Expert3D Graphics Accelerator)
use fbconfig or
use SUNWifb_config
For help, run the command without options, check the man pages..

Probing for Supported Resolutions

Now that you know what the name/type and the configuration command for your frame buffer device is, you can probe for the resolutions it supports.. and then change them.  

You can either use the options "-prconf" or "-res \?" to see the possible resolutions. The first one gives you also the currently used resolution.

Here are two examples for different devices in a SUN Ultra10. The ffb* device is the PCI-based grafic card -- it's default resolution is 1280x1024x76 - i already increased it to 1600x1280x76 as you can see in the last line:

	% ffbconfig -prconf

	--- Hardware Configuration for /dev/fbs/ffb0 ---
	Type: double-buffered FFB2+ with Z-buffer
	Board: rev 2 (Vertical)
	PROM Information: @(#)ffb2p.fth 2.9 98/07/14 
	FBC: version 0x3241906d
	DAC: Brooktree 9070, version 1 (Pac2)
	3DRAM: Mitsubishi 130b, version 2
	EDID Data: Available - EDID version 1 revision 2
	Monitor Sense ID: 4  (Sun 40x30cm RGB color monitor)
	Monitor possible resolutions: 1024x768x60, 1024x768x70, 1024x768x75,
		1024x768x77, 1024x800x84, 1152x900x66, 1152x900x76, 1280x800x76,
		1280x1024x60, 1280x1024x67, 1280x1024x76, 1280x1024x85,
		960x680x112s, 960x680x108s, 640x480x60, 1440x900x76, 1600x1000x66,
		1600x1000x76, 1600x1280x76, 1920x1080x72, 1920x1200x70
	Current resolution setting: 1600x1280x76 Hi-res
The other grafics adapter in the SUN Ultra10 is on the motherboard and it's default resolution is 1152x900x76 -- YUCK!
	% m64config -prconf

	--- Hardware Configuration for /dev/fbs/m640 ---
	ASIC: version 0x7c004750
	DAC: version 0x0
	PROM: version 104
	Card possible resolutions:  720x400x88, 640x480x60, 640x480x72, 640x480x75
		800x600x56, 800x600x60, 800x600x72, 800x600x75, 1024x768x87
		1024x768x60, 1024x768x70, 1024x768x75, 1280x1024x75, 1280x1024x60
		1152x900x66, 1152x900x76, 1280x1024x67, 1280x800x76, 1280x1024x85
		1280x1024x76, 1152x864x75, vga, svga, 1152, 1280, 800x600
		1024x768, 1280x1024, 1152x900
	Monitor possible resolutions:  720x400x70, 720x400x88, 640x480x60
		640x480x67, 640x480x72, 640x480x75, 800x600x56, 800x600x60
		800x600x72, 800x600x75, 832x624x75, 1024x768x87, 1024x768x60
		1024x768x70, 1024x768x75, 1280x1024x75, 1152x870x75, 1152x900x66
		1152x900x76, 1280x1024x67, 1280x1024x76, vga, svga, 1152, 1280
		800x600, 1024x768, 1280x1024, 1152x900
	Possible depths:  8, 24
	Current resolution setting: 1152x900x76
	Current depth: 24
Here is an example of a SUN Ultra60 with a Expert3D Graphics Accelerator..
	% fbconfig -prconf

	--- Hardware Configuration for /dev/fb ---
	Type: Expert3D
	PROM Information: @(#)ifb.fth 1.53 00/01/07 SMI 
	EDID Data: Available - EDID version 1 revision 1
	Monitor type: Sun P/N 365-1383 S/N 9951KN2411
	Monitor possible resolutions: 1024x768x60, 1024x768x70, 1024x768x75, 
	1152x900x66, 1152x900x76, 1280x1024x67, 1280x1024x75, 1280x1024x76, 
	960x680x112s, 640x480x60, 1600x1200x75
	Current resolution setting: 1280x1024x76
	Slave Mode: Disabled
	Video Memory Total: 67108864
	Video Memory Used: 31457280
	Texture Memory Total: 67108864
	Texture Memory Used: 0

Increasing the Resolution

Please note that most likely you will not be able to get a coherent display of your windows, after you change the resolution.. you will either have to tell the window manager to redraw all windows or re-start X or your window manager.. logging out of your X-session and logging back in will also do the trick.. If you happen to have the window manager's "refresh" command bound to a function key, or if you are able to read the pop-up windows after changing the resolution, then you might get away without restarting X.

When you change the resolution, it's a good idea to use the option "try". You might get an error message like this.. if you have a true-color display. If that happens, you might need to change the display to a lower color depth, e.g. 16 Bits. Another way to check the display resolution and color depth is the command xdpyinfo.

	% m64config -res 1280x1024x67 try
	m64config: Not enough memory for resolution 1280x1024x67 at depth 24
	m64config: No changes made; use "nocheck" to force change
Please note in the m64config / ffbconfig / afbconfig man pages, that you can also specify the color depth there! And that you can force the grafic card into a certain resolution - even if the probing didn't find the resolution you wanted -- use the parameter nocheck go force it.. ;-)

Now, here's how to get 1600x1280 out of the crappy, build in grafics adapter.. but unfortunately only with 8 bits color depth -- good enough for text :-)

	% m64config -depth 8 -res 1600x1280x76 try nocheck 
	m64config: About to change video resolution to 1600x1280x76 for 10 seconds
	m64config: Continue (yes/no) ? yes
	m64config: Do you want 1600x1280x76 to become the new setting (yes/no) ? yes
	m64config: video resolution will be set to 1600x1280x76
Now re-start X or log-out and back in .. et voila! here is what we get:
	% m64config -prconf

	--- Hardware Configuration for /dev/fbs/m640 ---
	ASIC: version 0x7c004750
	DAC: version 0x0
	PROM: version 104
	Card possible resolutions:  720x400x88, 640x480x60, 640x480x72, 640x480x75
		800x600x56, 800x600x60, 800x600x72, 800x600x75, 1024x768x87
		1024x768x60, 1024x768x70, 1024x768x75, 1280x1024x75, 1280x1024x60
		1152x900x66, 1152x900x76, 1280x1024x67, 1280x800x76, 1280x1024x85
		1280x1024x76, 1152x864x75, vga, svga, 1152, 1280, 800x600
		1024x768, 1280x1024, 1152x900
	Monitor possible resolutions:  720x400x70, 720x400x88, 640x480x60
		640x480x67, 640x480x72, 640x480x75, 800x600x56, 800x600x60
		800x600x72, 800x600x75, 832x624x75, 1024x768x87, 1024x768x60
		1024x768x70, 1024x768x75, 1280x1024x75, 1152x870x75, 1152x900x66
		1152x900x76, 1280x1024x67, 1280x1024x76, vga, svga, 1152, 1280
		800x600, 1024x768, 1280x1024, 1152x900
	Possible depths:  8, 24
	Current resolution setting: 1600x1280x76
	Current depth: 8

Changing the Color Depth

To change the color depth of a display, for some grafics adapters you can give an option to the config command, but there is no such option for the ffb devices..

Therefore best way to set the color depth of the displays is in the /usr/dt/config/Xservers file. See the example on that page..

See also: Solaris Handbook for SUN Frame Buffers

See also: Using Multiple Monitors / Frame Buffers on a SUN Ultra Workstation

See also: Getting Rid of CDE and Using Fvwm on a SUN Ultra Workstation


Maintainer: Tilo Sloboda unix@unixgods.org
last update: $Revision: 1.10 $ / $Date: 2003/09/08 20:28:27 $

Thanks a lot to Markus for the tip!