Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/lib/fbconfig/fbconf_xorg [-dev device-file] [-file machine | system | config-path] [-res video-mode [nocheck | noconfirm]] [device-specific-options] [-defaults] [-prconf] [-predid [raw] [parsed]] [-propt]
/usr/lib/fbconfig/fbconf_xorg [-dev device-file] [-prconf] [-propt]
/usr/lib/fbconfig/fbconf_xorg [-dev device-file] [-help] [-res ?]
For kfb devices:
/usr/lib/fbconfig/fbconf_xorg [-dev device-file] [-file machine | system | config-path] [-res video-mode [nocheck | noconfirm]] [-deflinear true | false] [-defoverlay true | false] [-deftransparent true | false] [-doublehigh enable | disable] [-g gamma-correction-value] [-multisample available | disable | forceon] [-offset x-val y-val] [-samples 1 | 2 | 4 | 8 | 16 ] [-slave disable | multiview] [-stereo true | false] [-defaults] [-prconf] [-predid [raw] [parsed]] [-propt]
The fbconf_xorg utility configures Frame Buffer devices and some of the X11 window system defaults for Xorg by updating the xorg.conf configuration file.
The first fbconf_xorg command form shown in the SYNOPSIS section stores the specified option values in the xorg.conf configuration file. These settings are used to initialize the frame buffer device the next time the window system is run on that device. The persistence of these settings across window system sessions and system reboots is determined by the xorg.conf file.
The second and third command forms display information, and do not alter the xorg.conf file. The presence of the -help and/or -res ? options will cause any other option (not shown in the third form) to be ignored.
You can configure only one frame buffer device at a time. To configure multiple devices, invoke the fbconf_xorg utility separately for each device.
Only frame buffer device options can be specified with fbconf_xorg. Use the normal window system options to specify default depth (see svccfg(1M)), default visual class, and so forth. Specify these as device modifiers on the command line. See Xserver(1), part of the OpenWindows, not the SunOS, man page collection.
You can specify which xorg.conf file to open. By default, fbconf_xorg opens the machine-specific file, /etc/X11/xorg.conf. Use the -file option to specify an alternate file. For example, the system-global file, /usr/X11/xorg.conf, can be opened instead.
These standard xorg.conf files can be written only by the superuser or someone with the Primary Administrator role. Consequently, the fbconf_xorg program is run with setuid root permission.
The following options are supported for all frame buffer devices:
-defaults
Sets configuration options for the specified device to their default values. This does not affect the -res video mode setting. See the device-specific portions of the DEFAULTS section below.
-dev device-file
Specifies the frame buffer device by either its full pathname or simple filename (for example, /dev/fbs/kfb0 or kfb0). Pathnames of installed devices can be displayed using the -list option to fbconfig(1M). If the -dev option is omitted, the default device, /dev/fb, is used.
-file machine | system | config-path
Specifies which xorg.conf file to open. If machine is specified, the machine-specific /etc/X11/xorg.conf file is opened. If system is specified, the global /usr/X11/xorg.conf file is opened. The absolute pathname of a configuration file can be used instead. If the specified file does not exist and is to be updated, it will be created. The file system that will contain the xorg.conf file must be writeable by someone with superuser-like privileges. This option has no effect unless other options are specified. The default is machine.
-help
Display the fbconf_xorg command line options that are supported in conjunction with the frame buffer device, along with a brief explanation of each option. The frame buffer device can be specified using the -dev option.
-prconf
Display the current configuration for the frame buffer device and attached display device(s). The frame buffer device can be specified using the -dev option. The -prconf output might resemble:
Monitor/Resolution Information: Monitor manufacturer: SUN Product Code: 4 Serial Number: 12212555 Manufacture date: 2000, week 9 EDID Version: 1.1 Monitor dimensions: 36x29 cm Default Gamma: 2.62 Monitor preferred resolution: SUNW_STD_1280x1024x60 Monitor supported resolutions from EDID: SUNW_STD_1280x1024x60, SUNW_STD_1280x1024x76, 1152x900x66, VESA_STD_1280x1024x75, VESA_STD_1280x1024x60, SUNW_STD_1152x900x66, VESA_STD_720x400x70, VESA_STD_640x480x60, VESA_STD_640x480x67, VESA_STD_640x480x72, VESA_STD_640x480x75, VESA_STD_800x600x56, VESA_STD_800x600x60, VESA_STD_800x600x72, VESA_STD_800x600x75, VESA_STD_832x624x75, VESA_STD_1024x768x60, VESA_STD_1024x768x70, 1024x768x75 Current resolution setting: FALLBACK_1152x900x66 Framelock Configuration: Slave Mode: Disabled
-predid [raw] [parsed]
Display the E-EDID (Enhanced Extended Display Identification Data) information obtained from the display device(s), which must be online, connected to the frame buffer. The frame buffer device can be specified using the -dev option. The output will be raw hexadecimal and/or human-readable (parsed) text. The default is parsed. The -predid raw output might resemble:
--- EDID Data for /dev/fbs/kfb0 --- Block 0: EDID Base Block 0x00: 00 FF FF FF FF FF FF 00 04 43 06 F2 01 00 00 00 0x10: 01 11 01 04 0F 2B 20 78 2B 9C 68 A0 57 4A 9B 26 0x20: 12 48 4C FF FF 80 A9 59 A9 4F A9 4A A9 45 81 99 0x30: 81 80 61 59 45 59 48 3F 40 30 62 B0 32 40 40 C0 0x40: 13 00 AB 40 11 00 00 1E 00 00 00 FD 00 32 5A 1E 0x50: 6E 17 04 11 00 C8 90 00 50 3C 00 00 00 F7 00 0A 0x60: F7 0F 03 87 C0 00 00 00 00 00 00 00 00 00 00 FC 0x70: 00 41 42 43 20 4C 43 44 32 31 0A 20 20 20 00 0B
-propt
Display all option settings for the frame buffer device, either as they currently are or as they will be represented in the xorg.conf configuration file when fbconf_xorg completes. The device can be specified using the -dev option, and the file using the -file option. The -propt output might resemble:
--- Graphics Configuration for /dev/fbs/kfb0 --- xorg.conf: machine -- /etc/X11/xorg.conf Screen section: "kfb0" Device section: "kfb0" Monitor section: "kfb0" Video Mode: SUNW_STD_1280x1024x76 StereoEnable: False Multisample Information: Multisample Mode: Disable Samples Per Pixel: 4 Screen Information: DoubleWide: Disabled DoubleHigh: Disabled Offset/Overlap: [0, 0] Visual Information: Default Visual: Non-Linear Normal Visual Gamma Correction Value: Using gamma value 2.22
-res ?
Display a list of video modes that can be used with the -res video-mode option. The ? argument may need to be escaped or placed in quotes (\e?, "?", or '?'), to protect it from misinterpretation by the shell. The -res ? output might resemble:
Video modes accepted by the -res option: AUTO [1][2] NONE [1][2] SUNW_STD_1920x1200x75 SUNW_STD_1920x1200x70 SUNW_DIG_1920x1200x60 SUNW_STD_1920x1080x72 SUNW_DIG_1920x1080x60 ... ... VESA_STD_640x480x75 [1] VESA_STD_640x480x72 [1] VESA_STD_640x480x60 [1] [1] Resolution is supported by monitor [2] Preferred resolution for monitorAbbreviations such as "1280x1024x75" might also be used.
-res video-mode [nocheck | noconfirm]
Set the video mode for the display device that is connected to the frame buffer device. A list of video modes can be displayed using the -res ? option. The basic format of a video-mode is widthxheightxrate, where:
width is the screen width in pixels.
height is the screen height in pixels.
rate is the vertical frequency of the screen refresh.
nocheck
The nocheck suboption causes the video-mode argument to be accepted, regardless of whether it is supported by the currently attached monitor, whether it is known within the current configuration, and so forth. Note that using an unchecked, inappropriate video mode can leave the system without usable video output. This suboption is useful if a different monitor is to be connected to the frame buffer device. This suboption also implies noconfirm.
noconfirm
If the video-mode argument is unable to be validated, the default action is to display a warning message and ask the user whether to continue. The noconfirm suboption suppresses this confirmation request. This suboption is useful when fbconf_xorg is being run from a shell script.
The following device-specific options are supported for certain frame buffer devices. Unless specified otherwise, these options do not take effect until the user logs out and back in.
-deflinear true | false
This option selects the default X visual. Two types of visuals are supported, linear and nonlinear. Linear visuals are gamma corrected. Nonlinear visuals are not. If the value of this option is true, the default visual is set to default depth 24 and the default class is TrueColor with gamma correction enabled. If false, a nonlinear visual that satisfies the other default visual selection options, such as the default depth and default class, is chosen as the default visual. The -deflinear, -defoverlay, and -deftransparent options each select the default X visual. Only one of these may be enabled at a time. Enabling one causes the others to be disabled.
-defoverlay true | false
This option selects the default X visual. The kfb device provides an 8-bit PseudoColor visual whose pixels are disjoint from the rest of the visuals. This is called the overlay visual. Windows created in this visual will not damage windows created in other visuals. The converse, however, is not true: Windows created in other visuals will damage overlay windows. If the value of this option is true, the overlay visual is the default visual. The default depth is 8-bit and the default class is PseudoColor. If false, the non-overlay visual that satisfies the other default visual selection options, such as the default depth and the default class, is chosen as the default visual. The -deflinear, -defoverlay, and -deftransparent options each select the default X visual. Only one of these may be enabled at a time. Enabling one causes the others to be disabled.
-deftransparent true | false
This option selects the default X visual. The kfb device provides an 8-bit PseudoColor visual whose pixels are disjoint from the rest of the visuals. This is called the overlay visual. Windows created in this visual will not damage windows created in other visuals. If the value of this option is true, the overlay visual used as the default is a transparent overlay visual. A visual with transparency supports a colormap with 255 colors and one transparent pixel. The default depth is 8-bit and the default class is PseudoColor. If false, the nonoverlay visual that satisfies the other default visual selection options, such as the default depth and the default class, is chosen as the default visual. The -deflinear, -defoverlay, and -deftransparent options each select the default X visual. Only one of these may be enabled at a time. Enabling one causes the others to be disabled.
-doublehigh enable | disable
Configures the two outputs of the frame buffer device into one vertical virtual display. The default is disable. The -doublewide and -doublehigh options are mutually exclusive. Enabling one causes the other to be disabled.
-doublewide enable | disable
Configures the two outputs of the frame buffer device into one horizontal virtual display. The default is disable. The -doublewide and -doublehigh options are mutually exclusive. Enabling one causes the other to be disabled.
-g gamma-correction-value
Sets the gamma correction value. All linear visuals provide gamma correction. The gamma correction value should be in the range, 0.1 to 10.0. The default is 2.22. This option can be used while the window system is running. Changing the gamma correction value affects all of the windows displayed by linear visuals.
-gfile gamma-correction-file
Loads the gamma correction table from the file specified by gamma-correction-file. This text file specifies the gamma correction values for the R, G, and B channels. Three consecutive values form an RGB triplet. For a kfb device, there must be exactly 256 RGB triplets. A value may be represented in hexadecimal, decimal, or octal format (for example, 0x3FF, 1023, or 01777, respectively). Values are separated by one or more whitespace or new line characters. Comments begin with a hash sign character (#) and end at the end of the line. You can load the gamma correction table with this option while the window system is running. The new gamma correction affects all the windows being displayed using the linear visuals. When gamma correction is done using a user-specified table, the gamma correction value (-g) is undefined. By default, the window system assumes a gamma correction value of 2.22 and loads the gamma table it creates corresponding to this value. The following is an example of a gamma-correction-file file:
# Gamma Correction Table 0x00 0x00 0x00 0x01 0x01 0x01 0x02 0x02 0x02 ... ... ... ... ... ... 0xFF 0xFF 0xFF
-multisample available | disable | forceon
If set to disable, no multisample is possible. If set to available, multisample is possible but is selected on a per-window basis using a library interface. If set to forceon, all Sun OpenGL windows are rendered using multisampling. To query the number of samples used, specify the -propt option or run the xglinfo utility. The xglinfo utility can return the number of multisamples if -multisample is set to available. The default is disable. xglinfo is described in the xglinfo(1) man page, in the Sun OpenGL man page collection.
-offset x-val y-val
Adjusts the position of the specified stream by the value specified. This option is only implemented in -doublewide and -doublehigh modes. For -doublewide, use the x-val to position the rightmost stream. Negative is left (overlaps with the left stream). For -doublehigh, use the y-val to position the bottom stream. Negative is up (overlaps with top stream). The default is [0,0].
-samples 1 | 2 | 4 | 8 | 16
Requests the number of samples to compute per display pixel. The requested number of samples per pixel is used if -multisample is not disabled and resources exist for the request. To query the number of samples used, specify the -propt option or run the xglinfo utility. The xglinfo utility can return the number of multisamples after you specify the option -multisample available. The default is 4.
-slave disable | multiview
If you set the multiview argument for the -slave option, the device synchronizes video with a master through the multiview genlock ribbon cable. The system should be powered off whenever connecting or disconnecting this cable. Both devices should be running the same resolution and the option should be issued when the window system is running. The default is disable.
Certain options have implied default arguments. The default argument is used when the option is not present on the fbconf_xorg command line. For instance, a default argument for -dev is /dev/fb.
Options that set configuration state do not have implied defaults. The -res option is one example. If a configuration option is omitted from the fbconf_xorg command line, the corresponding xorg.conf configuration setting will remain unchanged. The exception is that if configuration options are mutually exclusive, setting one will automatically unset each of the others. An example is -deflinear, -defoverlay, and -deftransparent.
If a configuration setting is not present in the configura tion file when the window system is run, a default value will be used. For instance, the default state associated with -res is auto. A setting might not be present in the file, or the file itself might not exist, until fbconf_xorg has been invoked with the corresponding command line option.
The -defaults option sets the default values for most configuration settings.
Options and their defaults are shown below.
Device-independent defaults:
Option Default Argument -dev /dev/fb -file machine Option Default State -res auto
kfb-specific defaults:
Option Default State or -defaults Value -deflinear false -defoverlay false -deftransparent false -doublehigh disable -doublewide disable -g 2.22 -multisample disable -offset 0 0 -samples 4 -slave disable -stereo false
Example 1 Switching the Resolution of the Monitor Type
The following example sets the video mode for the monitor on the /dev/fbs/kfb0 device to 1280 x 1024 at 76 Hz:
example% fbconf_xorg -dev kfb0 -res 1280x1024x76
The following exit values are returned:
0
Execution completed successfully.
1
Invalid command line usage.
2
An error occurred.
Symbolic link to the default frame buffer device.
Device special file for a kfb frame buffer
/usr/lib/fbconfig/SunModes_xorg.conf
Video mode definitions included in new configuration files.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Uncommitted |
fbconfig(1M), svccfg(1M), attributes(5), kfb(7D), fbio(7I)
See the Xorg(1) and Xserver(1) man pages in the X Server man page collection and the xglinfo(1) man page in the Sun OpenGL man page collection.