Setup dual framebuffer (on Sunray server)

Solaris Framebuffers No Comments

I recently acquired a second monitor, which i just couldn’t get to talk to me. Because my work station is also the Sunray server for the demo Sunray clients in the office the /etc/dt/config/Xservers file reverts after reboot or dtlogin restart. After stopping the Sunray server with # /etc/init.d/utsvc stop the changes stayed.

Let’s look at the changes required to add a 2nd monitor, whether you’re on a Sunray server or not. If /etc/dt/config directory does not exist you will have to manually create it first.

# cp /usr/dt/config/Xservers /etc/dt/config/Xservers

#cp /usr/dt/config/Xconfig /etc/dt/config/Xconfig

Then you will have to change /etc/dt/config/Xservers line from:

:0 Local local_uid@console root /usr/X11/bin/Xserver :0 -nobanner

to (in my case at least - check your framebuffer type with fbconfig -list):

:0 Local local_uid@console root /usr/openwin/bin/Xsun +xinerama -dev /dev/fbs/pfb0a -dev /dev/fbs/pfb0b

To make the changes take effect you can either reboot or restart dtlogin using the following method. Logout, and at the welcome screen click on ‘command line logon’. Login, stop and start dtlogin using /etc/init.d/dtlogin stop then /etc/init.d/dtlogin start. Exit the command line session and wait for the welcome screen again. You should now have both monitors running in xinerama mode. If you don’t want xinerama mode just remove the +xinerama bit.

Don’t forget to restart your Sunray if you have one. # /etc/init.d/utsvc start.

GOTCHA: If you reboot your system you will have to stop Sunray services again, or the Xservers file will be replaced with the default.  Also, xinerama is a cpu hog, at times more than doubling the amount of cpu resources required if you ran dual monitor without xinerama.  Unfortunately my ex-manager that arranged this system was cheap and only put 1 cpu in.

Change resolution on Solaris system

Solaris Framebuffers No Comments

I have an Ultra 45 workstation with a single monitor attached. I want to check i have it set to highest possible resolution.

First i checked the type of card in the system:

amsterdam:/ # ls /dev/fbs
pfb0 pfb0a pfb0b

Then i knew which command to use to check the current resolution:

amsterdam:/ # fbconfig -list
Device-Filename Specific Config Program
————— ———————–
/dev/fbs/pfb0 SUNWpfb_config
/dev/fbs/pfb0a SUNWpfb_config
/dev/fbs/pfb0b SUNWpfb_config

amsterdam:/ # fbconfig -prconf

— Hardware Configuration for /dev/fb —

Type: XVR-100
ASIC: version 0×5159 REV: version 0×3000000
PROM: version 4.2

Monitor/Resolution Information:
Monitor A:
Monitor Manufacturer: SUN
Product code: 4
Serial #: 26171723
Manufacture date: 2001, week 42
Monitor dimensions: 36×29 cm
Monitor preferred resolution: SUNW_STD_1280×1024x60
Separate sync supported: yes
Composite sync supported: yes
Gamma: 2.62
EDID: Version 1, Revision 1
Supported resolutions: SUNW_STD_1280×1024x60,
SUNW_STD_1280×1024x76, 1152×900x66, VESA_STD_1280×1024x75,
VESA_STD_1280×1024x60, SUNW_STD_1280×1024x76,
SUNW_STD_1152×900x66, VESA_STD_1280×1024x75,
VESA_STD_720×400x70, VESA_STD_640×480x60, VESA_STD_640×480x67,
VESA_STD_640×480x72, VESA_STD_640×480x75, VESA_STD_800×600x56,
VESA_STD_800×600x60, VESA_STD_800×600x72, VESA_STD_800×600x75,
VESA_STD_832×624x75, VESA_STD_1024×768x60,
VESA_STD_1024×768x70, VESA_STD_1024×768x75,
VESA_STD_1280×1024x75
Current resolution setting: 1280×1024x60
Current depth: 24
Monitor B:
EDID Data: Not Available
Current resolution setting: 1152×900x66
Current depth: 8

Depth Information:
Possible depths: 8, 24

Think of /dev/fbs/pfb0a as /dev/fbs/pfb0. this represents the VGA plug in the XVR-100 graphics card. /dev/fbs/pfb0b is the DVI plug which i am not using. So i am using the highest possible resolution already and no need to change anything.

There is a full man page for fbconfig, other common commands for the frame buffer is m64config and pgxconfig. The actual command to change the resolution is fbconfig -dev /dev/fbs/pfb0a -res 1280×1024x60 -depth 24.

EDIT: Command fbconfig -res \? shows valid resolutions for the monitor.