comp.unix.sco Technical FAQ (3/5)

Skip to first unread message

Tony Lawrence

Sep 19, 2000, 3:00:00 AM9/19/00
FAQ Starting Page

These FAQS were developed and maintained for years by (Stephen M. Dunn). Steve no longer has the time to
maintain them, and has asked me to take them over. Please remember the
debt all of us owe to Steve for his efforts- I myself spent many hours
learning from these very documents, and I'm sure many of us can say
similar things.

Because Steve has not been able to maintain these for a while now,
some of the information herein is outdated. I am working to correct
that, but it's a lot to catch up on, so if you spot something, please
let me know. For the moment, I'm just marking some of it as probably
being useless; as I have time, I'll check further to be certain before
I remove anything.

Suggestion: Use my Search to find what you are looking for.

I have a system memory dump in my swap space; how do I delete it?

Go into single-user mode (NEVER try this in multi-user mode!). Then
copy something into your swap space. The suggested method is:
dd if=/etc/termcap of=/dev/swap count=100

Unix 3.2v4.0 and later will do this for you if you want it to.

[Table of Contents]

How do I save kernel panic dumps to tape?

Edit the /etc/dumpsave file to make it put the panic dump where you
want it to go.

[Table of Contents]

At boot time, the "Enter the root password or ^D" message doesn't work!

If this message stair-steps across your screen and you can't do a ^D,
the file /etc/ioctl.syscon has become corrupt. Go into single- user
mode by typing the root password followed by ^J instead of a carriage
return. Use stty sane^J to restore your console to more normal
operation. Remove /etc/ioctl.syscon, and reboot by running
/etc/reboot. The system will complain that /etc/ioctl.syscon is
missing and will rebuild it for you.

The usual cause for this file becoming corrupt was that the system was
shut down from a terminal other than the console, and this file now
contains the stty settings for that terminal (which are probably not
correct for the console).

[Table of Contents]

My pre-EAFS filesystem gives errors on filenames longer than 14 chars

There is a tunable kernel parameter, ETRUNC, that controls this
behaviour. If set to 1, the kernel will silently truncates filenames
to 14 characters. If set to 0, the kernel returns ENAMETOOLONG, in
accordance with POSIX.

[Table of Contents]

I just upgraded to 3.2v4 but I still can't use long filenames

Long filenames only work on EAFS filesystems. Any new filesystems you
create will be EAFS filesystems unless you specify otherwise. When you
upgrade, your root filesystem will automatically be converted to an
EAFS filesystem, but any other filesystems you have will not.

If you have an existing AFS filesystem that you wish to convert to an
EAFS filesystem, specify the -E option to fsck; this will convert the
specified filesystem into an EAFS filesystem.

If for some reason you need to convert an EAFS filesystem back to AFS,
you can use fsck -^P (^P == control-P). Note that there is no
performance difference between AFS and EAFS filesystems except in
accessing long filenames and symbolic links; otherwise, they share the
same kernel driver.

[Table of Contents]

The permissions on /usr/adm/sa and its children are wrong

You have two simple basic choices:

1. move the following two lines from the sys crontab file to the root
crontab file.

0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
2. ensure that /usr/adm/sa is read/writeable by sys.

[Table of Contents]

I get an error "Cannot obtain database information on this terminal"

This error can be caused for various reasons. First, determine the
cause of the problem and implement a solution. Then install all
required SLSes according to the following paragraph, derived from TA

For SCO UNIX System V/386 Release 3.2 Operating System (the original
version) SLS unx223 must be installed prior to installation of SLS
unx257. For SCO Open Desktop Release 1.0.0 and 1.0.1, UFE should be
installed prior to unx257. For 3.2.2 without Maintenance Supplement 1
and for ODT 1.1 without update G, install unx257 on its own (MS1 and
UG both include unx257, and if you have them, you should not install
unx257). SCO Unix 3.2v4 and ODT 2.0 have more up-to-date security, and
unx257 should not be installed on either. Note that few, if any, of
these supplements are available any longer.

The following is from TA 480020.

CAUSE 1: The file /etc/auth/system/ttys has become corrupted. Reboot
the system and enter single user (System Maintenance) mode. Edit the
file and insert the following line if it does not exist:


This file should only contain entries for your terminals (ttyxx -
where xx is the tty number). Each entry ends with :chkent:. Remove
unwanted lines.

CAUSE 2: After installation of a multiport intelligent serial board
the file /etc/auth/system/ttys did not get updated with new entries
for each tty port. These entries can be created by taking the
following steps:
1. Run sysadmsh
2. Select Accounts -> Terminal -> Create
3. Type in each device name (e.g. tty3h) and then press "<Ctrl>X" to
execute. Select "YES" to save modifications.

