mirror of
https://github.com/IanDarwin/OpenLookCDROM.git
synced 2026-01-21 18:25:08 +00:00
2438 lines
95 KiB
Plaintext
2438 lines
95 KiB
Plaintext
From: casper@room101..Holland.Sun.COM (Casper Dik - ENS Network Security - Network Security Engineer)
|
|
Newsgroups: comp.unix.solaris,comp.sys.sun.admin,comp.answers,news.answers
|
|
Subject: Solaris 2 Frequently Asked Questions (FAQ) 1.46
|
|
Date: 8 May 1995 14:05:29 GMT
|
|
Organization: Sun Microsystems Inc., Mountain View, CA
|
|
Approved: news-answers-request@MIT.Edu
|
|
Expires: 19 Jun 1995 14:05:09 GMT
|
|
Message-ID: <Solaris2/FAQ_799941909@engnews2.Eng.Sun.COM>
|
|
Reply-To: Casper.Dik@Holland.Sun.COM
|
|
Summary: This posting contains a list of Frequently Asked Questions (and
|
|
answers) about Sun Microsystem's Solaris 2.x system in general.
|
|
See also the FAQs archived as Solaris2/Porting and Solaris2/x86.
|
|
|
|
Archive-name: Solaris2/FAQ
|
|
Version: 1.46
|
|
Last-Modified: 1995/05/08 14:04:55
|
|
Maintained-by: Casper Dik <Casper.Dik@Holland.Sun.COM>
|
|
|
|
|
|
The following is a list of questions that are frequently asked about
|
|
Solaris 2.x. You can help make it an even better-quality FAQ by writing a
|
|
short contribution or update and sending it BY EMAIL ONLY to me.
|
|
Thanks!
|
|
|
|
As you may have noted, I have switched employers and work for Sun as of
|
|
April 1st 1995. Sun is in no way responsible for the contents
|
|
of this FAQ. (I haven't really asked).
|
|
|
|
The latest Solaris 2 FAQ, including an HTML version, and some other goodies
|
|
can be obtained through ftp from ftp.fwi.uva.nl:/pub/solaris.
|
|
|
|
The HTML (URL: ftp://ftp.fwi.uva.nl/pub/solaris/solaris2.html) version
|
|
of the FAQ contains references to most FTP sites and files mentioned
|
|
in the FAQ. The references to ftp sites are always to either HTML
|
|
files or directories, never to binary files.
|
|
|
|
I've added an index of questions and marked changed(*) and added
|
|
questions(+). The FAQ is being reorganized, time permitting.
|
|
The index is generated automatically, so there may be errors there.
|
|
Not all questions are in the section they belong in. Suggestions on
|
|
how best to subdivide/order the FAQ are welcome.
|
|
|
|
|
|
|
|
1. GENERAL
|
|
1.1) What's a Solaris anyway?
|
|
1.2) Why should I care? Why should I upgrade?
|
|
1.3) Should I move to Solaris 2.x now, or later, or never?
|
|
1.4) What is Solaris 2? Is it really SVR4 based?
|
|
1.5) What machines does Solaris 2.x run on?
|
|
1.6) Will my old applications from 4.1.x run on Solaris 2?
|
|
1.7) Will my old applications from SVR3 on the 386 run on Solaris 2/x86?
|
|
1.8) Where has the XXX command gone now?
|
|
1.9) When I upgrade, should I use SunInstall "upgrade", or start over?
|
|
1.10) Is Solaris 2.x reliable/stable enough to use?
|
|
1.11) Why do some people dislike Solaris2?
|
|
*1.12) Why do some people *like* Solaris2?
|
|
+1.13) What is Sun doing to help me migrate?
|
|
|
|
2. MORE INFO
|
|
2.1) How can I RTFM when I don't have it anymore?
|
|
2.2) Why is "man -k" so confused?
|
|
2.3) What Software is available for Solaris 2.x?
|
|
2.4) What FTP/WWW sites do I need to know about?
|
|
2.5) What other FAQ's do I need to know about?
|
|
2.6) What mailing lists should I get?
|
|
2.7) What books should I read?
|
|
2.8) What hardware is supported by Solaris 2.x for Intel?
|
|
2.9) What is Wabi?
|
|
|
|
3. SYSTEM ADMINISTRATION
|
|
3.1) How much disk space do I need to install Solaris 2?
|
|
3.2) How can I convert all my local changes that I've made over the
|
|
years into their corresponding forms on Solaris 2?
|
|
3.3) What are "packages"?
|
|
3.4) Why can't I write in /home?
|
|
3.5) Why can't I access CDs or floppies?
|
|
3.6) Why are there no passwords in /etc/passwd?
|
|
3.7) Why can't I rlogin/telnet in as root?
|
|
3.8) How can I have a user without a password?
|
|
3.9) How can I set up anonymous FTP?
|
|
3.10) How can I print from a Solaris 2 (or any System V Release 4) system
|
|
to a SunOS4.x (or any other BSD) system?
|
|
3.11) What if I'd rather use the BSD line printer system?
|
|
3.12) What happened to /dev/MAKEDEV? How do I add devices?
|
|
*3.13) Why isn't my tape/cd player or new disk/device recognized?
|
|
3.14) What happened to /etc/rc and /etc/rc.local?
|
|
3.15) Speaking of that, why are there two versions of shutdown?
|
|
3.16) When will somebody publish a package of the BSD (4.3BSD Net2)
|
|
"init", "getty", and "rc/rc.local", so we can go back to life
|
|
in the good old days?
|
|
3.17) What has happened to getty? What is pmadm and how do you use it?
|
|
*3.18) How do I get the screen to blank when nobody's using it?
|
|
3.19) And what about screendump, screenload and clear_colormap?
|
|
3.20) Where did etherfind go?
|
|
3.21) Can I run SunOS4.1.x on my SPARC Classic, LX, SS5, SS20, Voyager,
|
|
SS1000, SC2000?
|
|
3.22) The "find" program complains that my root directory doesn't exist?
|
|
3.23) I'm having troubles with high-speed input on the Sparc serial
|
|
ports. What should I do?
|
|
3.24) How do I make ksh or csh be the login shell for root?
|
|
3.25) What is this message: "automount: No network locking on host,
|
|
contact administrator to install server change."?
|
|
3.26) How do I make Solaris2 use my Toshiba MK538FB and other
|
|
older SCSI disks?
|
|
3.27) How do I make Solaris2 use my old ADAPTEC ACB-4000 and
|
|
Emulex MD-21 diskcontrollers?
|
|
3.28) Why are there so many patches for Solaris 2.x?
|
|
3.29) What are the ``mandatory'' patches I keep hearing about?
|
|
3.30) Where do I get patches from?
|
|
3.31) Where can I obtain Solaris 2/x86 driver updates?
|
|
3.32) Why does installing patches take so much space in /var/sadm?
|
|
3.33) Do I need to back out previous versions of a patch?
|
|
3.34) How can I have more than 48 pseudo-ttys?
|
|
3.35) How can I get ps to print %MEM and %CPU?
|
|
3.36) How can I get the DOS and Unix clock to agree on Solaris/x86?
|
|
3.37) Hoe can I increase the number of filedescriptors per process?
|
|
3.38) Can I install both SunOS and Solaris on the same machine,
|
|
and choose between them at boot time?
|
|
3.39) How do I disable banner pages under Solaris?
|
|
|
|
4. NETWORKING
|
|
4.1) How do I use DNS w/o using NIS or NIS+?
|
|
4.2) Speaking of nsswitch.conf, what is it?
|
|
4.3) What does [NOTFOUND=return] in nsswitch.conf mean?
|
|
*4.4) Can I run a nis/yp server under Solaris 2.x?
|
|
4.5) Can I run NIS+ under Solaris 1 (SunOS 4.1.x)
|
|
4.6) With NIS+ how do I find out which machine a client is bound to?
|
|
4.7) Ypcat doesn't work on the netgroup table on a NIS+ server, why?
|
|
4.8) Why is rpc.nisd such a memory pig according to ps?
|
|
4.9) Why is Xsun such a memory pig, especially on the SX?
|
|
4.10) How do I tell my NIS+ server to service DNS requests from
|
|
4.x clients?
|
|
+4.11) How can I have multiple addresses per interface?
|
|
|
|
5. TROUBLE SHOOTING
|
|
5.1) The Solaris 2.x application XX fails with a mysterious error condition.
|
|
5.2) Why can't I run Answerbook on a standalone machine?
|
|
5.3) Why can't I run filemgr, I get ``mknod: permission denied''?
|
|
5.4) Why do I get isinf undefined when linking with libdps?
|
|
5.5) I can't get PPP to work between Solaris 2.3 and other platforms.
|
|
5.6) Using compat mode for passwd doesn't work in 2.3?
|
|
5.7) Why do I get __builtin_va_alist or __builtin_va_arg_incr undefined?
|
|
5.8) My machine hangs during the boot process. It seems related to ps.
|
|
5.9) Syslogd doesn't seem to log anything.
|
|
5.10) I get ``Invalid client credential'' when mounting filesystem on
|
|
Solaris client from non-Sun fileserver.
|
|
+5.11) After upgrade to 2.4, ls on NFS mounted directories hangs.
|
|
+5.12) After installing patch 101945-xx, I have NFS problems (ksh looping)
|
|
5.13) I messed up /etc/system, now I can't boot.
|
|
5.14) The /etc/path_to_inst file is corrupted, I can't boot.
|
|
5.15) TCP/IP connections time out too soon, especially on slow links.
|
|
*5.16) Solaris 2.x can't set up any TCP/IP connections to certain hosts.
|
|
5.17) When reading mail on non-Solaris clients of a Solaris mail
|
|
server, or with non-Solaris mail readers, some messages get split
|
|
into multiple messages.
|
|
+5.18) Mailx/Mail often send reply to wrong user or show wrong sender.
|
|
5.19) One of my users can't login (one some machines).
|
|
5.20) My clients with remote /var (/var/adm) partitions won't boot.
|
|
5.21) Vacation doesn't work reliably in a mixed Solaris/SunOS environment.
|
|
5.22) I have a lot of <defunct> processes. How do I get rid of them?
|
|
5.23) I get /dev/ptmx: No such device when logging in.
|
|
5.24) ld bails out with msync errors.
|
|
5.25) su responds with "Sorry" and doesn't prompt for a password.
|
|
*5.26) Why can't I install 2.4 from a non-Sun CD while I could do so wth 2.3?
|
|
5.27) ifconfig can't find my network interface
|
|
5.28) I have an application that compiled fine, but when I run it I get:
|
|
fatal: libfoo.so.2: can't open file: errno=2
|
|
5.29) Motif programs dump core almost immediately.
|
|
+5.30) cc complains that "language optional software package not installed"
|
|
+5.31) thr_create and other thread functions always return -1
|
|
+5.32) Solaris 2.4 seems to have a kernel memory leak.
|
|
|
|
6. SOFTWARE DEVELOPMENT
|
|
6.1) Where is the C compiler or where can I get one?
|
|
6.2) What about the linker, the assembler and make?
|
|
6.3) Where has ranlib gone?
|
|
6.4) What do I need to compile X11R5?
|
|
6.5) I can't compile X11R6 on Solaris 2.4
|
|
6.6) X11R6 on Solaris 2.4 won't run. Xinit dies with "User Signal 1".
|
|
Xterms won't die.
|
|
6.7) I get undefined symbols when compiling R6 in Solaris 2.2.
|
|
6.8) I can't get perl 4.036 to compile or run.
|
|
6.9) I can't get sockets to work with perl.
|
|
6.10) I have problems compiling MH 6.8.3
|
|
6.11) I can't get XV 3.x to compile or run correctly.
|
|
6.12) What happened to NIT? What new mechanisms exist for low-level
|
|
network access?
|
|
6.13) Where are all the functions gone that used to be in libc?
|
|
6.14) I'm still missing some functions: bcopy, bzero and friends.
|
|
6.15) Can I use the source compatibility package to postpone porting?
|
|
6.16) Why doesn't readdir work? It chops the first two characters of
|
|
all filenames.
|
|
6.17) Why do I get undefined symbols when linking with curses/termcap?
|
|
*6.18) Where are the Motif includes and libraries?
|
|
+6.19) Traceroute to Solaris 2.x machines gives many timeouts.
|
|
|
|
7. ACKNOWLEDGEMENTS
|
|
|
|
1. GENERAL
|
|
|
|
1.1) What's a Solaris anyway?
|
|
|
|
Solaris(tm) is Sun's name for their UNIX-based user environment,
|
|
including the UNIX(tm) operating system, window system (X11-based),
|
|
and other stuff too.
|
|
|
|
Solaris 1.x is a retroactive (marketing?) name for SunOS4.1.x (x>=1),
|
|
a version of UNIX that is BSD-like with some SVR4 features,
|
|
along with OpenWindows 3.0.
|
|
Solaris 2.x (which is what most everybody means by "Solaris")
|
|
includes SunOS5.x, which is an SVR4-derived UNIX,
|
|
along with OpenWindows 3.x, tooltalk, and other stuff.
|
|
(See 1.5 for a chart with more info)
|
|
|
|
1.2) Why should I care? Why should I upgrade?
|
|
|
|
Solaris 2 is more compatible with the rest of the UNIX industry.
|
|
Other major UNIX vendors including IBM, HP, SGI, SCO, and others
|
|
are based on System V rather than on BSD (though some of them
|
|
are on SVR3, not SVR4). All but one commercial PC-based UNIXes
|
|
are System V based (and mostly SVR4); the only commercial exception
|
|
is from a small but interesting firm called BSDI.
|
|
|
|
Solaris 2 is where Sun has been putting almost all its development
|
|
for the last few years now. There will be no new development on
|
|
SunOS4; already much of Sun's add-on software is only available
|
|
for Solaris 2. Solaris 2 is the only supported MP OS on all but
|
|
the old 4/6x0-1x0 w/ Ross 605 modules.
|
|
|
|
Most Sun software is being released first for Solaris 2.x.
|
|
|
|
Solaris 2.3 features a standard X11R5 release of The X Window
|
|
System, a benefit for those who didn't like NeWS or the
|
|
V2/V3 OpenWindows server. (It's still called OpenWindows, but
|
|
it is the X11R5 server with Adobe DPS added in). It is as fast
|
|
or faster than MIT R5 (depending on the platform) and supports
|
|
all Sun graphics hardware.
|
|
|
|
Solaris 2 is more standards-compliant than Solaris 1/SunOS 4.
|
|
|
|
1.3) Should I move to Solaris 2.x now, or later, or never?
|
|
|
|
That depends - on you, your situation, your application mix, etc.
|
|
Some year SunOS4.1.x will go the way of the 3/50 - it'll still
|
|
be around, but Sun will no longer support it.
|
|
|
|
You don't have to upgrade immediately, but you should be
|
|
planning your upgrade path by now.
|
|
|
|
1.4) What is Solaris 2? Is it really SVR4 based?
|
|
|
|
Solaris 2 is an "operating environment" that includes the
|
|
SunOS 5.x operating system and the OpenWindows 3.x window
|
|
environment.
|
|
|
|
SunOS 5.x are based on USL's SVR4.0. SVR4.0, in turn, was
|
|
developed jointly by AT&T and Sun while Sun was developing 4.1.0,
|
|
which is why things like RFS, STREAMS, shared memory, etc.,
|
|
are in SunOS 4.1.x, and why things like vnodes, NFS and XView
|
|
are in SVR4.0. (RFS, by the way, is being dropped effective
|
|
with Solaris 2.3).
|
|
|
|
1.5) What machines does Solaris 2.x run on?
|
|
|
|
Solaris 2.0 only ran on desktop SPARCstations and a few other Sun
|
|
machines.
|
|
|
|
Solaris 2.1 and 2.4 and later come in two flavors, SPARC and "x86".
|
|
|
|
Solaris 2.1 (and 2.2, ...) for SPARC run on all SPARCstations and
|
|
clones, as well as all models of the Sun-4 family. The old FPU
|
|
on the 4/110 and 260/280 is not supported, so floating point
|
|
will be SLOW, but it does work.
|
|
|
|
All version of the Openboot PROMs should work under Solaris 2.x.
|
|
|
|
A Solaris port for the PowerPC is underway. It is expected
|
|
to be completed first half '95. IBM will be selling systems
|
|
with Solaris pre-installed and shrink-wrapped for people who
|
|
bought a different OS with their PowerPC. The first systems
|
|
are expected to be 66MHz 601s and 603s. (SunExpert 11/94)
|
|
|
|
Solaris 2.1 and 2.4 for x86 has been released to end users.
|
|
It runs on a wide range of high-end PC-architecture machines.
|
|
"High-end" means: 16MB of RAM and an 80486 (or 33MHz or faster
|
|
80386DX). It will not run on your 4 MB 16MHz 386SX, so don't
|
|
bother trying! Also, floating point hardware (80387-style) is
|
|
absolutely required in 2.1. Starting with Solaris 2.4 for
|
|
x86, a fp CO-processor is no-longer required, though still
|
|
recommended. All three buses are supported: ISA, EISA, MCA.
|
|
Some PCI devices are supported, though full bus nexus support
|
|
for PCI is not there. See also 3.31.
|
|
|
|
To summarize all this, Jim Prescott gave this chart, which I've
|
|
updated:
|
|
|
|
Solaris SunOS OpenWin Comments
|
|
1.0 4.1.1B 2.0
|
|
4.1.1_U1 2.0 sun3 EOL release (not named Solaris)
|
|
1.0.1 4.1.2 2.0 6[379]0-1[24]0 MP
|
|
1.1 4.1.3 3.0 SP Viking support
|
|
1.1C 4.1.3C 3.0 Classic/LX
|
|
1.1.1 4.1.3_U1 3.0_U1 4.1.3 + fixes + Classic/LX support
|
|
1.1.1 B 4.1.3_U1B 3.0_U1 1.1.1B + SS5/SS20 support
|
|
1.1.2 4.1.4 3_414 The "final" 4.x release (SS20 HS11)
|
|
|
|
2.0 5.0 3.0.1 sun4c only
|
|
2.1SPARC 5.1 3.1 Dec '92
|
|
2.1 x86 5.1 3.1 May '93
|
|
2.2SPARC 5.2 3.2 May '93
|
|
2.3SPARC 5.3 3.3 Nov '93
|
|
OpenWin 3.3 is X11R5 based: Display
|
|
PostScript instead of NeWS, no SunView.
|
|
It is still primarily OPEN LOOK.
|
|
The Spring 1995 OpenWin will be Motif
|
|
and COSE-based.
|
|
2.3 edition II SPARC Special Solaris 2.3 distribution for
|
|
Voyager and SparcStation 5
|
|
2.3 hardware 5/94 SPARC ??
|
|
2.3 hardware 8/94 SPARC Supports S24 (24 bits color for SS5),
|
|
POSIX 1003.2, Energy Start power management
|
|
and SunFastEthernet + patches.
|
|
2.4 5.4 3.4 From this moment on, the SPARC and x86
|
|
releases are in sync. Q3 '94
|
|
Adds motif runtime and headers (not mwm).
|
|
2.4 hardware 11/94 First SMCC release of 2.4
|
|
2.4 hardware 3/95 Second SMCC release of 2.4 (includes support
|
|
for booting from SSA)
|
|
|
|
1.6) Will my old applications from 4.1.x run on Solaris 2?
|
|
|
|
There is quite a bit of support in SunOS 5.x for running 4.1.x
|
|
binaries in an emulation mode called "Binary Compatibility"
|
|
(BCP). This works by dynamically linking the 4.1.x binaries
|
|
with a shared library that emulates the 4.1.x binary interface
|
|
on top of 5.x, so there is some overhead. Programs will only
|
|
work if they were dynamically linked (statically linked
|
|
binaries run in 2.3, but with some extra restrictions),
|
|
and if they meet certain other criteria. Best bet:
|
|
try it and see.
|
|
|
|
Be aware, though, that Sun WILL drop the binary compatibility
|
|
package some year. Try to wean yourself and your users from
|
|
depending on it, even if it means beating on your software
|
|
vendors to offer "native" Solaris2 applications.
|
|
|
|
1.7) Will my old applications from SVR3 on the 386 run on Solaris 2/x86?
|
|
|
|
As with SPARC, there is an emulation mode that should run the
|
|
majority of well-behaved SVR3 and Xenix binaries. Most
|
|
SVR3 stuff appears to work under Solaris 2.4.
|
|
|
|
Applications from any other vendor's standards-conforming
|
|
386/486 SVR4 should also run.
|
|
|
|
However, some vendors have made incompatible changes to their
|
|
SVR4 release and programs linked on those versions may not work.
|
|
Future versions of Solaris 2.x for Intel will address some/most
|
|
of those incompatibilities. Unixware is one of the offenders.
|
|
|
|
1.8) Where has the XXX command gone now?
|
|
|
|
There are too many of these changes to include in this FAQ, but
|
|
here are some key ones:
|
|
|
|
a. locations are often different
|
|
hostid /usr/ucb/hostid
|
|
whoami /usr/ucb/whoami
|
|
hostname /usr/ucb/hostname (or use uname -n)
|
|
|
|
b. some old commands don't exist or have replacements
|
|
|
|
4.1.X Solaris 2.X
|
|
|
|
pstat -s swap -s (how much swap space?)
|
|
dkinfo /usr/sbin/prtvtoc raw_dev_name
|
|
trace truss
|
|
mount -a mountall
|
|
exportfs share
|
|
bar cpio -H bar (read only)
|
|
|
|
This information can be found in the Solaris 2.x Transition Guide -
|
|
Appendix A (commands), Appendix B (system calls), Appendix C (files).
|
|
|
|
This guide has undergone some changes from 2.0 -> 2.1 and beyond.
|
|
Several manuals have ended up being combined into this single
|
|
manual. This manual discusses administrative transition and
|
|
developer transition issues.
|
|
|
|
The command "whatnow" (for Solaris 2.x) is included in the
|
|
"Admigration Toolkit" package (see below). The Admigration
|
|
toolkit can be obtained from:
|
|
|
|
opcom.sun.ca:/pub/AMToolkit-2.3.*
|
|
Admigration toolkit HTML documentation/code
|
|
[URL: http://www.sun.com/smcc/solaris-migration/products/product-search-form.html]
|
|
|
|
Sample output:
|
|
% whatnow hostname
|
|
hostname 4.x command only
|
|
hostname /usr/ucb/hostname part of SCP package
|
|
hostname /usr/bin/uname -n alternate command
|
|
|
|
The whatnow command is limited in that it may point to
|
|
one command which may only implement a subset of the old
|
|
command (e.g., pstat points to sar, while pstat -s is identical
|
|
to swap -s)
|
|
|
|
1.9) When I upgrade, should I use SunInstall "upgrade", or start over?
|
|
|
|
You can't do a SunInstall "upgrade" from 4.1.x to Solaris2.
|
|
You can use the Admigration toolkit (q.v.) to help you move
|
|
from SunOS 4.1.x (Solaris 1, actually) to Solaris 2.
|
|
|
|
If you're moving from Solaris 2.1 to 2.2, or 2.2 to 2.3, ...,
|
|
then you can use "upgrade" to preserve your existing partitions
|
|
and local changes (including pkgadd!!), though it runs very
|
|
slowly (about 1.5-2x the time for a reinstall) and does require
|
|
that you have enough free space in / and /usr - make these big
|
|
when you first install! If you run out of space in one of
|
|
your partitions, you can always remove some components. Those
|
|
will not be upgraded and can be installed elsewhere after
|
|
initial upgrade (e.g., you can remove OW, Xil, Dxlib, manual
|
|
pages, etc)
|
|
|
|
There is no need to backout patches before upgrading.
|
|
In 2.2, the system would back them out for you, in 2.3 it
|
|
won't back out the patches but removes them without a trace.
|
|
|
|
The upgrade doesn't work as well as a full install.
|
|
E.g., the upgrade from 2.x (x<3) to 2.3 will leave
|
|
aliases for all your ptys in /devices/pseudo.
|
|
|
|
1.10) Is Solaris 2.x reliable/stable enough to use?
|
|
|
|
The consensus seems to be that yes, it is, for many applications
|
|
and most users. Your mileage may vary.
|
|
|
|
Binary compatibility was much improved in 2.3. That will help
|
|
transition somewhat. The performance of 2.3 is adequate, though
|
|
some parts of the system are still slower than SunOS 4.1.x.
|
|
Solaris 2.3 is much more stable on MP machines than 2.2.
|
|
The Solaris 2.3 version of OpenWindows is much faster and much
|
|
more stable than the versions shipped with SunOS 4.1.x.
|
|
|
|
Solaris 2.1 and earlier should really be avoided. Solaris 2.2
|
|
should be avoided too, but some people need to stick to it
|
|
until some applications get ported (2.2 is the last release
|
|
with NeWS)
|
|
|
|
Solaris 2.3 still has some problems on high-end MP systems with
|
|
large numbers of interactive users. Solaris 2.4 promises much
|
|
more scalable multi-processing.
|
|
|
|
1.11) Why do some people dislike Solaris2?
|
|
|
|
There is a number of reasons why people dislike Solaris.
|
|
|
|
1) Change. In general people dislike change. Change requires
|
|
re-learning and retraining. Old system administration practices
|
|
no longer work. Commands have been replaced by other commands,
|
|
some commands behave differently. And they ask why the change was
|
|
necessary. SunOS 4.x worked for them.
|
|
|
|
2) Lack of migration support. Sun did not provide a lot of
|
|
tools to ease migration. Many applications wouldn't run in the
|
|
binary compatibility mode. The source compatibility mode was
|
|
probably compatible with some OS, but it certainly wasn't SunOS.
|
|
Lot of public domain and third party stuff needed wasn't
|
|
immediately available for Solaris. NIS+, buggy, resource hungry
|
|
and instable replaced NIS in incompatible ways.
|
|
|
|
3) Missing functionality. When people migrate, they at first
|
|
don't tend to notice new functionality. Instead, they stumble
|
|
upon missing functionality such as screenblank, clear_colormap
|
|
and the like (but see 3.18). And perhaps worst of
|
|
all, no C compiler, not even a crippled one.
|
|
|
|
4) Slow and buggy. The initial Solaris releases didn't perform
|
|
at all well and were extremely instable. This is improving
|
|
rapidly, but SuperSPARC MP machines need a heavily patched 2.3
|
|
to work reliably.
|
|
|
|
*1.12) Why do some people *like* Solaris2?
|
|
|
|
There are improvements in Solaris 2.x.
|
|
|
|
1) OpenWindows 3.3 (in Solaris 2.3). Includes X11R5 and
|
|
Display PostScript.
|
|
|
|
2) ANSI-C and POSIX development environment.
|
|
|
|
3) Multi-threaded kernel and real threads.
|
|
|
|
4) True multi-processing.
|
|
|
|
5) Goodies: vold, admintool and Wabi.
|
|
|
|
6) Easy patch installation/administration through installpatch.
|
|
|
|
7) all software in easy to manage "packages"
|
|
|
|
+1.13) What is Sun doing to help me migrate?
|
|
|
|
Sun has recently started several projects to aid in the transition.
|
|
Their WWW starting point is:
|
|
|
|
Solaris Migration Initiative home page
|
|
[URL: http://www.sun.com/smcc/solaris-migration/index.html]
|
|
|
|
The project is a combination of new and existing efforts and includes:
|
|
|
|
1) Porting PD software to Solaris 2.x
|
|
2) Solaris Migration Tool: (formerly known as Pipeline tool) a tool
|
|
to help you port your code.
|
|
3) Admigration Toolset. Tools to help you convert your SunOS 4
|
|
environment and to help you adjust to the new Solaris 2.x envrionment.
|
|
4) Appmap: a tool to simplify application administration in a mixed
|
|
SunOS 4.x/Solaris 2.x envrionment
|
|
5) Solaris Transition CD (June '95)
|
|
6) Native Solaris NIS (July '95)
|
|
7) LP tools (simplified LP administration through NIS) (July '95)
|
|
|
|
|
|
|
|
2. MORE INFO
|
|
|
|
2.1) How can I RTFM when I don't have it anymore?
|
|
|
|
"RTFM" is an old saying: Read The "Fine" Manual. Sun still
|
|
sell printed manuals, but doesn't automatically distribute
|
|
them. As with all real UNIX systems, you do get a full set of
|
|
online "man" pages. A smaller, lighter, bookshelf-friendly :-)
|
|
CD-ROM called "The AnswerBook"(tm) contains all the printed
|
|
documents in machine-readable (PostScript) form, with hypertext
|
|
capabilities and a keyword search engine. 90% of your
|
|
introductory questions are answered therein!
|
|
|
|
In Solaris 2.x the Answerbook set gets increasingly more
|
|
divided into pieces. It is currently (2.3) split over 4 CDs
|
|
|
|
Solaris 2.x CD:
|
|
Solaris 2.x User AnswerBook
|
|
|
|
Solaris 2.x administrator answerbook
|
|
Solaris 2.x System Administrator AnswerBook
|
|
Solaris 2.x on Sun Hardware AnswerBook
|
|
Solaris 2.x Reference Manual AnswerBook
|
|
|
|
Solaris 2.x Software Developer Kit
|
|
All programming manuals.
|
|
|
|
Solaris 2.x Driver Developer Kit
|
|
Device driver developer manuals.
|
|
|
|
There is some overlap between CDs.
|
|
|
|
As distributed with 2.1 and 2.2, the Answerbook search engine
|
|
runs only with the OpenWindows ("xnews") server, not with MIT
|
|
X11. This changed in 2.3. If you are using the MIT server
|
|
instead of what Sun provides, you'll have to use one of several
|
|
"answerbook workaround" scripts that are in circulation. The
|
|
AnswerBook distributed with 2.3 and later runs with the OW3.3
|
|
X11R5+DPS server, so it should display on any X11+DPS server,
|
|
such as on DEC, IBM and SGI workstations.
|
|
|
|
You should buy (or print from within Answerbook) at least the
|
|
reference manual and the System and Network Administration
|
|
books, because if your system becomes disabled you won't be
|
|
able to run the Answerbook to find out how to fix it...
|
|
|
|
2.2) Why is "man -k" so confused?
|
|
|
|
Solaris man uses a manual page index file called "windex" in
|
|
place of the old "whatis" file. You can build this index with
|
|
cd <man-page-directory>; catman -w -M .
|
|
|
|
But, in 2.1, this will result in numerous "line too long" messages
|
|
and a bogus windex file in /usr/share/man, and a core dump in
|
|
/usr/openwin/man. (In 2.2, catman works in /usr/share/man, but
|
|
says "line too long" in /usr/openwin/man). To add injury to
|
|
insult, "man" normally won't show you a man page if it can't find
|
|
the windex entry, even though the man page exists.
|
|
|
|
There's a "makewhatis" script in /usr/openwin/man that works
|
|
better than catman. But watch it - by default it searches files
|
|
in /usr/man, not in openwin, and it only looks in some predefined
|
|
man subdirectories. Try changing its "for ..." command to
|
|
"for i in man*", then use it like this:
|
|
cd /usr/share/man; /usr/openwin/man/makewhatis .
|
|
cd /usr/openwin/man; /usr/openwin/man/makewhatis .
|
|
|
|
Still (!), the openwin windex file is somewhat hosed (try "man
|
|
answerbook" :-(. You can always delete the bogus lines manually...
|
|
or, you can alias man to "man -F", forcing it to look for the
|
|
bloody file like you asked.
|
|
|
|
But wait, there's more! To see the read(2) man page, you can't
|
|
just type "man 2 read" anymore - it has to be "man -s 2 read".
|
|
Or, alias man to this little script:
|
|
|
|
#!/bin/sh
|
|
if [ $# -gt 1 -a "$1" -gt "0" ]; then
|
|
/bin/man -F -s $*
|
|
else
|
|
/bin/man -F $*
|
|
fi
|
|
|
|
2.3) What Software is available for Solaris 2.x?
|
|
|
|
Most commercial software that ran on 4.x either will run in BCP
|
|
mode, or is available for Solaris 2.x, or is being ported now.
|
|
Solaris 2.3 BCP mode finally supports statically-linked executables.
|
|
|
|
You can obtain a list of official 3rd party porting
|
|
commitments, maintained by Sun's "Solaris Demand Center"
|
|
(whatever that is), by sending electronic mail to
|
|
"sparc_products@thegift.sun.com" -- this is an automatic reply
|
|
server. The list shows what third party applications are currently
|
|
available for Solaris, and lists expected dates for many more.
|
|
|
|
A list of freeware (some "public domain", but mostly copyright-
|
|
but-freely-distributable) [as well as commercial software??]
|
|
that has been ported to Solaris 2.x
|
|
is posted monthly to the newsgroup comp.unix.solaris by
|
|
ric@updike.sri.com (Richard Steinberger). Look for this:
|
|
|
|
Subject: Solaris SW list. Monthly Post.
|
|
|
|
If you can't wait, the list is also available via anonymous FTP
|
|
from updike.sri.com.
|
|
|
|
2.4) What FTP/WWW sites do I need to know about?
|
|
|
|
www.sun.com [URL: http://www.sun.com]
|
|
Sun's own WWW site, contains pointers to Sunsites, patches
|
|
and has lots of info, press releases etc, etc.
|
|
|
|
Solaris transition home page
|
|
[URL: http://www.sun.com/smcc/solaris-migration/index.html]
|
|
Sun's Solaris 2.x migration support
|
|
|
|
SunSites - Sun sponsored sites. Lots of good stuff here:
|
|
SunSITE USA at UNC - Chapel Hill (sunsite.unc.edu)
|
|
[URL: http://sunsite.unc.edu/newhome.html]
|
|
SunSITE Japan at Science University - Tokyo (sunsite.sut.ac.jp)
|
|
[URL: http://sunsite.sut.ac.jp/homepage.html]
|
|
SunSITE North Europe at Imperial College - London (src.doc.ic.ac.uk)
|
|
[URL: http://src.doc.ic.ac.uk/public]
|
|
Sun SITE Russia at Moscow State University - Moscow
|
|
[URL: "http://sunsite.cs.msu.su/"]
|
|
Sun SITE Singapore at National University of Singapore - Singapore
|
|
[URL: "http://sunsite.nus.sg/"]
|
|
Sun SITE South Africa at University of the Witwatersrand - Johannesburg
|
|
[URL: "http://sunsite.wits.ac.za/"]
|
|
|
|
Solaris at UMBC - Solaris tips & tricks by Vijay Gill
|
|
[URL: http://umbc8.umbc.edu/~vijay/solaris/solaris.html]
|
|
|
|
ftp.x.org - the master X11 site
|
|
|
|
camus.quintus.com:/pub/GNU - GNU binaries
|
|
|
|
ftp.uu.net - UuNet communication archives
|
|
(mirrors abovementioned GNU binaries in systems/gnu/solaris2.3)
|
|
[URL: ftp://ftp.uu.net/systems/gnu/solaris2.3]
|
|
|
|
OpCom. (opcom.sun.ca) - run by Sun Microsystems' OpCom group - lots
|
|
of stuff. Here is some of the stuff that's online:
|
|
|
|
pub/AMToolkit.* - the Administration Migration (4.1.x to Solaris 2)
|
|
Toolkit
|
|
|
|
pub/binaries - binaries/man pages for Solaris 2.0 native binaries.
|
|
|
|
pub/newsletter - issues of the monthly OpCom newsletter.
|
|
|
|
pub/docs - assorted documentation, papers, and other information.
|
|
- all of the RFCs
|
|
|
|
pub/drivers - information related to device driver writing under
|
|
under Solaris 2.0 as well as a skeleton SCSI driver.
|
|
|
|
ls-lR.Z - compressed recursive listing of files available
|
|
on the server.
|
|
|
|
pub/tars - compressed tars.
|
|
|
|
pub/tmp - place for uploading things to the server.
|
|
|
|
pub/R5 - the unadultered MIT x11r5 distribution.
|
|
|
|
pub/x11r5 - port of X11r5 to Solaris 2.0, binaries, libraries
|
|
and headers. A compressed tar of this tree can
|
|
be found in tars.
|
|
|
|
prep.ai.mit.edu and the GNU mirrors
|
|
|
|
pub/gnu/sparc-sun-solaris2 - recent gcc binaries for SPARC
|
|
pub/gnu/i486-sun-solaris2 - recent gcc binaries for i486
|
|
|
|
ftp.fwi.uva.nl
|
|
pub/solaris
|
|
- where the Solaris FAQ is kept, including an html
|
|
version.
|
|
Accompanied by versions of the wabi1.0 FAQ and
|
|
x86 hw-config as send out by Sun's autoreply daemons.
|
|
|
|
pub/solaris/auto-install
|
|
- fully automated auto-install scripts, including
|
|
an explanation of exactly what a machine needs when
|
|
booting the installation, automated patch installation
|
|
and even post-install updates from your install tree,
|
|
which gives you an easy way to keep all your Solaris
|
|
machines in sync.
|
|
|
|
2.5) What other FAQ's do I need to know about?
|
|
|
|
All of them :-). But in particular you should see these FAQ's:
|
|
|
|
1) Sun Computer Administration Frequently Asked Questions
|
|
[URL: "http://aurora.latech.edu:80/sunadminfaq.html"]
|
|
|
|
2) The "Solaris 2 Porting FAQ"
|
|
[URL: http://www.cis.ohio-state.edu/hypertext/faq/usenet/Solaris2/porting-FAQ/faq.html]
|
|
|
|
3) comp.windows.open-look - Anything related to OpenWindows or the
|
|
OPEN LOOK Graphical User Interface.
|
|
|
|
4) The Sun-Managers mailing list (see below) has its own FAQ,
|
|
maintained by John DiMarco <jdd@cdf.toronto.edu>.
|
|
FTP from ra.mcs.anl.gov in the sun-managers directory.
|
|
|
|
5) See also the "Solaris SW list. Monthly Post" above and the
|
|
"whatlist" file.
|
|
|
|
2.6) What mailing lists should I get?
|
|
|
|
First, read all the USENET newsgroups with "sun" in their name :-)
|
|
|
|
1) The Florida SunFlash is a "closed" mailing list for Sun owners.
|
|
It contains mostly press releases from Sun and third-party
|
|
vendors. This list contains information on conferences such as
|
|
the Solaris Developer's Conference as well. It is normally
|
|
distributed regionally - to find out about a mail point in your
|
|
area, or for other information send mail to info-sunflash@Sun.COM.
|
|
|
|
Subscription requests should be sent to sunflash-request@Sun.COM.
|
|
Archives are on solar.nova.edu, ftp.uu.net, sunsite.unc.edu,
|
|
src.doc.ic.ac.uk and ftp.adelaide.edu.au
|
|
|
|
2) The Sun Managers list is an unmoderated mailing list for
|
|
*emergency-only* requests. Subscribe and listen for a while,
|
|
and read the regularly-posted Policy statement BEFORE sending
|
|
mail to it, and to get a feel for what kinds of traffic it carries.
|
|
Write to sun-managers-request@eecs.nwu.edu.
|
|
|
|
2.7) What books should I read?
|
|
|
|
O'Reilly & Associates specializes in UNIX books. Their "UNIX
|
|
[URL: http://www.ora.com]
|
|
In A Nutshell" has been updated for SVR4 and Solaris 2.0. Get
|
|
their catalog by calling 800-998-9938 (1-707-829-0515) 7AM to
|
|
5PM PST.
|
|
|
|
SunSoft Press carries books specific to Solaris 2. Look for the
|
|
inset with your End User Media Kit that lists the most relevant ones.
|
|
|
|
Prentice-Hall has reprints of much of the AT&T documentation.
|
|
I'm not sure how much of this you need - a lot of the same
|
|
material is in the Answerbook (see above).
|
|
|
|
2.8) What hardware is supported by Solaris 2.x for Intel?
|
|
|
|
The complete and often updated list Solaris x86 hardware options
|
|
can be obtained by sending an email message without subject/body
|
|
to:
|
|
|
|
x86hcl@sun.com (ascii)
|
|
x86hcl.ps@sun.com (postscript)
|
|
|
|
or
|
|
x86-hwconfig@Cypress.West.Sun.Com
|
|
|
|
This address currently sends out info on Solaris 2.4.
|
|
|
|
2.9) What is Wabi?
|
|
|
|
Wabi is Sun's new MS-Windows-under-unix emulator.
|
|
The Wabi faqs can be obtained by sending an empty message to:
|
|
|
|
wabi1.0-questions@East.Sun.com
|
|
wabi1.1-questions@East.Sun.com
|
|
|
|
The list of current Wabi (and future :-) apps can be obtained by
|
|
mailing:
|
|
|
|
wabi1.0-apps@East.Sun.COM
|
|
wabi1.1-apps@East.Sun.COM
|
|
wabi2.0-apps@East.Sun.COM
|
|
|
|
Applications that execute a lot of X86 code, run fastest on
|
|
Solaris 2.x_86, as no x86 emulation needs to be done.
|
|
Applications that are more windows intensive will run
|
|
better on machines with faster graphics hardware.
|
|
|
|
The currently shipping version of Wabi is Wabi 2.0.
|
|
|
|
Wabi will not be made available for SunOS 4.1.x.
|
|
|
|
|
|
3. SYSTEM ADMINISTRATION
|
|
|
|
3.1) How much disk space do I need to install Solaris 2?
|
|
|
|
A full install of 2.2 is supposed to be 164 MB, but that doesn't
|
|
include swap. Here is a net exchange between Casper Dik and Gil Tene:
|
|
|
|
In article <1993Apr2.083549.19177@fwi.uva.nl>, Casper writes:
|
|
|> >How much disc space does SOLARIS take up ? That is should we buy a
|
|
|> >424MB disc or get a 1Gb disc to put it on :-)
|
|
|>
|
|
|> Solaris 2.x takes about as much diskspace as SunOS 4.x:
|
|
|>
|
|
|> Partition/Slice Solaris SunOS
|
|
|> / 10MB 8MB
|
|
|> /usr 78MB 90MB
|
|
|> /var 10MB 10MB
|
|
|> /usr/openwin 83MB 83MB
|
|
|>
|
|
|
|
Gil replies:
|
|
On my system, with a full Solaris installation (EVERYTHING selected)
|
|
+ gnu's binary stuff for solaris (off of the Catalyst CD) installed
|
|
in /opt I see a similar situation to the above plus :
|
|
|
|
16852 /opt/SUNWabe
|
|
19 /opt/SUNWcg12
|
|
7968 /opt/SUNWdiag
|
|
721 /opt/SUNWgt
|
|
7740 /opt/SUNWits
|
|
14609 /opt/cygnus-sol2-1.0
|
|
|
|
(output from "du -k -s /du/*")
|
|
|
|
- SUNWabe is the end user answerbook stuff. (vi, mail, Deskset tools
|
|
etc, etc)
|
|
|
|
- SUNWcg12 is (obviously) cg12 support.
|
|
|
|
- SUNWdiag is obvious too.
|
|
|
|
- SUNWgt is support for gt boards.
|
|
|
|
- SUNWits is the xgl3.0 library (it has libPEX5.so.1 in there too).
|
|
|
|
- cygnus-sol2-1.0 is the gcc2.0+tools stuff. I have gcc2.3.3 on
|
|
another partition and that takes about the same space as 2.0 does.
|
|
|
|
Another important note : The full Solaris 2.1 answerbook takes up 164MB
|
|
on disk. I highly recommend installing it and not using it off the
|
|
CDROM drive. It's much more usable (faster) this way. And it always
|
|
stays around -- even when you have something else in the CDROm drive.
|
|
|
|
3.2) How can I convert all my local changes that I've made over the
|
|
years into their corresponding forms on Solaris 2?
|
|
|
|
1) Do it by hand. You did document every single change and
|
|
check it into RCS, didn't you?
|
|
|
|
2) Automate it, using the AMToolkit (Administration Migration
|
|
Toolkit) from the OpCom FTP server (q.v.)!
|
|
|
|
3.3) What are "packages"?
|
|
|
|
A SVR4 mechanism for "standardizing" the installation of
|
|
optional software. Most vendors are expected to use this
|
|
format for distributing add-on software for Solaris 2.x.
|
|
|
|
Packages can be installed/deinstalled with pkgadd/pkgrm which
|
|
are standard SVR4 items, or with swm (CRT) or swmtool (GUI-based)
|
|
which are provided only in Solaris 2.
|
|
|
|
Note that the "pkg" system keeps lots of files in /var/sadm/install,
|
|
and in particular the file "contents", which is hundreds of KB,
|
|
and that there are two copies of it while pkgadd is running, so you
|
|
needs lots of free space where /var is, typically the root.
|
|
This file must be kept around if you want, for example, to use
|
|
pkgrm to remove a package, or pkgchk to verify months later that
|
|
all of a a package's files are still intact.
|
|
|
|
Summary of pkg* commands:
|
|
|
|
pkginfo <pkg> - test for presents of package.
|
|
pkgadd -d /<cdrom>/Solaris_2.3 <pkg ...>
|
|
- add missing packages
|
|
pkgrm <pkg ...> - remove packages.
|
|
pkgchk -q <pkg> - test for existence of package
|
|
pkgchk <options> [pkg] - check installed packages for
|
|
integrity.
|
|
|
|
3.4) Why can't I write in /home?
|
|
|
|
This is a common one! SunOS is delivered with the "automounter"
|
|
enabled. The automounter is designed for NFS sites, to
|
|
simplify maintenance of the list of filesystems that need
|
|
mounting. However it is a burden for standalone sites.
|
|
|
|
The automounter takes over /home and in effect becomes the NFS
|
|
server for it, so it no longer behaves like a normal directory.
|
|
This is normally a Good Thing as it simplifies administration if
|
|
everybody's home directory is /home/<username>.
|
|
|
|
To kill it off for standalone or small networks, you can comment out
|
|
the three lines in /etc/init.d/nfs.client that start "if" (from the if
|
|
to the fi!!), and reboot (Solaris 2.2) or remove the file
|
|
/etc/rc2.d/S73autofs (Solaris 2.3). You can always relink
|
|
that file with /etc/init.d/autofs if you change your mind.
|
|
|
|
To learn about it, read the O'Reilly book "Managing NFS and
|
|
NIS", or ftp the white paper 'The Art of Automounting". from
|
|
sunsite.unc.edu in the directory /pub/sun-info/white-papers.
|
|
|
|
3.5) Why can't I access CDs or floppies?
|
|
|
|
Solaris 2.2 introduces a new scheme for automatically mounting
|
|
removable media. It consists of a program "vold" (volume daemon) which
|
|
sits around watching for insertions of floppies and CD's,
|
|
handles ejects, talks to the file manager, and invokes a second
|
|
program called "rmmount" (removable media mounter) to mount the disk.
|
|
|
|
Note that on most SPARCstations, you must run "volcheck"
|
|
whenever you insert a floppy, as the floppy hardware
|
|
doesn't tell SunOS that a floppy was inserted.
|
|
|
|
Advantages of this scheme:
|
|
- no longer need root; users can mount and unmount at will.
|
|
- can do neat tricks like automagically start "workman" or
|
|
other Audio CD player when audio CD inserted.
|
|
- extensible - developers can write their own actions
|
|
|
|
Drawbacks:
|
|
- can no longer access /dev/rfd0 to get at floppy; must use
|
|
longer name like /vol/dev/rdsk/floppy0
|
|
- similarly, CD's get mounted on /cdrom/VOLNAME/SLICE, e.g.,
|
|
/cdrom/solaris_2_2/s0 is slice 0 of the Solaris 2 CD
|
|
(nice that it does mount all the partitions, though!).
|
|
|
|
To read or write a non-filesystem floppy (tar, cpio, etc),
|
|
put in the diskette and run "volcheck" from the commandline or
|
|
click "Check for Floppy" in the filemgr to get it noticed; then access
|
|
/vol/dev/rfd0/unlabeled (e.g. "tar tvf /vol/dev/rfd0/unlabeled").
|
|
|
|
[Solaris 2.3: /vol/dev/rdiskette0/unlabeled, or
|
|
/vol/dev/aliases/floppy0.]
|
|
|
|
If you want the old behavior, it's been suggested that you
|
|
can comment out the vold startup in /etc/init.d/volmgt and
|
|
then reboot; an easier way is # /etc/init.d/volmgt stop.
|
|
|
|
3.6) Why are there no passwords in /etc/passwd?
|
|
|
|
System V Release 4 includes a feature called "shadow passwords".
|
|
The encrypted passwords are moved out into a shadow password file
|
|
(called /etc/shadow in this release) that is NOT publicly readable.
|
|
The passwd file has always been readable so that, for example, ls -l
|
|
could figure out who owns what. But having the passwd encryptions
|
|
readable is a security risk (they can't be decrypted but the bad guy
|
|
can encrypt common words and names &c and compare them with the
|
|
encryptions).
|
|
|
|
The Shadow Password feature is mostly transparent, but if you
|
|
do any passwd hacking you have to know about it! And DO make
|
|
sure that /etc/shadow is not publicly readable!
|
|
|
|
3.7) Why can't I rlogin/telnet in as root?
|
|
|
|
>... when I try to rlogin as root ...
|
|
>it gives me the message "Not on system console
|
|
>Connection closed.". What have I left out?
|
|
|
|
Solaris 2 comes out of the box a heck of a lot more secure than
|
|
Solaris 1. There is no '+' in the hosts.equiv. root logins are not
|
|
allowed anywhere except the console. All accounts require passwords.
|
|
In order to allow root logins over the net, you need to edit the
|
|
/etc/default/login file and comment out or otherwise change the
|
|
CONSOLE= line.
|
|
|
|
/etc/hosts.equiv is still supported, but there is no default.
|
|
|
|
This file's CONSOLE entry can actually be used in a variety of ways:
|
|
|
|
1) CONSOLE=/dev/console (default) - direct root logins only on console
|
|
2) CONSOLE=/dev/ttya - direct root logins only on /dev/ttya
|
|
3) CONSOLE= - direct root logins disallowed everywhere
|
|
4) #CONSOLE (or delete the line) - root logins allowed everywhere
|
|
|
|
3.8) How can I have a user without a password?
|
|
|
|
There are basically two ways to achieve this:
|
|
|
|
Edit /etc/default/login and comment out PASSREQ=YES or change it
|
|
to PASSREQ=NO.
|
|
|
|
The second way is to give a particular use no password with the
|
|
following entry in /etc/shadow:
|
|
|
|
user::9092:9999:9999::::
|
|
|
|
3.9) How can I set up anonymous FTP?
|
|
|
|
If you need help, ftp the file "solaris2.ftpsetup" from
|
|
ftp.cs.toronto.edu:/pub/darwin/solaris2.
|
|
|
|
ftpd(1M) is nearly complete when it comes to setting
|
|
up anonymous ftp. It only leaves out /etc/nsswitch.conf. [S2.3]
|
|
|
|
Additionally, you must make sure that the filesystem ~ftp resides
|
|
on is not mounted with the nosuid option.
|
|
|
|
3.10) How can I print from a Solaris 2 (or any System V Release 4) system
|
|
to a SunOS4.x (or any other BSD) system?
|
|
|
|
Hmmm, the lp system is totally different than what you're used to.
|
|
The System V Line Printer System is a lot more, well, flexible.
|
|
A cynic might say "complicated". Here's a very quick guide --
|
|
see the man pages for each of these commands for the details.
|
|
|
|
Let's say your Solaris2 workstation is called "sol" and the
|
|
4.1.x server is called "bertha" and you want the printer name
|
|
to be "printer" (imaginative, eh?).
|
|
|
|
sol# lpsystem -t bsd bertha # says bertha is a bsd system
|
|
sol# lpadmin -p printer -s bertha # creates "printer" on "sol"
|
|
# to be printed on "bertha"
|
|
sol# accept printer # allow queuing
|
|
sol# enable printer # allow printing
|
|
sol# lpstat -t # check the status
|
|
|
|
Finally, if that's your only printer, make it the default:
|
|
|
|
sol# lpadmin -d printer
|
|
|
|
On some systems you may have to turn on the port monitor.
|
|
|
|
I did that. Why does it now complain about invalid content types?
|
|
|
|
I said it was complicated!
|
|
|
|
For better or for worse, you need to know about printer content types.
|
|
See the man page for "lpadmin".
|
|
|
|
To get transparent mode, try this:
|
|
|
|
lpadmin -I any -p printer
|
|
|
|
Isn't there any easier way?
|
|
|
|
The GUI-based Admintool has a Printer Manager that is supposed to
|
|
be able to do all this and more. Try it; Sun hopes you'll like it.
|
|
|
|
Now my jobs print but they stay in the queue after!?
|
|
|
|
It's a known bug, and probably get fixed in 2.3.
|
|
There's also a number of lpsched patches out for
|
|
Solaris: 101025-xx (2.2) and 101317-xx (2.3).
|
|
Make sure you install those.
|
|
|
|
|
|
3.11) What if I'd rather use the BSD line printer system?
|
|
|
|
The 4.3BSD-reno lpr system for Solaris 2, file
|
|
lpr-sol2-p3.tar.gz or lpr-sol2-p3.tar.Z
|
|
is available from the following FTP site:
|
|
|
|
get ftp.nus.sg:/pub/NUS/ISCS/misc/lpr-sol2-p3.tar.gz
|
|
|
|
And don't despair. Someday the System V print spooler will be
|
|
replaced by something new. (See the Solaris 2.3/2.4 Open
|
|
Issues & Late Breaking News For System Administrators)
|
|
|
|
|
|
3.12) What happened to /dev/MAKEDEV? How do I add devices?
|
|
|
|
Device drivers are linked in dynamically. When you add new
|
|
devices, just shutdown the system and do
|
|
boot -r # use drive spec if not default disk
|
|
to *r*ebuild the /devices and /dev directories.
|
|
|
|
If you're just adding a SCSI disk, you don't need to reboot. Run the
|
|
following script (as root):
|
|
|
|
#!/bin/sh
|
|
#
|
|
# add-disk
|
|
#
|
|
# Runs the commands to make Solaris locate a new disk that
|
|
# has been plugged in after the system was booted.
|
|
#
|
|
|
|
/usr/sbin/drvconfig
|
|
/usr/sbin/devlinks
|
|
/usr/sbin/disks # or /usr/sbin/tapes for tapes
|
|
/usr/ucb/ucblinks # Compatibility links
|
|
|
|
exit 0
|
|
|
|
Note that this only works if you already have at least one SCSI disk on
|
|
the system. (This is because the above just makes symbolic links and
|
|
things, it does not load up the SCSI driver kernel modules, etc.)
|
|
|
|
*3.13) Why isn't my tape/cd player or new disk/device recognized?
|
|
|
|
Devices must be turned on and present when you configure
|
|
the system. After adding devices you must boot -r with all
|
|
the devices turned on. See also 3.12
|
|
|
|
3.14) What happened to /etc/rc and /etc/rc.local?
|
|
|
|
They're now fragmented into 12 million tiny little pieces. Look in
|
|
the following files to get oriented:
|
|
/etc/inittab - starting point for init
|
|
/sbin/rcS, /etc/rcS.d/* - booting stuff
|
|
/sbin/rc2, /etc/rc2.d/*,
|
|
/sbin/rc3, /etc/rc3.d/* - stuff for multi-user startup.
|
|
Note that all files in /etc/rc*.d/* are hardlinked from
|
|
/etc/init.d (with better names), so you should grep in there.
|
|
|
|
There are many "run levels" to the System V init; the run
|
|
level 3 is normally used for "multi user with networking."
|
|
|
|
I can't understand that stuff; can't I have /etc/rc.local back?
|
|
I just want to keep all my local changes in one place.
|
|
|
|
No. You can never have rc.local back the way it was. But then, it
|
|
never really *was* purely a "local" rc file. To have a real
|
|
"local" rc file with just your changes in it, copy this file
|
|
into /etc/init.d/rc.local, and ln it to /etc/rc3.d/S99rc.local.
|
|
Put your startup stuff in the "start" section.
|
|
|
|
----- Cut here -----
|
|
#!/sbin/sh
|
|
# /etc/init.d/rc.local - to be linked into /etc/rc3.d as
|
|
# S99rc.local -- a place to hang local startup stuff.
|
|
# started after everything else when going multi-user.
|
|
|
|
# Ian Darwin, Toronto, November, 1992
|
|
# As with all system changes, use at own risk!
|
|
|
|
case "$1" in
|
|
'start')
|
|
echo "Starting local services...\c"
|
|
|
|
if [ -f /usr/sbin/mydaemon ]; then
|
|
/usr/sbin/mydaemon 1>/dev/console 2>&1
|
|
fi
|
|
echo ""
|
|
;;
|
|
'stop')
|
|
echo "$0: Not stopping any services."
|
|
;;
|
|
*)
|
|
echo "Usage: $0 { start | stop }"
|
|
;;
|
|
esac
|
|
------ End of Cut Here -----
|
|
|
|
3.15) Speaking of that, why are there two versions of shutdown?
|
|
|
|
SVR4 (hence SunOS 5.x) tries to make everybody happy. The
|
|
traditional (slow) System V "shutdown" runs all the rc?.d/*
|
|
shell scripts with "stop" as the argument; many of them run
|
|
ps(!) to look for processes to kill. The UCB "shutdown" tells
|
|
init to kill all non-single-user processes, which is about two
|
|
orders of magnitude faster. Unfortunately, the UCB version does
|
|
everything it should *except* actually halt or reboot in
|
|
SunOS5.1 (and some other SVR4 implementations).
|
|
This is fixed in Solaris 2.3.
|
|
|
|
If you run a database (like oracle) or INN, you should
|
|
install a special /etc/rc?.d/K* script and make sure you
|
|
always shutdown the long way.
|
|
|
|
3.16) When will somebody publish a package of the BSD (4.3BSD Net2)
|
|
"init", "getty", and "rc/rc.local", so we can go back to life
|
|
in the good old days?
|
|
|
|
Getty should be easy and was reportedly done at a number of
|
|
sites. The port monitor isn't everyones favorite. But given
|
|
that you can do much more with the SVR4 init, why would
|
|
you want to change back? It would be much more trouble than
|
|
it's worth.
|
|
|
|
3.17) What has happened to getty? What is pmadm and how do you use it?
|
|
|
|
I was hoping you wouldn't ask. PMadm stands for Port Monitor Admin,
|
|
and it's part of a ridiculously complicated bit of software
|
|
over-engineering that is destined to make everybody an expert.
|
|
|
|
Best advice for workstations: don't touch it! It works out of the box.
|
|
For servers, you'll have to read the manual.
|
|
This should be in admintool in Solaris2.3.
|
|
For now, here are some basic instructions from Davy Curry.
|
|
|
|
"Not guaranteed, but they worked for me."
|
|
|
|
To add a terminal to a Solaris system:
|
|
|
|
1. Do a "pmadm -l" to see what's running. The serial ports on the
|
|
CPU board are probably already being monitored by "zsmon".
|
|
|
|
PMTAG PMTYPE SVCTAG FLGS ID <PMSPECIFIC>
|
|
zsmon ttymon ttya u root \
|
|
/dev/term/a I - /usr/bin/login - 9600 ldterm,ttcompat ttya \
|
|
login: - tvi925 y #
|
|
|
|
2. If the port you want is not being monitored, you need to create a
|
|
new port monitor with the command
|
|
|
|
sacadm -a -p PMTAG -t ttymon -c /usr/lib/saf/ttymon -v VERSION
|
|
|
|
where PMTAG is the name of the port monitor, e.g. "zsmon" or "alm1mon",
|
|
and VERSION is the output of "ttyadm -V".
|
|
|
|
3. If the port you want is already being monitored, and you want to
|
|
change something, you need to delete the current instance of the port
|
|
monitor. To do this, use the command
|
|
|
|
pmadm -r -p PMTAG -s SVCTAG
|
|
|
|
where PMTAG and SVCTAG are as given in the output from "pmadm -l". Note
|
|
that if the "I" is present in the <PMSPECIFIC> field (as it is above),
|
|
you need to get rid of it.
|
|
|
|
4. Now, to create a specific instance of ttymon for a port, issue the
|
|
command:
|
|
|
|
pmadm -a -p PMTAG -s SVCTAG -i root -fu -v 1 -m \
|
|
"`ttyadm -m ldterm,ttcompat -p 'PROMPT' -S YORN -T TERMTYPE \
|
|
-d DEVICE -l TTYID -s /usr/bin/login`"
|
|
|
|
Note the assorted quotes; Bourne shell (sh) and Korn (ksh) users
|
|
leave off the second backslash!
|
|
|
|
In the above:
|
|
|
|
PMTAG is the port monitor name you made with "sacadm", e.g. "zsmon".
|
|
|
|
SVCTAG is the service tag, which can be the name of the port, e.g.,
|
|
"ttya" or "tty21".
|
|
|
|
PROMPT is the prompt you want to print, e.g. "login: ".
|
|
|
|
YORN is "y" to turn software carrier on (you want this for directly
|
|
connected terminals" and "n" to leave it off (you want this
|
|
for modems).
|
|
|
|
TERMTYPE is the value you want in $TERM.
|
|
|
|
DEVICE is the name of the device, e.g. "/dev/term/a" or "/dev/term/21".
|
|
|
|
TTYID is the line you want from /etc/ttydefs that sets the baud rate
|
|
and stuff. I suggest you use one of the "contty" ones for
|
|
directly connected terminals.
|
|
|
|
5. To disable ("turn off") a terminal, run
|
|
|
|
pmadm -d -p PMTAG -s SVCTAG
|
|
|
|
To enable ("turn on") a terminal, run
|
|
|
|
pmadm -e -p PMTAG -s SVCTAG
|
|
|
|
Ports are enabled by default when you "create" them as above.
|
|
|
|
For more details, see the article:
|
|
SUMMARY: Solaris modem/terminal how-to: Rev xx.xx.xx
|
|
posted periodically to comp.unix.solaris by
|
|
celeste@xs.com (Celeste Stokely).
|
|
|
|
*3.18) How do I get the screen to blank when nobody's using it?
|
|
|
|
Under 4.1.x you invoke screenblank in /etc/rc.local, but there's no
|
|
screenblank in Solaris 2.1. Sun recommends that you
|
|
have everybody put `xset s on' in their .xinitrc, but this
|
|
may be hard to police, and in any event it won't work when nobody is
|
|
logged in. The simplest workaround is to copy /usr/bin/screenblank
|
|
from 4.1.x and run it in binary compatibility mode. See ``What
|
|
happened to /etc/rc and /etc/rc.local?'' for how to invoke it.
|
|
|
|
Another possibility is to use xdm, but you'll have to use your own,
|
|
since the xdm shipped with Solaris 2.1 doesn't work.
|
|
|
|
The 4.1.x screenblank didn't work for us; We use Jef Poskanzer's
|
|
freeware screenblank. His version is available from
|
|
ftp.netcom.com:/pub/jef/screenblank_21dec93.tar.Z.
|
|
|
|
Because of a bug in Solaris 2.3, you'll need to
|
|
specify -DHAVE_POLL=0 when compiling this version.
|
|
|
|
Solaris 2.4 comes with power management software for those systems
|
|
with a soft-switchable power supply. That may suit your needs
|
|
better than screenblank.
|
|
|
|
The powermanagement software can be used to switch off just the
|
|
screen, by putting thw folliwng in the power.conf file:
|
|
|
|
# Name Theshold(s) Logical Dependent(s)
|
|
/dev/kbd 600
|
|
/dev/mouse 600
|
|
/dev/fb 0 0 /dev/kbd /dev/mouse
|
|
|
|
Make sure you comment out the "autoshutdown" line if you want to
|
|
keep your machine running.
|
|
|
|
3.19) And what about screendump, screenload and clear_colormap?
|
|
|
|
You can FTP Jef's screenload, screendump, etc., if you need that
|
|
functionality, and for free you get a pixrect (clone) library.
|
|
Get one of these:
|
|
ftp.netcom.com:/pub/jef/raster-pixrect_30dec93.tar.Z
|
|
ee.lbl.gov:/raster-pixrect_30dec93.tar.Z
|
|
|
|
The 4.1.x versions of these programs will not run under
|
|
Solaris 2.2 or later. The pixrect BCP library is no
|
|
longer supported.
|
|
|
|
3.20) Where did etherfind go?
|
|
|
|
There is a replacement for etherfind, but it has changed name;
|
|
in fact it's a whole new program. It IS better. To find it,
|
|
though, you would have to realize that network snooping is not
|
|
really Ethernet-specific. To end the suspense :-), here it is:
|
|
|
|
% man -k snoop
|
|
snoop snoop (1m) - capture network packets and inspect them
|
|
%
|
|
|
|
It works differently - it has an immediate mode, a
|
|
capture-to-disk mode, and a playback-from-disk mode. Read the
|
|
man page for details.
|
|
|
|
3.21) Can I run SunOS4.1.x on my SPARC Classic, LX, SS5, SS20, Voyager,
|
|
SS1000, SC2000?
|
|
|
|
The Classic, LX and the single processor models of the SS20
|
|
are still supported under some version of SunOS 4.1.x.
|
|
A lot of people wanted these machines but only if they ran
|
|
SunOS 4.1.x. When the Classic/LX came out, clone manufacturers
|
|
were able to provide SunOS 4.1.x with it, Sun came out with
|
|
SunOS 4.1.3C some time later.
|
|
|
|
The Classic, LX and SS5 and SS20 are supported in the most recent
|
|
Solaris 1.x release, SunOS 4.1.3_U1 rev B (Solaris 1.1.1B). The
|
|
Classic and LX are supported since 4.1.3C (release for LX & Classic
|
|
only), the SS20/SS5 since release 4.1.3_U1 rev B (Solaris 1.1.1B).
|
|
Note that none of these OS versions support SuperSPARC MP or any of
|
|
the new graphics hardware (ZX, SX, S24).
|
|
|
|
The Voyager is not supported under SunOS 4.1.x, too many new device
|
|
drivers have been added plus the suspend resume feature.
|
|
|
|
The XDbus machines SS1000/SC2000 are also not supported under
|
|
SunOS 4.1.x. Support for the kernel architecture and XDBus is
|
|
missing in 4.x.
|
|
|
|
3.22) The "find" program complains that my root directory doesn't exist?
|
|
|
|
Yes! Actually, messages like
|
|
|
|
find : cannot open /: No such file or directory.
|
|
|
|
are due to a bug in the tree walking function (nftw(3)).
|
|
|
|
Fixed in 2.4 and in the 2.3 kernel jumbo patch 101318 (-41 or later)
|
|
|
|
|
|
3.23) I'm having troubles with high-speed input on the Sparc serial
|
|
ports. What should I do?
|
|
|
|
Try using UUCP. The Solaris 2.x sparc serial driver has
|
|
trouble receiving data at or above 9600 bps. Symptoms include
|
|
sluggish response, `NOTICE: zs0: silo overflow' console
|
|
messages, sending spurious control-Gs to the serial port, and
|
|
applications that cannot be killed even with `kill -9'. This
|
|
problem surfaces in many applications, including Kermit and
|
|
tip. UUCP seems immune, though, because its protocol throttles
|
|
input sufficiently.
|
|
|
|
3.24) How do I make ksh or csh be the login shell for root?
|
|
|
|
Root's shell is /sbin/sh, which is statically linked.
|
|
Don't just insert a 'c' before "sh" as previously, as that would
|
|
look for /sbin/csh, which doesn't exist. Don't just change it to
|
|
/bin/csh, since that's really /usr/bin/csh, which is dynamically
|
|
linked, because:
|
|
a) /usr may not be mounted initially, and then
|
|
you're in deep (the shared libraries are in /usr!), and
|
|
b) There is code in the startup scripts that assumes that
|
|
everything critical is in /etc/lib, not /usr/lib.
|
|
Approach with caution!
|
|
|
|
Safer bet - have an alternate root account, like "rootcsh",
|
|
with uid 0, and /bin/csh as its shell. Put it after root's entry in
|
|
the passwd file. Only drawback: you now have to remember to
|
|
change all of root's passwords at the same time.
|
|
|
|
Third bet - in root's .profile, check if /usr is mounted and, if so,
|
|
exec /bin/ksh or whatever.
|
|
|
|
3.25) What is this message: "automount: No network locking on host,
|
|
contact administrator to install server change."?
|
|
|
|
The other machine (an NFS server) is running 4.1.x and needs a
|
|
patch from Sun to update its network lock daemon (lockd). If
|
|
you don't install the patch on the server, file locking will
|
|
not work on files mounted from "thathost". The lockd jumbo patch
|
|
fixes a bunch of other lock manager problems, so it may be a
|
|
Good Thing To Get; however, it may also cause the machine on
|
|
which the patch is installed to have trouble talking to servers
|
|
with no patch or older patches, so Be Warned.
|
|
|
|
The lockd patches are: 100075 (now 4.1.3 only), 101817 (4.1-4.1.2)
|
|
and 101784 (4.1.3_U1), 100518 (for Online: Disksuite).
|
|
|
|
3.26) How do I make Solaris2 use my Toshiba MK538FB and other
|
|
older SCSI disks?
|
|
|
|
Append this line to /etc/system and reboot:
|
|
|
|
set scsi_options & ~0x80
|
|
|
|
This turns off Command Queuing, which upsets the Toshiba
|
|
and some other drives.
|
|
|
|
3.27) How do I make Solaris2 use my old ADAPTEC ACB-4000 and
|
|
Emulex MD-21 diskcontrollers?
|
|
|
|
As with any hardware addition, first try the obvious (boot -r
|
|
after installing and power-cycling everything).
|
|
|
|
The adaptec is no longer supported; man -s7 sd no longer even
|
|
lists it! So I guess they go over the cliff. Either that, or
|
|
take the drives out and put them on a PC, where ST506 MFM
|
|
drives are still supported.
|
|
|
|
The MD21 should work, though some people report that SCSI
|
|
doesn't work in 4/260 boxes (bug-id #11187521).
|
|
|
|
3.28) Why are there so many patches for Solaris 2.x?
|
|
|
|
Solaris 2.x releases are essentially frozen TWO months before
|
|
their general release date. During the early access/beta test
|
|
period bugs are found both in the beta and in the previous
|
|
release. That's why at the moment a new release comes out a
|
|
number of patches is ready. Some of those are on the Solaris
|
|
2.x CD. Others were released almost at the same time as 2.x,
|
|
or even before 2.x becomes generally available.
|
|
|
|
Some bugs are found in the previous release that can't be fixed
|
|
in the time for the next release. And bugs get added to new
|
|
code.
|
|
|
|
3.29) What are the ``mandatory'' patches I keep hearing about?
|
|
|
|
The mandatory patches weren't mandatory, so they've been relabeled.
|
|
They're now called ``recommended'' patches.
|
|
|
|
The recommended patches are those patches Sun recommends for
|
|
trouble free system operation. With those patches installed,
|
|
your chances on trouble free operation are higher. That doesn't
|
|
mean you will run into trouble without them.
|
|
|
|
These recommended patches can be anonymously ftp'ed from
|
|
official Sun ftp sites.
|
|
|
|
3.30) Where do I get patches from?
|
|
|
|
ugle.unit.no:/pub/unix/sun-fixes
|
|
|
|
SunSites (carry recommended and security patches):
|
|
|
|
sunsite.unc.edu:/pub/sun-info/sun-patches
|
|
sunsite.sut.ac.jp:/pub/sun-info/sun-us/sun-patches
|
|
sunsite.doc.ic.ac.uk:/sun/sunsite-sun-info/sun-patches
|
|
|
|
Sunsolve:
|
|
|
|
sunsolve1.sun.com:/pub/patches
|
|
http://sunsolve1.sun.com/
|
|
|
|
This Sun's own site, it has the recommended patches up for
|
|
anonymous ftp, packaged as one huge 2.x_Recommended.tar.Z file
|
|
and as individual patches.
|
|
|
|
Starting with SunSolve CD 2.1.2 ALL Sun patches are shipped
|
|
on the SunSolve CD.
|
|
|
|
Contract customers can get all patches by ftp from Sunsolve
|
|
or via e-mail and query one of the online sunsolve-databases
|
|
on the internet.
|
|
|
|
3.31) Where can I obtain Solaris 2/x86 driver updates?
|
|
|
|
The Solaris x86 driver updates can be obtained by anonymous ftp from:
|
|
|
|
ftp.uu.net:/vendor/sun/sun-doc/x-86-driver
|
|
sunsite.unc.edu:/pub/sun-info/solaris-x86/sunsoft-drivers
|
|
|
|
3.32) Why does installing patches take so much space in /var/sadm?
|
|
|
|
All the files that are replaced by a patch are stored under
|
|
/var/sadm/patch/<patch-id>/save so the patch can be backed
|
|
out safely.
|
|
|
|
You can remove the <patchdir>/save directory provided you also
|
|
remove the <patchdir>/.oldfilessaved file.
|
|
|
|
Alternatively, you can install a patch w/o saving the old
|
|
files by using the "-d" flag to installpatch.
|
|
|
|
3.33) Do I need to back out previous versions of a patch?
|
|
|
|
No, unless otherwise stated in the patch README.
|
|
If the previous patch installation saved the old
|
|
files, you may want to reclaim that space.
|
|
|
|
Patches can be backed out with:
|
|
|
|
/var/sadm/patch/<patch-id>/backoutpatch <patch-id>
|
|
|
|
Backoutpatch can take an awful long time, especially when the
|
|
patch contained a lot of files.
|
|
|
|
3.34) How can I have more than 48 pseudo-ttys?
|
|
|
|
Edit /etc/system and add the following line:
|
|
|
|
* System V pseudo terminals
|
|
|
|
set pt_cnt = <num>
|
|
|
|
* BSD pseudo ttys
|
|
|
|
set npty = <num>
|
|
|
|
Halt the system and boot -r.
|
|
|
|
3.35) How can I get ps to print %MEM and %CPU?
|
|
|
|
Prior to Solaris 2.4, the OS didn't do the bookkeeping
|
|
necessary to obtain these values. In Solaris 2.4 the code
|
|
was added to kernel and /usr/ucb/ps can now show these values.
|
|
|
|
3.36) How can I get the DOS and Unix clock to agree on Solaris/x86?
|
|
|
|
After installation, run the command /usr/sbin/rtc -z $TZ,
|
|
where $TZ is your timezone. The default root crontab runs
|
|
/usr/sbin/rtc -c once everyday.
|
|
|
|
That way your clock will give the proper time whether you boot
|
|
Solaris or DOS/Windows.
|
|
|
|
3.37) Hoe can I increase the number of filedescriptors per process?
|
|
|
|
In 2.3 in earlier this requires poking the kernel.
|
|
In Solaris 2.4, this can be accomplished by adding the
|
|
following lines to /etc/system:
|
|
|
|
* set hard limit on filedescriptors
|
|
set rlim_fd_max = 4096
|
|
* set soft limit on filedescriptors
|
|
set rlim_fd_cur = 1024
|
|
|
|
3.38) Can I install both SunOS and Solaris on the same machine,
|
|
and choose between them at boot time?
|
|
|
|
Yes, that is possible. All partitions other than the system
|
|
partitions (typically /, /usr, /var and /opt) can be shared by the
|
|
two OSes. All partitions, including the system partitions, can be
|
|
mounted and accessed by either OS.
|
|
|
|
The easiest way to set this up is to do separate suninstalls on two
|
|
different disks. Then just choose the appropriate disk at boot
|
|
time with the PROM's "boot" command.
|
|
|
|
Setting up both OSes on one disk is a little harder, but not much.
|
|
You need to partition the disk to allow for both OSes. Almost any
|
|
partition layout is possible, but one common setup might be:
|
|
|
|
a: / for Solaris 2
|
|
b: swap (shared)
|
|
c: The usual (whole disk)
|
|
d: / for Solaris 1
|
|
e: /usr for Solaris 1
|
|
g: /usr for Solaris 2
|
|
|
|
Again, it's most reliable to use suninstall to do the installations.
|
|
If for some reason you choose not to use suninstall, make sure you run
|
|
installboot for both bootable partitions.
|
|
|
|
With this setup, you choose between the two OSes in the PROM's "boot"
|
|
command as follows:
|
|
|
|
To boot Solaris 2: boot
|
|
To boot Solaris 1: boot disk:d
|
|
|
|
NOTE: In boot PROM versions <= 2.5, the "disk:d" syntax is not supported,
|
|
and the PROM cannot boot from root partitions that begin or end beyond 1GB.
|
|
|
|
3.39) How do I disable banner pages under Solaris?
|
|
|
|
As root, go to directory /etc/lp/interfaces. Edit the file that
|
|
corresponds to the printer name. Change the line that reads
|
|
'nobanner="no"' to 'nobanner="yes"'.
|
|
|
|
|
|
4. NETWORKING
|
|
|
|
4.1) How do I use DNS w/o using NIS or NIS+?
|
|
|
|
Under SunOS 4.1 it was next to impossible to run DNS name resolution
|
|
without either a kludge fix or the NIS (V2 I guess). Under Solaris
|
|
2.1 it is incredibly simple, but you must ignore what the manual
|
|
(SunOS 5.1 Administering NIS+ and DNS) says (the manual is fixed
|
|
in Solaris 2.2). All that is required to make a non-NIS host
|
|
use the DNS for name resolution is to change the host: line in
|
|
the /etc/nsswitch.conf file to the following:
|
|
|
|
hosts: files dns
|
|
|
|
(i.e., when looking for hosts, look in /etc/hosts first, if not
|
|
found there, try DNS, if still not found then give up) and set
|
|
up a correct version of /etc/resolv.conf to tell the resolver
|
|
routines (like gethostbyname) how to contact the DNS
|
|
nameserver. You must have the names of machines which are
|
|
somehow contacted during boot in the files in /etc and files
|
|
must appear first in the hosts: line, otherwise the machine
|
|
will hang during boot (at least ours did). Make sure that
|
|
/etc/netconfig is using switch.so. (It does from the factory.)
|
|
|
|
4.2) Speaking of nsswitch.conf, what is it?
|
|
|
|
An idea whose time has come (it came to Ultrix a few years
|
|
ago). You can control which of the "resolver" services are
|
|
read from NIS (formerly YP), which from NIS+, which from the
|
|
files in /etc, and which are from DNS (but only "hosts" can
|
|
come from DNS).
|
|
|
|
A common example would be:
|
|
|
|
hosts: nis files
|
|
|
|
which means ask NIS for host info and, if it's not found, try
|
|
the local machine's host table as a fall back.
|
|
|
|
Advice: if you're not using NIS or DNS, SunInstall probably put
|
|
the right version in. If you are, ensure that hosts and passwd
|
|
come from the network. However, many of the other services
|
|
seldom if ever change. When was that last time *you*
|
|
added a line in /etc/protocols? If your workstation has a local
|
|
disk, it may be better to have programs on your machine look up
|
|
these services locally, so use "files".
|
|
|
|
Terminology: Sun worried over the term "resolver", which
|
|
technically means any "get info" routine (getpwent(3),
|
|
gethostbyname(3), etc), but is also specifically attached to
|
|
the DNS resolver. Therefore they used the term "source" to
|
|
mean the things after the colon (files/DNS/NIS/NIS+) and
|
|
"database" to mean the thing before the colon
|
|
(passwd/group/hosts/services/netgroup etc).
|
|
|
|
A complete discussion can be found in nsswitch.conf(4).
|
|
|
|
4.3) What does [NOTFOUND=return] in nsswitch.conf mean?
|
|
|
|
Type "man nsswitch.conf" for more info. There is too much
|
|
detail to summarize here. Briefly, [NOTFOUND=return] means
|
|
that the name service whose entry it *follows* should be
|
|
considered authoritative (so that if it's up and it says such a
|
|
name doesn't exist, believe it and return instead of continuing
|
|
to hunt for an answer).
|
|
|
|
*4.4) Can I run a nis/yp server under Solaris 2.x?
|
|
|
|
Yes, you need the Solaris network transition kit available from
|
|
Sun. However, his kit does not include the securenets patch.
|
|
Patch 101363-08 supposedly fixes this. This patch includes
|
|
*all* of the nskit, so there's no need to get more than just the
|
|
patch.
|
|
|
|
4.5) Can I run NIS+ under Solaris 1 (SunOS 4.1.x)
|
|
|
|
Sort of, with the NIS+ server implementation for Solaris 1.x
|
|
that comes on the Solaris 2.x CD. This is a server side only
|
|
implementation and requires NIS+ to run in YP compatibility
|
|
mode.
|
|
|
|
4.6) With NIS+ how do I find out which machine a client is bound to?
|
|
|
|
Nis+ clients do not hard bind to nis+ servers in the same
|
|
way that nis clients bind to nis servers. The clients have a
|
|
list of nis+ servers within the cold-start file. When they need
|
|
to do a lookup they do a type of broadcast called a "manycast"
|
|
and talk to the first server that responds. This way they can
|
|
be sure to use the lightest loaded server for the request.
|
|
|
|
4.7) Ypcat doesn't work on the netgroup table on a NIS+ server, why?
|
|
|
|
Yes, that is a known problem. The only operations allowed from
|
|
a NIS client side on the netgroup table are the ypmatches, but
|
|
not ypcat (i.e. no support for yp_first(), yp_next() or
|
|
yp_all() calls). The netgroup table is kind of unique in
|
|
this. The reason for this is that the netgroup table format
|
|
changed quite significantly in NIS+ and the NIS+ server would
|
|
take a big performance hit in converting the netgroups table to
|
|
YP (key-value) format.
|
|
|
|
4.8) Why is rpc.nisd such a memory pig according to ps?
|
|
|
|
The good news is that it's not memory OR swap space you're
|
|
being shown by 'ps'. Instead it's showing you the process
|
|
ADDRESS space which includes 256 MB of address space reserved
|
|
for the NIS+ transaction log. Given the cost of moving things
|
|
around in memory and the fact that we have 4 GB of address
|
|
space to play with it, this is a good idea. You've just got to
|
|
stop thinking small. THINK BIG. It's only 1/16th of the total
|
|
process address space being used. And if you ever exceed the
|
|
256 MB size of the transaction log you're doing something VERY
|
|
wrong.
|
|
|
|
4.9) Why is Xsun such a memory pig, especially on the SX?
|
|
|
|
Ps counts the mappings for the framebuffer as memory.
|
|
Especially on the SX where a number of different mappings
|
|
of the device address space is used to optimize
|
|
access this can cause large amounts of memory, but not
|
|
physical memory, to be mapped and shown by ps.
|
|
|
|
4.10) How do I tell my NIS+ server to service DNS requests from
|
|
4.x clients?
|
|
|
|
Start rpc.nisd with the -B switch. This can be done editing
|
|
the server's /etc/init.d/rpc file and change 'EMULYP="-Y"' to
|
|
|
|
EMULYP="-Y -B"
|
|
|
|
+4.11) How can I have multiple addresses per interface?
|
|
|
|
Solaris 2.x provides an undocumented feature in ifcofnig that
|
|
allows having more than one IP address per interfaces.
|
|
|
|
Syntax:
|
|
|
|
ifconfig IF:N ip-address up
|
|
|
|
where "IF" is an interface (e.g., le0) and N is a number between 1 and
|
|
255. Removing the pseudo interface and associated address is done
|
|
with "ifconfig IF:N 0.0.0.0 down".
|
|
|
|
|
|
5. TROUBLE SHOOTING
|
|
|
|
5.1) The Solaris 2.x application XX fails with a mysterious error condition.
|
|
|
|
Try truss(1). truss -f -o file cmd args ...
|
|
will put a trace of all system calls in "file".
|
|
This often helps as a first step in diagnosing certain
|
|
failure modes, such as insufficient permissions on file etc.
|
|
|
|
5.2) Why can't I run Answerbook on a standalone machine?
|
|
|
|
This is a bug in openwindows. Using xhost + or starting
|
|
openwin -noauth works around this problem. This is
|
|
only recommended for stand-alone machines with no dial-in
|
|
users. [ S 2.3 ]
|
|
|
|
5.3) Why can't I run filemgr, I get ``mknod: permission denied''?
|
|
|
|
This is a symptom of a bug in filemgr in Solaris 2.3
|
|
Either apply patch #101514 or run the following commands
|
|
at system start-up:
|
|
mkdir /tmp/.removable
|
|
chmod a+rwxt /tmp/.removable
|
|
|
|
5.4) Why do I get isinf undefined when linking with libdps?
|
|
|
|
That's a bug in libdps. Sun compiles and links its software
|
|
with its own compilers. The isinf() function is shipped with
|
|
the SunPRO compilers, but not defined in any Solaris 2.x library.
|
|
|
|
A workaround exists, and consists of adding the following to
|
|
your program:
|
|
|
|
#include <ieeefp.h>
|
|
|
|
int isinf(double x) { return !finite(x) && x==x; }
|
|
|
|
5.5) I can't get PPP to work between Solaris 2.3 and other platforms.
|
|
|
|
The PPP shipped with Solaris 2.3 doesn't interoperate with
|
|
other PPP implementations. Patch #101425 fixes this.
|
|
|
|
5.6) Using compat mode for passwd doesn't work in 2.3?
|
|
|
|
You need patch #101448.
|
|
|
|
5.7) Why do I get __builtin_va_alist or __builtin_va_arg_incr undefined?
|
|
|
|
You're using gcc without properly installing the gcc fixed
|
|
include files. Or you ran fixincludes after installing gcc
|
|
w/o moving the gcc supplied varargs.h and stdarg.h files
|
|
out of the way and moving them back again later. This often
|
|
happens when people install gcc from a binary distribution.
|
|
If there's a tmp directory in gcc's include directory, fixincludes
|
|
didn't complete. This can happen when you run fixincludes in
|
|
the background w/o redirecting I/O.
|
|
|
|
Another possible cause is using ``gcc -I/usr/include.''
|
|
|
|
5.8) My machine hangs during the boot process. It seems related to ps.
|
|
|
|
When the system boots, the first invocation of ps will try to
|
|
recreate /tmp/ps_data. To this end ps scans the /dev tree.
|
|
Under some circumstances, a loop exists in /dev and ps will
|
|
run forever. Most of the time this loop is caused by the symbolic
|
|
link /dev/bd.off. While this link usually points to /dev/term/b,
|
|
it sometimes get truncated and points to /dev instead.
|
|
|
|
Fix: rm -f /dev/bd.off; ln -s /dev/term/b /dev/bd.off
|
|
|
|
Use truss(1) to determine whether this is real the cause of your
|
|
problem.
|
|
|
|
5.9) Syslogd doesn't seem to log anything.
|
|
|
|
Make sure you have /usr/ccs/bin/m4 installed. It's in
|
|
package SUNWbtool.
|
|
|
|
Other causes are bugs in Solaris 2.3 and various revisions of
|
|
patches. E.g., syslogd is broken in all 101318 patches
|
|
between level -42 and -50. It works again in 101318-54.
|
|
|
|
5.10) I get ``Invalid client credential'' when mounting filesystem on
|
|
Solaris client from non-Sun fileserver.
|
|
|
|
Some vendors still ship a version of RPC/NFS that allows at
|
|
most 8 groups in the client credentials. Root on Solaris is by
|
|
default in 10 groups. As a result, the Solaris 2.x mount
|
|
command will send AUTH_UNIX credentials that are too big to
|
|
cope with for the remote mount daemon resulting in the ``Invalid
|
|
client credential'' error.
|
|
|
|
Workaround: put root and all your users in 8 or less groups.
|
|
NOTE: You must logout and login again for changes in the number
|
|
of groups to take effect. (or exit root's shell and re-su)
|
|
|
|
+5.11) After upgrade to 2.4, ls on NFS mounted directories hangs.
|
|
|
|
In starting with Solaris 2.4, a kernel workaround to limit
|
|
NFS readdir requests to 1024 bytes was disabled by default.
|
|
This breaks interoperability with buggy old NFS implementations
|
|
(such as SunOS 3.2, Ultrix and possibly NeXT)
|
|
|
|
There are two workarounds. The first one works and is:
|
|
|
|
mount all filesystems from such servers with rsize=1024.
|
|
|
|
The second one, which requires a patch for bugid #1193696 is:
|
|
|
|
Edit /etc/system and add:
|
|
|
|
set nfs:nfs_shrinkreaddir = 1
|
|
|
|
and reboot.
|
|
|
|
+5.12) After installing patch 101945-xx, I have NFS problems (ksh looping)
|
|
|
|
Patch 101945-17 introduced an bug in the NFS client code that makes
|
|
that programs using NFS locking will sometimes go in an
|
|
interruptable read. (I.e., you can kill the program that hangs)
|
|
|
|
Truss will show the program sleeping in read(2) while top
|
|
will show it eating CPU. The ksh seems to have this quite
|
|
a lot. There's also a lot of network traffic.
|
|
|
|
Workaround: mount NFS filesystems with "noac", but this costs
|
|
performance.
|
|
|
|
5.13) I messed up /etc/system, now I can't boot.
|
|
|
|
Boot with -as. The kernel will ask you all sorts of questions,
|
|
including the name of the system file. Use the previous
|
|
/etc/system file or specify /dev/null.
|
|
|
|
5.14) The /etc/path_to_inst file is corrupted, I can't boot.
|
|
|
|
Boot with -a and specify /dev/null as path_to_inst file.
|
|
|
|
5.15) TCP/IP connections time out too soon, especially on slow links.
|
|
|
|
The tcp/ip abort interval in Solaris 2.x is too short,
|
|
the default value is 2 minutes. The result is that when an
|
|
ACK isn't received in *2* minutes, the connection is closed.
|
|
This is most often seen by sendmail, which will log
|
|
|
|
sendmail: SYSERR: collect: read timeout on connection from ...
|
|
|
|
You can fix this by running following command which increases
|
|
the timeout to 8 minutes (unit is millisec), which is the
|
|
Solaris 2.4 (and patched 2.3 default)
|
|
|
|
/usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 480000
|
|
|
|
This command should be placed in a script rc2.d script. (See 3.14)
|
|
|
|
(See 5.16 for another possible cause)
|
|
|
|
*5.16) Solaris 2.x can't set up any TCP/IP connections to certain hosts.
|
|
|
|
Solaris 2.x sets the don't fragment bit on all packets it send
|
|
as part of MTU path discovery. The Solaris 2.x implementation
|
|
is RFC compliant, but the MTU path discovery protocol will
|
|
fail when there are broken routers in the path.
|
|
Typical symptom is not being able to connect from a
|
|
Solaris 2.x hosts but having no trouble from other hosts or
|
|
being able to start a TCP/IP connection but not move any
|
|
significant amount of data.
|
|
|
|
/usr/sbin/ndd -set /dev/ip ip_path_mtu_discovery 0
|
|
|
|
(See also 5.15)
|
|
|
|
Please note that Solaris 2.x will still send large packets over
|
|
such links but without the don't fragment bit set. On a number of
|
|
occasions, I've come accross links that don't properly handle
|
|
such packets. They're not fragmented, they're dropped instead.
|
|
|
|
So if the above fix doesn't work you can resort to the following
|
|
drastic measure which negatively impacts network performance:
|
|
|
|
/usr/sbin/ndd -set /dev/tcp tcp_mss_max 536
|
|
|
|
536 is the standard packet size that is guaranteed to work by virtue
|
|
of the fact that most system will communicate outside the local
|
|
net with packets that big. If the connection then starts to work,
|
|
it's time to find the largest value that works.
|
|
|
|
It's also worth mentioning that the "ip_path_mtu_discovery" needs
|
|
to be applied at both sides of a connection to fully work, applied
|
|
at one side it will only affect outgoing large packets. (I.e.,
|
|
downloads from the site will succeed but uploads from a other
|
|
Solaris 2.x machine w/o the workarounf applied may still fail). The
|
|
"tcp_mss_max" workaround need only be applied at one side.
|
|
|
|
If you need the "tcp_mss_max" workaround for some sites,
|
|
there a problem on the link between you and those sites.
|
|
Get it fixed.
|
|
|
|
5.17) When reading mail on non-Solaris clients of a Solaris mail
|
|
server, or with non-Solaris mail readers, some messages get split
|
|
into multiple messages.
|
|
|
|
Solaris 2.x uses the "Content-Length:" header to tell the MUAs
|
|
where messages should be split. Unfortunately, no-one else
|
|
understands this convention. Instead, the old convention, ``split
|
|
on "From " lines'' is used most of the time. Those mail readers
|
|
expect extra lines with "From" to be escaped with ">".
|
|
|
|
Workaround: add "E" to the mailerflags of the local mailer.
|
|
Edit /etc/mail/sendmail.cf on your Solaris machines, add E to
|
|
F= on the line that reads:
|
|
|
|
Mlocal, P=/bin/mail, F=flsSDFMmnP, S=10, R=20, A=mail -d $u
|
|
|
|
so that it becomes:
|
|
|
|
Mlocal, P=/bin/mail, F=EflsSDFMmnP, S=10, R=20, A=mail -d $u
|
|
|
|
+5.18) Mailx/Mail often send reply to wrong user or show wrong sender.
|
|
|
|
Mailx/Mail use UUCP from line to determine sender, it should use
|
|
the From: header only. To achieve this you can use the undocumented
|
|
"from" mail variable in your .mailrc: "set from".
|
|
|
|
To make this the default behaviour, add "set from" to
|
|
/etc/mail/mailx.rc.
|
|
|
|
5.19) One of my users can't login (one some machines).
|
|
|
|
In the shadow table/file/map there is a field that indicates how
|
|
long an account may be inactive before it is expired. On login,
|
|
the entry in /var/adm/lastlog, the inactive expire time and the
|
|
current date are compared. If the system determines that the user
|
|
is expired, he will get "Login incorrect", indiscernible from a
|
|
normal incorrect login. The fix is changing the user's shadow
|
|
entry.
|
|
|
|
5.20) My clients with remote /var (/var/adm) partitions won't boot.
|
|
|
|
Remote, but unshared filesystems, such as /, /var, /var/adm, etc
|
|
should be mounted with the llock option. Solaris 2.x does this
|
|
automatically for remote /, but not for remote /var or /var/adm.
|
|
If you don't specify llock, the system will hang when it tries
|
|
to do stuff to the *[wu]tmp files, early in the boot process.
|
|
|
|
Workaround: Add the (undocumented) llock option to the mount
|
|
options for /var and/or /var/adm. (It should be fixed in
|
|
/etc/rcS.d/S70buildmnttab.sh)
|
|
|
|
5.21) Vacation doesn't work reliably in a mixed Solaris/SunOS environment.
|
|
|
|
Vacation was moved from /usr/ucb (in SunOS 4.x) to /usr/bin.
|
|
Unfortunately, the full pathname must be specified in your .forward.
|
|
|
|
Workaround: add a link to /usr/ucb/vacation in /usr/bin on SunOS 4
|
|
machines, and add a link to /usr/bin/vacation in /usr/ucb on SunOS 5
|
|
machines.
|
|
|
|
5.22) I have a lot of <defunct> processes. How do I get rid of them?
|
|
|
|
In Solaris 2.3 (and presumably earlier) there is a bug in the
|
|
pseudo tty modules that makes them hang in close. This causes
|
|
processes to hang forever while exiting.
|
|
|
|
Fix: Apply patch 101415-02 (for 2.3).
|
|
|
|
5.23) I get /dev/ptmx: No such device when logging in.
|
|
|
|
You need to increase the number of pseudo ttys.
|
|
|
|
If you also have a lot of <defunct> processes, you may
|
|
be hit by a bug in the OS. (See 5.22)
|
|
|
|
5.24) ld bails out with msync errors.
|
|
|
|
You probably use a Cray as fileserver. It doesn't support all
|
|
NFS operations ld want to perform. Install the folowing patch:
|
|
101409-04: SunOS 5.3: Jumbo linker patch
|
|
|
|
[ Solaris 2.3 ]
|
|
|
|
5.25) su responds with "Sorry" and doesn't prompt for a password.
|
|
|
|
Su won't run under a shell compiled under SunOS 4.1.x.
|
|
Recompile your shell (tcsh/bash) under Solaris 2.x.
|
|
|
|
*5.26) Why can't I install 2.4 from a non-Sun CD while I could do so wth 2.3?
|
|
|
|
Several changes were made to the "sd" driver between 2.3 and 2.4.
|
|
In particular, the code that resets the drive to the 512 blocksize
|
|
is no longer called in the case of a data overrun. Accordingly, it
|
|
is not currently possible to install 2.4 from a local non- Sun
|
|
CDROM drive. Your best bet for the short term may be to either
|
|
borrow a SunCD (locally or maybe from your Sun Rep) or to mount the
|
|
CD remotely on a machine that is already up and running and can
|
|
handle your non-Sun CD-ROM, and perform a network installation.
|
|
|
|
This is not a problem for non-SPARC versions of Solaris 2.x
|
|
|
|
CDROMs that have been modified to use a 512 byte blocksize by default
|
|
will work fine.
|
|
|
|
5.27) ifconfig can't find my network interface
|
|
|
|
Only network devices configured with an address at boot
|
|
are visible to ifconfig (i.e., if /etc/hostname.IFN exists).
|
|
To make a interface visible to ifconfig do:
|
|
|
|
ifconfig ifN plumb
|
|
|
|
5.28) I have an application that compiled fine, but when I run it I get:
|
|
fatal: libfoo.so.2: can't open file: errno=2
|
|
|
|
You need to add -R<wherethelibraryis> to the link command line.
|
|
E.g.,:
|
|
|
|
cc -L/usr/openwin/lib -R/usr/openwin/lib xprog.c -lX11
|
|
|
|
5.29) Motif programs dump core almost immediately.
|
|
|
|
You must specify the motif library on the command line before other
|
|
X libraries.
|
|
|
|
WRONG:
|
|
cc .... -lXt -lXm
|
|
RIGHT:
|
|
cc .... -lXm -lXt
|
|
|
|
+5.30) cc complains that "language optional software package not installed"
|
|
|
|
There is no C compiler included in Solaris 2.x. The /usr/ucb/cc script
|
|
you are executing is a wrapper for the SunSoft C compiler which
|
|
calls the native C compiler with the /usr/ucb includes and libraries.
|
|
You need to get yourself a C compiler. Alternatively,
|
|
you may have forgotten to put the proper link from /usr/ccs/bin/ucbcc
|
|
to /opt/SUNWspro/SCxxxx/cc in place. See also 6.1.
|
|
|
|
+5.31) thr_create and other thread functions always return -1
|
|
|
|
You must put -lthread on the link command line. If you also
|
|
put -lc on the link command line, -lthread should go before
|
|
-lc.
|
|
|
|
+5.32) Solaris 2.4 seems to have a kernel memory leak.
|
|
|
|
There are two possible causes for this kernel memory leak.
|
|
|
|
There's a bug in the volume management device driver that when
|
|
unloaded leaks memory: fix with patch 101907-05.
|
|
|
|
The NFS client cache will cache to much. A simple workaround is to
|
|
add ``set nrnode = 1000'' to /etc/system and reboot.
|
|
You may want to make this larger or smaller depending on how much
|
|
memory you have. About 20-30 rnodes per MB of memory is a good
|
|
starting point.
|
|
|
|
A good rule of thumb is about 20-30 rnodes per MB of memory.
|
|
|
|
|
|
6. SOFTWARE DEVELOPMENT
|
|
|
|
6.1) Where is the C compiler or where can I get one?
|
|
|
|
Where have you been? :-) Sun has dropped their old K&R C
|
|
compiler, supposedly to create a market for multiple compiler
|
|
suppliers to provide better performance and features. Here
|
|
are some of the contenders:
|
|
|
|
1) SunPro C: [URL: http://www.sun.com/sunsoft/index.html]
|
|
|
|
SunPro, SMCC, and various distributors sell a new
|
|
ANSI-standard C compiler on the unbundled (extra cost)
|
|
SPARCcompiler/SPARCworks CD-ROM. There are some other nice
|
|
tools there too, like a "make tool" and a visual diff
|
|
(interactive diff).
|
|
|
|
You have to license and pay per concurrent user.
|
|
|
|
2) Cygnus GCC: [URL: http://www.cygnus.com/]
|
|
|
|
Cygnus Support and the Free Software Foundation make the GNU C
|
|
compiler for Solaris, a free software product. Source code
|
|
and ready-to-run binaries can be installed from the CDware CD
|
|
(Volume 4 or 5).
|
|
|
|
Like all GNU software, there are no restrictions on who can
|
|
use it, how many people can use it at a time, what machines it
|
|
can be run on, or how many copies you can install, run, give
|
|
away, or sell.
|
|
|
|
Cygnus sells technical support for these tools, under annual
|
|
support contracts.
|
|
|
|
The Cygnus distribution includes:
|
|
gcc (ansi C compiler), gdb (good debugger), byacc (yacc repl),
|
|
flex (lex repl), gprof, makeinfo, texindex, info, patch,
|
|
cc (a link to gcc)
|
|
|
|
The Cygnus compiler on uunet is starting to show its age a
|
|
bit. If you want to compile X11R5, you can get the latest
|
|
version of GCC in source code, from the usual places
|
|
(prep.ai.mit.edu or one of the many mirrored copies of it).
|
|
Build and install that compiler using the Cygnus gcc binaries.
|
|
Or get tech support from Cygnus; they produce a new version
|
|
for their customers every three months, and will fix any
|
|
bug you find.
|
|
|
|
3) Gcc.
|
|
|
|
Gcc is available from the GNU archives in source and binary
|
|
form. Look in a directory called sparc-sun-solaris2 for
|
|
binaries. You need gcc 2.3.3 or later. You should not use
|
|
GNU as or GNU ld. Make sure you run just-fixinc if you use
|
|
a binary distribution. Better is to get a binary version and
|
|
use that to bootstrap gcc from source.
|
|
|
|
GNU software is available from:
|
|
|
|
prep.ai.mit.edu:/pub/gnu
|
|
gatekeeper.dec.com:/pub/GNU
|
|
ftp.uu.net:/systems/gnu
|
|
wuarchive.wustl.edu:/mirrors/gnu
|
|
nic.funet.fi:/pub/gnu
|
|
|
|
4) Info on Apogee, Lucid C, etc will be added if you send us some.
|
|
|
|
6.2) What about the linker, the assembler and make?
|
|
|
|
Solaris ships with everything you need, except for the compiler.
|
|
All this stuff lives in /usr/ccs/bin and /usr/ccs/lib.
|
|
If you still can't find it, make sure you have the following
|
|
packages installed on your system:
|
|
|
|
for tools (sccs, lex, yacc, make, nm, truss, ld, as):
|
|
SUNWbtool, SUNWsprot, SUNWtoo
|
|
for libraries & headers:
|
|
SUNWhea, SUNWarc, SUNWlibm, SUNWlibms
|
|
for ucb compat:
|
|
SUNWsra, SUNWsrh
|
|
|
|
6.3) Where has ranlib gone?
|
|
|
|
The functionality provided by ranlib in SunOS 4.1.x is now
|
|
merged into ar. It is no longer necessary to run ranlib
|
|
on archive libraries. Fix makefiles that require ranlib
|
|
by replacing it with "/bin/true".
|
|
|
|
6.4) What do I need to compile X11R5?
|
|
|
|
There are several "patch kits" for X11R5 under Solaris 2.1.
|
|
Most of them require gcc 2.3.3 or later and you must have
|
|
run "fixincludes" when you install the gcc software.
|
|
|
|
The recommended patchkit is R5.SunOS5.patch.tar.Z available
|
|
from ftp.x.org:/R5contrib. It works with gcc (2.3.3 or later)
|
|
and SunPRO C.
|
|
|
|
X11R6 compiles out-of-the-box on Solaris 2.3.
|
|
|
|
6.5) I can't compile X11R6 on Solaris 2.4
|
|
|
|
There are several possible problems when compiling X11R6 on Solaris 2.4:
|
|
|
|
The compilation of xc/programs/Xserver/Xext/shm.c will fail with
|
|
a redefinition of shmat(). Comment out the offending defintion
|
|
near line 66 in that file.
|
|
|
|
If you use SC 2.0, you'll have to add -D__sparc to the
|
|
StandardDefines in sun.cf line 146.
|
|
|
|
See also 6.6
|
|
|
|
6.6) X11R6 on Solaris 2.4 won't run. Xinit dies with "User Signal 1".
|
|
Xterms won't die.
|
|
|
|
Some changes in libc.so and libthread.so break the way libthread is
|
|
linked with libX11.so. Apply the following patch and rebuild
|
|
libX11.so. Remember to change OSMinorVersion to 4 as well.
|
|
Another symptom is xterms staying around in a frozen state after
|
|
exiting the inferior shell process.
|
|
|
|
Note that you must reinstall the X libraries with "make install"
|
|
before xterm works right.
|
|
|
|
For multithreaded X to work it necessary to install patch
|
|
101925-02 to fix problems in header files [2.4]. You need
|
|
to reinstall gcc or re-run just-fixinc after installing that
|
|
patch.
|
|
|
|
*** xc/config/cf/sunLib.tmpl.org Sat Apr 9 01:15:25 1994
|
|
--- xc/config/cf/sunLib.tmpl Wed Jan 11 10:59:03 1995
|
|
***************
|
|
*** 37,44 ****
|
|
--- 37,46 ----
|
|
|
|
#else /* else it's Solaris */
|
|
|
|
+ #if OSMinorVersion < 4
|
|
#if ThreadedX
|
|
#define SharedX11Reqs -lthread
|
|
+ #endif
|
|
#endif
|
|
#define SharedXmuReqs $(LDPRELIB) $(XTOOLLIB) $(XLIB)
|
|
#define FixupLibReferences() /**/
|
|
|
|
6.7) I get undefined symbols when compiling R6 in Solaris 2.2.
|
|
|
|
Solaris 2.2 doesn't have the full thread support required
|
|
by X11R6. Compile R6 without multi-thread support or
|
|
upgrade to 2.3 or later.
|
|
|
|
6.8) I can't get perl 4.036 to compile or run.
|
|
|
|
Run Configure, and use the solaris_2_0 hints, *don't* use
|
|
the solaris_2_1 hints and don't use the config.sh you may
|
|
already have. First you must make sure Configure and make
|
|
don't find /usr/ucb/cc. (It must use gcc or the native C
|
|
compiler: /opt/SUNWspro/bin/cc)
|
|
|
|
Some questions need a special answer.
|
|
|
|
Are your system (especially dbm) libraries compiled with gcc? [y] y
|
|
|
|
yes: gcc 2.3.3 or later uses the standard calling
|
|
conventions, same as Sun's C.
|
|
|
|
Any additional cc flags? [ -traditional -Dvolatile=__volatile__
|
|
-I/usr/ucbinclude] -traditional -Dvolatile=__volatile__
|
|
Remove /usr/ucbinclude.
|
|
|
|
Any additional libraries? [-lsocket -lnsl -ldbm -lmalloc -lm
|
|
-lucb] -lsocket -lnsl -lm
|
|
|
|
Don't include -ldbm, -lmalloc and -lucb.
|
|
|
|
Perl 5 compiled out of the box.
|
|
|
|
6.9) I can't get sockets to work with perl.
|
|
|
|
Some of the socket constants have changed. E.g., SOCK_STREAM
|
|
now has a value of 2, whereas SunOS 4.x uses a value of 1.
|
|
|
|
6.10) I have problems compiling MH 6.8.3
|
|
|
|
The MH config file for Solaris that comes with MH 6.8.3 should work
|
|
OK, but there's some other problems: One of the Solaris 2.x headers
|
|
conflicts with mhn.c and inc doesn't know how to seperate messages
|
|
based on the Content-Length header. A fix for both problems can be found
|
|
in:
|
|
|
|
ftp.fwi.uva.nl:/pub/solaris/mh-6.8.3-diff
|
|
|
|
6.11) I can't get XV 3.x to compile or run correctly.
|
|
|
|
You need to get xv-3.x from ftp.cis.upenn.edu:/pub/xv.
|
|
Don't use xv-3.01 from ftp.x.org. The latest version, xv-3.10,
|
|
compiles fine w/o any of the ucb stuff.
|
|
|
|
6.12) What happened to NIT? What new mechanisms exist for low-level
|
|
network access?
|
|
|
|
See man page DLPI(7). Try NFSWATCH 4.1 for sample code using DLPI.
|
|
It is available by ftp from:
|
|
harbor.ecn.purdue.edu:/pub/davy/nfswatch4.1.tar.Z
|
|
and
|
|
gatekeeper.dec.com:/pub/net/ip/nfs/nfswatch4.1.tar.Z
|
|
|
|
Better yet, FTP the paper "How to Use DLPI in Solaris 2.x" by
|
|
Neal Nuckolls of Sun Internet Engineering. Look in
|
|
these FTP directories:
|
|
opcom.sun.ca:/pub/drivers/dlpi
|
|
|
|
ftp.ui.org:/pub/osi/{dlpi,npi,tpi}.ps
|
|
[ It appears that this site no longer exists, where did it move to? ]
|
|
[ someone has found these, ill put a reference in later ]
|
|
|
|
|
|
6.13) Where are all the functions gone that used to be in libc?
|
|
|
|
The C library has exploded. The manual page may give an
|
|
indication where to find a specific function.
|
|
|
|
Those libraries are essentially split over two directories:
|
|
|
|
/usr/lib /usr/ccs/lib.
|
|
|
|
Important libraries:
|
|
|
|
/usr/lib:
|
|
libsocket - socket functions
|
|
libnsl - network services library
|
|
|
|
/usr/ccs/lib:
|
|
libgen - regular expression functions
|
|
libcurses - the SysVR4 curses/terminfo library.
|
|
|
|
See Intro(3) for more details.
|
|
|
|
6.14) I'm still missing some functions: bcopy, bzero and friends.
|
|
|
|
They are in /usr/ucblib/libucb.so. The b* functions
|
|
are replaced with the ANSI-C equivalents. Look
|
|
in the Solaris porting FAQ for more details.
|
|
|
|
6.15) Can I use the source compatibility package to postpone porting?
|
|
|
|
Not really. The Source code compatibility package is
|
|
compatible with BSD 4.2, not SunOS 4.1.x. The consensus
|
|
is that the library is broken beyond usability.
|
|
If you use libucb to pick up some functions you need, it
|
|
is often best to specify it *after* all other libraries and
|
|
after libc with:
|
|
|
|
-lc -L/usr/ucblib -R/usr/ucblib -lucb
|
|
|
|
or preferrably:
|
|
|
|
-lc /usr/ucblib/libucb.a
|
|
|
|
6.16) Why doesn't readdir work? It chops the first two characters of
|
|
all filenames.
|
|
|
|
You're probably linking with libucb and didn't read question
|
|
6.15. (Readdir in libucb.so wants you to include sys/dir.h,
|
|
but many SunOS 4.1.x programs included <dirent.h>, consequently,
|
|
you're mixing native <dirent.h> struct dirent with libucb
|
|
readdir(). The symptom of this mixup is that the first two
|
|
characters of each filename are missing. Make sure you use the
|
|
native compiler (default /opt/SUNWspro/bin/cc, which may not be in
|
|
your PATH), and not /usr/ucb/cc.
|
|
|
|
6.17) Why do I get undefined symbols when linking with curses/termcap?
|
|
|
|
It is easy to mixup the BSD libcurses and the SVR4 libcurses.
|
|
One lives in /usr/ucblib, the other in /usr/ccs/lib, when
|
|
you've installed SUNWarc. Note that when you specify:
|
|
|
|
-L/usr/ucblib -lucb -L/usr/ccs/lib -lcurses
|
|
|
|
you will pick the *ucb* version of libcurses, not the SVR4
|
|
version. If you always put libucb last, as recommended in the
|
|
previous question, you will have no such problem.
|
|
|
|
*6.18) Where are the Motif includes and libraries?
|
|
|
|
Starting with Solaris 2.4, the package SUNWmfrun is included with
|
|
the base OS. It is installed under the directory /usr/dt,
|
|
where all the CDE stuff will appear (dt stands for desktop).
|
|
|
|
There are no Motif imake templates nor is mwm shipped with the
|
|
base OS yet.
|
|
|
|
Remember that you must link with -R/usr/dt/lib.
|
|
|
|
+6.19) Traceroute to Solaris 2.x machines gives many timeouts.
|
|
|
|
Solaris 2.4 and later (and Solaris 2.3 w/ high rev kernel jumbo
|
|
patches) limit the number of ICMP error message to one
|
|
per 500 milliseconds. To switch off this feature, use:
|
|
|
|
/usr/sbin/ndd -set /dev/ip ip_icmp_err_interval 0
|
|
|
|
|
|
7. ACKNOWLEDGEMENTS
|
|
|
|
Most of this material is either written by me or sent to me
|
|
directly. Some of it is cribbed shamelessly from USENET postings
|
|
in several groups.
|
|
|
|
Thanks to all people who contributed to this FAQ,
|
|
you know who you are. The list is too long to be included
|
|
in this FAQ.
|
|
|
|
--- End of Solaris 2.x FAQ -- Maintained by Casper Dik <Casper.Dik@Holland.Sun.COM> ---
|
|
|