1
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
2
<!ENTITY % defs SYSTEM "X11/defs.ent"> %defs;
7
<!-- Title information -->
10
<Title>Information for Solaris</Title>
13
<FirstName>David Holland, modified by Marc Aurele La France</FirstName>
16
<PubDate>2004 August 18
21
<!-- Table of contents -->
23
<!-- Begin the document -->
25
<Title>The VT-switching sub-system in Solaris x86</Title>
28
The virtual terminal sub-system is a undocumented, and unsupported feature of
29
Solaris x86 releases 2.1 through 7. It is no longer present in Solaris 8 and
31
Therefore if you use virtual terminals, you do so at <Emphasis remap="bf">YOUR OWN RISK</Emphasis>.
35
Virtual terminals are not available in Solaris SPARC, and their availability
36
has been removed in Solaris8 x86.
40
When available, the virtual terminals of Solaris work basically the same way as
41
most other SVR4 VT sub-systems.
42
However, there are a number of limitations documented below.
46
First, if you are running a Solaris 2.4 x86 system, and you want VT's, you will
47
have to create the necessary devices first, so become root.
51
Verify the chanmux device driver's major number is 100:
57
# grep -i chanmux /etc/name_to_major
62
If the number after 'chanmux' is anything but 100, I would suggest you
63
immediately abort your attempt to create virtual terminals, and learn to live
68
However, if it is 100, then as root type the following commands to create the
69
maximum allowable number of virtual terminals.
85
There is no need for a reconfiguration boot.
89
Secondly, for both 2.1, and 2.4 x86 systems, add a few lines to the
90
<Literal remap="tt">inittab</Literal> to enable logins on them.
94
(<Emphasis remap="bf">Note</Emphasis>, do <Emphasis remap="bf">NOT</Emphasis> make a mistake here, you could lock yourself
101
--------------------->Snip Snip<-----------------------------------------------
102
v1:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT01 login: " -T AT386 -d /dev/vt01 -l console
103
v2:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT02 login: " -T AT386 -d /dev/vt02 -l console
104
v3:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT03 login: " -T AT386 -d /dev/vt03 -l console
105
v4:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` VT04 login: " -T AT386 -d /dev/vt04 -l console
106
---------------------->End Here<-----------------------------------------------
109
These four lines enable four VT's on Alt-SysReq-F1 through Alt-SysReq-F4.
113
Then execute the command '<Literal remap="tt">init q</Literal>' to immediately enable the virtual
118
The keys used for VT switching are as follows:
125
<Literal remap="tt">Alt-SysReq-F1</Literal> through <Literal remap="tt">Alt-SysReq-F7</Literal>
126
enable VT screens 1-7 respectively
127
(if the VT is active).
133
<Literal remap="tt">Alt-SysReq-n</Literal> enables the next active VT screen.
139
<Literal remap="tt">Alt-SysReq-p</Literal> enables the previous active VT screen.
145
<Literal remap="tt">Alt-SysReq-h</Literal> returns to the console.
149
If you are using virtual terminals, you must leave at least one free for use by
154
Limitations of the virtual terminal sub-system under Solaris x86:
158
There are only a total of 8 available VT's (7 normal VT's + 1 console) not the
160
If you have all 8 allocated, and you attempt to allocate a additional VT you
161
will panic the system.
162
(This bug is worked around in the Solaris X11R&relvers; Xserver.)
166
From a programming stand point, they work pretty much as documented in the
167
AT&T Unix System V/386 Release 4 Integrated Software Development Guide,
168
however a number of <Literal remap="tt">ioctl()</Literal> calls are broken.
174
<Title>Notes for building X11R&relvers; on Solaris</Title>
181
Both GCC, and the Sun Studio compilers are supported by X11R&relvers;.
182
The minimum recommended GCC release is 2.7.2.
183
Some earlier GCC's are known to not work and should be avoided.
186
You should also make certain your version of GCC predefines `sun'.
187
If needed edit <Literal remap="tt">/usr/local/lib/gcc-lib/*/*/specs</Literal>, and modify the
188
<Literal remap="tt">*predefines:</Literal> line.
192
On SPARCs, regardless of the compiler you use, ensure it generates 32-bit
194
At this time, 64-bit binaries will probably not work.
199
Also on SPARCs, you may be able to build the old deprecated Xsun* servers for
200
older cg* graphics devices by adding "#define XsunServer YES" or "#define
201
Xsun24Server YES" or "#define XsunMonoServer YES" to xc/config/cf/host.def.
202
These servers are no longer maintained nor supported and may not build in
208
A Threaded Xlib compiled with GCC has subtle problems.
209
It'll work 98% of the time, however clients will occasionally exhibit
211
Most notably image viewers such as xv-3.10 exhibit this problem.
214
It is recommended that you set ThreadedX in <Literal remap="tt">˜xc/config/cf/host.def</Literal> to
215
NO, if you are using GCC.
216
Sun's compilers do not have this problem.
217
Whether this behaviour still exists with newer GCC's has not been verified.
222
To build X11R&relvers; with GCC you need gcc and (optionally) c++filt from GNU
224
Don't install gas or ld from GNU binutils, use the one provided by Sun.
227
You might need to setup a /opt/SUNWspro/bin directory containing symbolic links
228
named <Literal remap="tt">cc</Literal>, <Literal remap="tt">CC</Literal>, and <Literal remap="tt">c++filt</Literal> pointing respectively to the actual
229
<Literal remap="tt">gcc</Literal>, <Literal remap="tt">g++</Literal> and <Literal remap="tt">c++filt</Literal> commands.
234
If you are using Sun compilers to compile the X11R&relvers; distribution, you need to
235
modify your PATH appropriately so the Sun compiler tools are available.
236
Normally, they should be in <Literal remap="tt">/opt/SUNWspro/bin</Literal>
241
You <Emphasis remap="bf">MUST</Emphasis> put <Literal remap="tt">/usr/ccs/bin</Literal> at the front of your PATH.
242
There are known problems with some GNU replacements for the utilities found
244
So the <Literal remap="tt">/usr/ccs/bin</Literal> versions of these programs must be found before
245
any possible GNU versions.
246
(Most notably GNU '<Literal remap="tt">ar</Literal>' does not work during the build).
257
<Title>Notes for running Xorg on Solaris</Title>
264
Depending on the release or architecture of Solaris you are running, you might
265
need to install an OS driver for an aperture device.
268
Under Solaris x86 2.5 and later, there's a system driver (<Literal remap="tt">/dev/xsvc</Literal>)
269
that provides this functionality.
270
It will be detected automatically by the server, so you don't need to install
275
For older Solaris x86 and for Solaris SPARC releases, the source for this
276
driver is included in
277
<Literal remap="tt">xc/programs/Xserver/hw/xfree86/etc/apSolaris.shar</Literal> of the source
279
This file can usually also be found in the <Literal remap="tt">/usr/X11R6/lib/X11/etc</Literal>
280
directory when Xorg is installed.
281
Building, and installing the driver is relatively straight forward. Please read
282
its accompanying README file.
287
If you have not made the Virtual Terminal devices, you will need to specify the
288
terminal device to run the Xserver on.
289
The correct device is vt00 so your <Literal remap="tt">xinit</Literal> command would look like
297
If you have made the virtual terminal devices you do not need to specify the VT
298
to run the Xserver on.
303
For old releases of Solaris you will probably want to set your LD_LIBRARY_PATH to
304
<Literal remap="tt">/usr/X11R6/lib:/usr/openwin/lib:/usr/dt/lib</Literal>.
305
Including <Literal remap="tt">/usr/X11R6/lib</Literal> in your LD_LIBRARY_PATH is probably not
306
necessary, however it doesn't hurt. :)
309
Including <Literal remap="tt">/usr/openwin/lib</Literal> in the LD_LIBRARY_PATH is recommended
310
on older releases because some Sun supplied binaries were not compiled with LD_RUN_PATH set
311
properly at compile time.
315
Motif and CDE applications may require <Literal remap="tt">/usr/dt/lib</Literal> in your
316
LD_LIBRARY_PATH too.
321
Xqueue is <Emphasis remap="bf">NOT</Emphasis> supported under Solaris.
322
The includes necessary for Xqueue are available, however the driver does not
323
seem to be in the kernel.
329
If you want to use xdm with Solaris, extract the files from the shar file in
330
<Literal remap="tt">/usr/X11R6/lib/X11/etc/XdmConf.svr4</Literal> into a temporary directory.
331
The <Literal remap="tt">README</Literal> file tells where the individual files need to be installed.
332
Be sure to read through each file and make any site-specific changes that you
344
<Title>Known bugs, and work arounds with Solaris</Title>
351
The Solaris 2.1 for x86 OpenWindows filemgr does not work against a X11R5
352
Xserver, it probably will also not work against a X11R6 Xserver.
353
Attempting to 'Drag and Drop' a file causes the filemgr to abort with an
357
Solaris x86 2.4 does not have this problem.
361
There is no known work around.
366
The SPARC port is still quite new, so instability is to be expected (and
368
It might even have broken some aspects of the x86 port.
379
<Title>Bug Notification</Title>
382
Bug reports should be reported at bugs.freedesktop.org using the
383
xorg product or sent to <EMAIL
384
>xorg@lists.freedesktop.org</EMAIL