CAUSE 3: This message can be generated sporadically on a system with a
large number of users logging on and off. Check the /etc/auth/system
directory for ttys files. If there are multiple files, the extra files
must be removed.

When database files such as /etc/auth/system/ttys are updated, a
renaming procedure is used to ensure that multiple accesses to the
file are managed properly. The contents of the old file (ttys) are
copied/updated to create the new -t file (ttys-t). After that is done
the old file is moved to a -o file (ttys-o), the new file (ttys-t) is
moved to the original name (ttys), and the ttys-o file is deleted.

It is important to verify which of the files is the more complete
file. This file is usually the largest, but use vi, cat, or more
commands to examine the content of the files for correctness and/or
corruption. Once you have determined which file is the most correct,
make sure it is renamed to ttys, and remove all others.

It is recommended that you have "OVERRIDE=tty01" in the file
/etc/default/login. That way root can always log in on that terminal
when in multiuser mode.

NOTE 1: if this error message appears on just one port and no other
ports are affected or prevented from logging in, then ckeck to make
sure the device has just one link. If the device has more than one
link, remove it and recreate it with mknod.

NOTE 2: TCP/IP 1.1.1 has an old /bin/login which can cause this
problem. This release of TCP/IP is unsupported.

[Table of Contents]

I need help configuring MMDF

Chris Durham of SCO wrote some guides to configuring MMDF in typical
TCP/IP and UUCP environments. See TAs 480044 and 550055

There is also a MMDF FAQ crossposted once in a while to several
newsgroups including comp.unix.sco.misc and comp.mail.misc. This FAQ
can be found at

[Table of Contents]

What is the new "low" security level in 3.2v4?

It is not traditional Unix security without the TCB. Rather, it uses
the TCB to achieve a level of security lower than traditional Unix
security. For example, it gives all users the privileges to administer
print services, backups/restores, and to run shutdown. The moral is
not to use low security unless you know the security holes it opens
and can live with them. The "traditional" security level is the
closest to traditional Unix security, and should probably be the
lowest security level that most people should consider using. The next
level up is similar to C2 security as found in prior releases of SCO
Unix, while the top level is tighter yet.

Note that each of the four security levels, as with the two levels in
earlier releases, is only a set of defaults. Once you have installed a
particular security level, you can adjust the exact settings to make
security suit your needs. Note that once a system has been set up at a
particular security level, it may be difficult or impossible to
completely increase the security level, particularly if the system has
been in use for some time.

[Table of Contents]

My AHA154x/174x isn't being detected

On some machines which were fast for their time (e.g. 486DX2/66), the
timeout in the kernel routine that initializes the card may run too
quickly, causing the system to not be able to use your host adapter.
SCO has a fixed version of /etc/conf/pack.d/ad/Driver.o that increases
the timeout value; this should cure the problem. This fix (in unx365b
for Unix 3.2v4.0 and 3.2v4.1, or oda366b for ODT 2.0) is available
from SCO's usual channels (see the administrative FAQ for info on ftp
and UUCP access). Later versions of the operating system include this
fix; it is not applicable to anything earlier than 3.2v4.0 and ODT
2.0. As a temporary fix until you can get this SLS installed, slow
your computer down during booting (many machines have a Turbo switch
which can be turned off).

[Table of Contents]

How do I upgrade from an n-user licence?

If you are using OSR5, you simply install the new license pack from
SCOAdmin License.

If you are upgrading the user licence but staying on the same release
of the operating system, you need to rebrand the appropriate files
with the new serial number/activation key that you get in the upgrade

If you're upgrading to a more recent release, use the intelligent
upgrade procedure built into the upgrade package. This will not only
update your OS to the current level, but will also upgrade your user
licence to what you ordered.

[Table of Contents]

How do I get MMDF to send one copy of a message to many people?

You will need MMDF II level 43 for this; it's included in Unix 3.2v4.0
and ODT 2.0 and above, and is available in tls011 for older releases.
You will need to add a confstr= entry to your UUCP channel similar to

MCHN uucp, show="SCO UUCP Delivery", que=uucp, tbl=uuchn, ap=same,
pgm=uucp, mod=imm, confstr="naddrs=15 maxlen=1024"

naddrs sets the maximum number of addresses per message
maxlen sets the maximum total length of the address

You probably want to set maxlen no higher than 1024 or you may run
into a limit in the system. You may also want to configure your
badhosts channel similarly.

[Table of Contents]

My system is slow or hangs when sizing memory

The OS tries to flush the cache before sizing memory. On some systems,
this may cause problems including painfully slow memory sizing. For
Unix 3.2v4.2 and related systems, try adding the cache=/d option to
your boot string. Try it out manually first, using defbootstr cache=/d
at the Boot: prompt; if that works, add it to /etc/default/boot.

If you still run into problems, you may need to compare the memory map
with and without cache. Boot with the cache=/d prompt options and,
when the prompt comes up, type v to see the memory map found with the
cache disabled. Then boot using cache=/e prompt and, again, type v at
the prompt to see the memory map with the cache enabled. If they
differ, it is not safe to size memory with cache disabled, and you
will have to suffer with slow boot times (it will not affect
performance once the system is rebooted).

[Table of Contents]

My system doesn't recognize files starting with #!

Unix 3.2v4.0 through 3.2v4.2 include a parameter to determine whether
the kernel supports the use of #! to denote the interpreter for a
particular script, but it is not tuneable using the standard configure
program. Instead, edit the file /etc/conf/pack.d/kernel/space.c and
change the hashplingenable setting from 0 to 1. Rebuild and install
the new kernel.

[Table of Contents]

Where do I get POP binaries?

POP3 server binaries are available from a number of sources. For some
older SCO Unix versions, see tls049. OSR5 includes a POP3 server. Some
supplements for various OSR5 releases update the POP3 servers. There's
also a POP3 server for OSR5 in tls593. You might also wish to check
out Pine, which includes a POP3 server (see for
source and binaries designed for various SCO operating systems.

[Table of Contents]

How do I fix a kernel trap 0x00000006?

NOTE: This problem appeared at some point in 3.2v4.x, and is fixed in
OpenServer 5. See the documentation in TA 482366 for more detail.

This is due to executing an invalid instruction in kernel mode (trap 6
is for an invalid instruction; a user process which does this will
simply die with a core dump). If your particular problem is a double
panic and it doesn't leave a system memory dump in whatever device
you've chosen for dumps (usually /dev/swap), apply the following

This is due to a problem in the kernel's querytlb() routine, which may
allow the Pentium to execute a 386-specific instruction which is not
supported on the Pentium. The cure involves patching a kernel module
using _fst (see part 1 on where to find /etc/_fst). Go into the
/etc/conf/pack.d/kernel directory. We're going to work on locore.o, so
make a backup and then run _fst -w locore.o - The conversation between
you and _fst goes like this (the * is a prompt from _fst; don't type
it or any of _fst's responses):

* querytlb+5?w 0x9090
querytlb+ox5: 0x375=0x9090
* querytlb,4?ai
querytlb: call near 0x17:0x0
querytlb+0x5: nop
querytlb+0x6: nop
querytlb+0x7 sub eax, eax
* $q

This fixes one of the modules which is linked into the kernel, so you
only have to apply it once. Relink and reboot.

[Table of Contents]

How do I configure an EIDE drive to work on 3.2v4.x?

This is a combination of TA 482436 and a procedure posted in
comp.unix.sco.misc by a hardy adventurer. Use it at your own risk; it
may not work with all hard drives, and you may not be able to have
other OSes on your hard drive in some cases. Note also that there is
an SLS, uod429a, which adds LBA support to 3.2v4.2, and should be used
instead of this procedure where applicable.

OpenServer Release 5 is the first SCO operating system which supports
LBA (Logical Block Addressing) mode, so to install on an older system
the first thing you need to do is to disable this mode. This may
involve jumpers or a BIOS setting change; check your hardware

Configure your BIOS to believe the hard drive has 1024 cylinders, 16
heads, and 63 sectors per track. Begin your installation, and make
sure you run through the disk initialization section manually.
Apparently, if you can select the "Preserve additional filesystems"
option, this may be an easy way to do it. When you get the prompts
dealing with the actual geometry of your hard drive (this program is
dkinit), modify the current disk parameters, and set them to something
larger. At 16 heads and 63 above) spt, every actual megabyte (1 048
576 bytes, or 1024 kB) of disk space takes about two cylinders; you
could use this equivalence to calculate the number of cylinders you
should enter. If in doubt, guess low; you do not want to have Unix
trying to use disk space which isn't there.

When you've done this, you've basically told Unix to ignore the BIOS
settings (which will be used only for booting), and that should lift
the ~500 MB limit up to about a gig. Note that there is a limit of
2048 cylinders in SCO's hard drive drivers, which means you will not
be able to access more than about a gigabyte.

[Table of Contents]

How do I change my SCSI host adapter?

This applies to at least 3.2v4.0 and later. As always, make and verify
a backup and a set of emergency diskettes before any major system

Make sure that the appropriate driver is already installed. It may
already be there, or it may be in the form of a BTLD. Your manual
should provide the instructions for this step.

The file /etc/conf/cf.d/mscsi contains a list of SCSI devices and the
parameters (such as which host adapter, what SCSI ID they are, etc.)
required for them. The safest change to make is to replacec the name
of the old adapter driver (e.g. ad for an Adaptec 154x) to the name of
the new one (e.g. arad for an AIC-7770-based adapter) on each such
line. There is another option, which is to use auto. I am not sure
exactly how this works if there is more than one host adapter
installed, so on systems with multiple host adapters it is probably
wisest to list the specific host adapter rather than using auto.

In /etc/conf/sdevice.d you will find files named after the drivers
you're installing and removing (e.g. ad and arad). You will need to
edit each of them. The second column should be set to Y for a driver
which is enabled, and N for a driver which is not. For some drivers,
you will also need to edit the adapter address in columns 7 and 8;
many adapters do not require this. There is no need to change
/etc/conf/cf.d/sdevice, as it is built from these files when you
relink the kernel.

There's at least one special case which deserves to be noted here. If
you are moving from an EISA host adapter to a PCI one, you may need to
enable PCI support in your kernel if this is the first PCI device. In
/etc/conf/sdevice.d/pci, you should see a line which begins pci N.
Change the N to Y. If you are removing your last EISA device, you may
wish to do the inverse in /etc/conf/sdevice.d/eisarom with the eisarom
line, though it probably doesn't hurt to have this support in the
kernel even though you have no EISA devices. This also applies to
other hardware changes involving addition or deletion of PCI and EISA
devices, and it applies in reverse if you're removing your last PCI
device and adding your first EISA one.

Relink the kernel, shut down, and swap the hardware.

[Table of Contents]

My machine had a panic. How do I find out why?

There are a number of situations which can cause panics. First off,
write down the actual panic message displayed on the screen when the
machine crashed. Also, write down the values of CS and EIP from the
register dump.

Next, reboot the system into single-user mode and run the following
command to produce a panic report: echo panic -w /tmp/panic.out |
crash -d /dev/swap This produces a report in the file /tmp/panic.out.
With the original panic message and this report, someone may be able
to help you; without this information, it's just about impossible to
say what went wrong. In particular the section of the report listing
the kernel stack may be useful in diagnosing what caused the panic.

For further information, consult TAs 480619 and 482035.

[Table of Contents]

How do I find out the names of BTLDs on a BTLD diskette?

Boot from your boot diskette. At the Boot: prompt, insert the BTLD
floppy and type dir. Some of the names you see are BTLDs, and some may
not be. If you see one which you think might be a BTLD, you can give
its name as an argument to dir (e.g. dir foo); if you see that it has
subdirectories called install and driver, it's a BTLD.

[Table of Contents]

My keyboard locks up

Some fast machines (typically high-end Pentium systems) may be too
fast for a timing loop in the kernel. Apply oss424a, which patches
this timing loop.

[Table of Contents]

My kernel locks up at boot time

This is not really a generic answer, but only deals with one
particular type of lockup. If your machine locks up and the last thing
on the screen was "xxxxinit", where xxxx is the name of the driver for
a SCSI host adapter, you can disable the driver by booting with
defbootstr disable=xxxx The kernel ships with drivers for a wide range
of hardware. The xxxxinit routines are responsible for detecting and
initializing a particular piece of hardware. If the machine hangs at
this point, then one particular driver is clashing with something in
your machine. If the driver is for a card you don't have, it should be
safe to disable it as shown above. If the driver which is hanging runs
a piece of hardware which you're trying to use, you need to do some
further work to determine why it's clashing. This may involve
adjusting jumpers or other configuration information on the card.

If you discover that you need to disable multiple drivers, separate
their names with commas. For example, to disable spad and wdha, use
defbootstr disable=spad,wdha.

[Table of Contents]

How can I use a PC Card (PCMCIA) with Unix?

SCO has released PC Card (The Standard Formerly Known As PCMCIA)
drivers for OpenServer Release 5 as TLS619.

Lynnsoft (,
also makes PC Card drivers for SCO Unix.

[Table of Contents]

How much RAM can my system use?

This depends on your OS version:

* 3.2.0: 16 MB
* 3.2v2.0: 256 MB
* 3.2v4.x: 512 MB if you use a mem= bootstring; 256 MB if not
* 3.2v5.0.0, 3.2v5.0.2: 768 MB using a mem= bootstring; 512 MB
otherwise. You can also add the Large System Supplement (V1.0.0
for 5.0.0; V1.0.1 or 1.1.0 for 5.0.2) which enables support for up
to 2 GB
* 3.2v5.0.4: 4 GB right out of the box

5.0.4's support for more than half a gig of memory is more stable than
5.0.2 or 5.0.0 with the LSS; if you require this much memory, you
should seriously consider upgrading to 5.0.4.

You can find details on the mem= bootstring in your man page for
boot(HW); the quick summary is that

: defbootstr mem=1m-768m

will instruct the system to scan for 768 MB of RAM. Do not specify
more memory than the maximum for your release.

[Table of Contents]

Reply all
Reply to author
0 new messages