Created
November 16, 2022 19:41
-
-
Save courtney-rosenthal/66d3c3b7e69462abce8a3e42905ec8b1 to your computer and use it in GitHub Desktop.
SCO Xenix FAQ -- from 1996
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Newsgroups: comp.unix.xenix.sco,news.answers | |
Subject: Welcome to comp.unix.xenix.sco [monthly FAQ posting] | |
Followup-To: comp.unix.xenix.sco | |
Summary: answers to frequently asked questions | |
Approved: [email protected] | |
Archive-name: sco-xenix | |
News-answers-archive-name: sco/xenix | |
Posting-frequency: monthly | |
Version: $Id: sco-xenix,v 1.64 1996/07/21 01:20:54 chip Exp $ | |
------------------------------ | |
Subject: ***** Introduction | |
Welcome to comp.unix.xenix.sco. This newsgroup is about the Xenix | |
operating system from the Santa Cruz Operation (SCO). If you have an | |
SCO Xenix question, then you've come to the right place. | |
This is NOT the newsgroup for SCO Unix questions. If you want to talk | |
about other SCO operating systems, please show some courtesy and use | |
one of the comp.unix.sco.* groups. This also is NOT the right place | |
for questions about Xenix implementations from other vendors. Use | |
comp.unix.xenix.misc. | |
Certain questions are asked frequently on the net. Frequently asked | |
questions (FAQs) get old and boring after a while. We can stamp out | |
FAQs in your lifetime! Please review this message before posting your | |
question to comp.unix.xenix.sco. | |
If you haven't already done so, please read the periodic postings in | |
news.announce.newusers entitled "A Primer on How to Work With the Usenet | |
Community", "Answers to Frequently Asked Questions about Usenet" and | |
"Hints on writing style for Usenet". You should also review the | |
comp.unix.questions FAQ postings. These answer general questions, | |
such as `How do I delete a file with funny characters in the name?' | |
and `How can I change my shell prompt?' C programmers should check | |
out the FAQ in comp.lang.c. | |
Whenever we talk about Xenix here, we really mean SCO Xenix System V. | |
Our comments often won't apply to the other kinds of Xenix. Also, be | |
particularly careful if you use Xenix/286. It's been ages since we've | |
used it and some of our suggestions might not apply. | |
This message is maintained and posted monthly by Chip Rosenthal. Your | |
corrections, additions, and comments are encouraged. Please mail them | |
to [email protected]. These questions and answers were written | |
by Chip Rosenthal, Jeff Liebermann, Ronald Florence, Chip Salzenberg, | |
Ronald Khoo, Vic Michael, and Stephen Bleazard. Helpful contributions | |
and comments have been provided by Andrew Phillips, Peter Funk, Paul | |
Warren, Lawrence Kirby, Kai Ruottu, Ray Malitzke, Chet Creider, Greg | |
Lehey, Marc Brumlik, Monty Solomon, and Bela Lubkin. | |
Please examine the date near the top of this message. This message | |
is updated from time to time, and older versions might be obsolete. | |
The most up-to-date version of these guidelines are available on | |
the World-Wide Web as <http://www.unicom.com/FAQ/sco-xenix>. For | |
the web-impaired, try anonymous FTP to "ftp.unicom.com:/pub/FAQ/sco-xenix". | |
If all else fails, try the standard FAQ archive on rtfm.mit.edu. | |
------------------------------ | |
Subject: ***** Table of Contents | |
===> Product Questions: | |
QA1. What is the difference between Unix and Xenix? | |
QA2. What is the minimum system required to run Xenix? | |
QA3. Should I buy Unix or Xenix? | |
QA4. What are the current Xenix versions? | |
QA5. Where can I get Xenix fixes? | |
QA6. I'm using an older Xenix/386 version. What fixes do I need? | |
QA7. Does SCO have a BBS? | |
===> General Xenix Questions: | |
QB1. Can't boot. My system used to work. | |
QB2. Configure(ADM) fails when I modify my system name. | |
QB3. The system is crashing with `parity error' panics. | |
QB4. Login fails without prompting for password. | |
QB5. Can I use `gcc' instead of buying the SCO Development System? | |
QB6. Program `foobar' dumps core with a stack overflow. [Xenix 286] | |
QB7. Spell cannot initialize hash table. | |
QB8. Will my laser printer work with the Text Processing Package? | |
QB9. Where is crypt? | |
QB10. How can email handle `internet' addresses or use a `smart host'? | |
QB11. Where can I find freely available software for Xenix? | |
QB12. Why don't my arrow keys work in `vi'? | |
QB13. Why does `cron' die periodically? | |
===> Disk and Filesystem Questions: | |
QC1. Can I use a disk bigger than 1024 cylinders? | |
QC2. Why won't Xenix recognize my SCSI disk? | |
QC3. Where is the `/u' filesystem I created? | |
QC4. `WARNING!! - mounting: <usr> as <news>' message when booting. | |
QC5. `POSSIBLE FILE SIZE ERROR' when running `fsck'. | |
QC6. Is disk fragmentation curable? | |
QC7. Can I put a CD-ROM drive on my Xenix system? | |
===> Communications Questions: | |
QD1. How do I add more than 2 COM ports? | |
QD2. How do I set a 19,200 baud rate? | |
QD3. How can I have more mscreen(C) sessions? | |
QD4. Upgraded to 2.3.4 and flow control broke with mscreen(C). | |
QD5. Terminals act funny, modems drop characters, help!! | |
QD6. Does Xenix support 16550A UARTs? | |
QD7. How do I increase the number of `clists'? | |
QD8. How do I change the 16550A trigger level? | |
QD9. How do I adjust the `ttyhog' value? | |
QD10. BSD based uucp can't connect to my machine. | |
QD11. uucp truncates my system name to seven characters! | |
QD12. What is the uucp `windows' patch? | |
QD13. uucp gives `alarm' messages, eventually dies. | |
===> Display and Graphics Questions: | |
QE1. How come Xenix won't recognize my VGA display? | |
QE2. How can I do a printscreen under Xenix? | |
QE3. How can I blank the console display when it is idle? | |
QE4. How can I do graphics under Xenix? What programs are available? | |
QE5. CGI graphics mangles grey scale on a mono VGA. | |
QE6. CGI graphics fail on a LaserJet in landscape mode. | |
===> Networking Questions: | |
QF1. What do I need to run TCP/IP? | |
QF2. What do I need to run NFS? | |
QF3. How can I run uucp over TCP/IP? | |
QF4. What does "NOTICE: tcp sum: src C06C6901, sum 0000B004" mean? | |
===> Xenix and MS-DOS Interoperability Questions: | |
QX1. Can Xenix share a hard disk with MS-DOS? | |
QX2. Can Xenix access MS-DOS disks? | |
QX3. Can Xenix execute MS-DOS programs? | |
QX4. Can MS-DOS execute Xenix programs? | |
===> The (in)Famous Xenix Cheat-Sheet: | |
QZ1. What the $%*&! is happening? | |
------------------------------ | |
Subject: ***** SECTION A - Product Questions | |
QA1. What is the difference between Unix and Xenix? | |
Xenix is Unix -- or at least one flavor of it. In the late 70's, | |
Microsoft licensed the Unix sources from AT&T and ported them to | |
a number of platforms. In those days, AT&T would license the Unix | |
software but not the Unix name, thus each company had to invent | |
their own name. Microsoft picked Xenix. Microsoft did not sell | |
Xenix to end users. Instead, they licensed the software to OEMs | |
(Intel, Tandy, Altos, SCO, etc.) who provided a finished end-user | |
package. Microsoft no longer supports Xenix, and in fact never | |
even offered a 286 or 386 version. | |
Several Unix implementations for the PC architecture have been | |
tried with varying levels of success. SCO Xenix for the PC/XT | |
was one. Nearly all of the PC/XT implementations were clunkers, | |
because the machine lacked the hardware necessary for robust Unix | |
operations. The PC/AT offered hardware memory protection, and | |
SCO Xenix/286 took advantage of it. SCO Xenix/386 added demand | |
paged virtual memory. These added features made multiuser PCs | |
viable, and SCO Xenix popular. | |
SCO Xenix starts with a Unix System III base, throws in several | |
Berkeley enhancements, and adds features to obtain conformance to | |
the System V Interface Definition (SVID). Today, the bulk of the | |
code is from System V. Xenix/386 even has capabilities to execute | |
Unix programs. It differs, however, in many of the SVID `optional' | |
areas people tend to expect of a full System V. SCO Xenix lacks | |
a real `inittab', for example. You need to go to a real System V, | |
such as SCO Unix, for all these features. | |
QA2. What is the minimum system required to run Xenix? | |
You can build a minimal, single-user Xenix system with an 80386SX | |
computer, 2MB to 4MB RAM, and 40MB hard disk. A pretty spiffy | |
system, suitible for development, would be an 80386DX computer | |
with 4MB RAM and 80MB hard disk. Additional resources (more speed, | |
more RAM, more disk) will be required to support additional users, | |
large applications, networking, or X windows. Xenix/286 will run | |
on a PC/AT, but you will quickly become frustrated with its | |
limitations, especially if you are a programmer. | |
QA3. Should I buy Unix or Xenix? | |
If you are happy running Xenix now, don't rush to throw it away. | |
Xenix will be around for some time. If, however, you are new to | |
multi-user computing, you should consider Unix System V Release | |
3.2 or Release 4.X. | |
There are a number of reasons why Xenix is slowly fading. It is | |
a mature product. There will be few future enhancements. Fewer | |
and fewer vendors are supporting it. Nearly every program written | |
for Xenix will run under Unix too. Unix offers a lot more goodies | |
and better performance than Xenix. | |
One advantage to Xenix is that it requires less memory and disk | |
space. At today's hardware prices that usually isn't a big deal. | |
There are certain applications, however, where this is attractive. | |
Although Unix has a lot more to offer, a number of Xenix enthusiasts | |
wouldn't switch if you gave them a free copy of Unix. They would | |
gladly forego the new features to avoid the bloat of System V. | |
QA4. What are the current Xenix versions? | |
Package Version `perms' file | |
---------------------- -------------- --------------------------- | |
Xenix Runtime System 2.3.4 inst, dsmd, tpmd, rts, ext | |
Xenix Runtime (286) 2.3.2 inst, dsmd, tpmd, rts, ext | |
Development System(386) 2.3.1 soft | |
Development System(286) 2.2.1 soft | |
CGI 1.1.0 cgi | |
Text Processing 2.3.0 text | |
Manual Pages 2.3.0 man | |
VP/ix 1.2.0 vpix | |
TCP/IP Runtime 1.2.0 tcprt | |
TCP/IP Development 1.0.1 tcpdev | |
Streams Runtime 1.0.0 streamsrt | |
Streams Toolkit 1.0.0 streamstk | |
Int'l Supplement(386) 2.1.0 sup.os | |
Int'l Supplement(286) 2.0.0 sup.os | |
The perms column lists files found in the /etc/perms directory. | |
The `#rel=' line in these files will tell you what version you | |
have. | |
QA5. Where can I get Xenix fixes? | |
SCO provides Support Level Supplements (SLS) at no charge. There | |
are several places that make them available through anonymous uucp | |
and anonymous ftp. | |
Internet users may retrieve SLSs by anonymous ftp from `ftp.sco.com' | |
(see /SLS/info) and `ftp.uu.net' (see /vendor/sco/SLS/info). | |
SLSs may be downloaded with anonymous uucp from SCO's `sosco' | |
machine. To retrieve a shopping list of available SLSs, add one | |
of the following to your `/usr/lib/uucp/Systems' file: | |
# Telebit (PEP) modem | |
sosco Any ACU 19200 14084291786u gin:-BREAK-gin:-BREAK-gin: uusls | |
# Hayes V-Series modem | |
sosco Any ACU 19200 14084274470 gin:-BREAK-gin:-BREAK-gin: uusls | |
# 1200 or 2400 bps modem | |
sosco Any ACU 300-2400 14084253502 gin:-BREAK-gin:-BREAK-gin: uusls | |
European folks might prefer to use `scolon' instead. From within | |
the UK, try: | |
scolon Any ACU 300-19200 0923210911u \ | |
gin:-BREAK-gin:-BREAK-gin: uusls word: bbsuucp | |
Outside the UK, replace the leading zero with the country code. | |
A 9600bps Trailblazer answers this line. Delete the `u' at the | |
end of the phone number if you aren't using a Telebit modem. | |
Files are as on `sosco' but tend to be a week or so behind. Also, | |
replace `sosco' with `scolon' `sosffm' in the examples below. | |
In Germany, you can use: | |
sosffm Any ACU 300-9600 069-50910736 \ | |
"" \r ogin:-BREAK-ogin: uusls sword: bbsuucp | |
This modem supports V.32 transfers, but not PEP. We've been told | |
this system is often behind the other sites. | |
[LATE BREAKING NEWS: We've been told that "sosffm" has moved. | |
If anybody knows where it went, please let the FAQ editor | |
know. Thanks. -ed] | |
Add to your `/usr/lib/uucp/Permissions' file: | |
# REQUEST files only - i.e. cannot send to sosco. | |
# rmail required to get bounced mail and error messages. | |
MACHINE=sosco SENDFILES=yes REQUEST=no COMMANDS=rmail:uucp \ | |
WRITE=/usr/spool/uucppublic:/tmp | |
To retrieve an SLS listing to your machine as /tmp/info: | |
uucp sosco\!/usr/spool/uucppublic/SLS/info /tmp/info | |
This file also provides directions on retrieving, unarchiving, | |
and uncompressing the SLSs. There is also a `descriptions' file | |
with additional details on the available SLSs. | |
SLSs are also available on `uunet'. For example, to get the `info' | |
file, run: | |
uucp uunet\!~/vendor/sco/SLS/info /tmp/info | |
Most of these machines also have Enhanced Feature Supplements (EFSs), | |
games and graphics programs, and new termcap and terminfo terminal | |
definitions in addition to SLS. Look for an `info' or `README' file | |
one directory up from the `SLS' directory for more info. | |
QA6. I'm using an older Xenix/386 version. What fixes do I need? | |
Development System | |
- 2.3.0 or older An upgrade to 2.3.1 must be purchased from SCO. | |
- 2.3.1 Install `lng244'. | |
Operating System | |
- 2.2.X or older An upgrade to 2.3.4 must be purchased from SCO. | |
- 2.3.0 or 2.3.1 SCO would like you to purchase a 2.3.4 upgrade. | |
The `xnx137' fix would get you to 2.3.2, but SCO | |
does not provide it any longer. | |
- 2.3.2 Install `xnx296a' to get to version 2.3.3. | |
If you have VP/ix and installed update UFJ, then your kernel is | |
already at 2.3.3. None the less, you still want `xnx296a'. The | |
`xnx296a' update is also known as UFN, and replaces UFJ and UFM. | |
UFM was also known as the `xnx155b' update. | |
You must install the development system before `xnx296a'. | |
`xnx296a' provides you with most of the important fixes in 2.3.4. | |
You will lack some of the nice enhancements such as updated man | |
pages and the Korn shell. | |
SCO preconfigures the kernel for a very minimal system. You should | |
tune the kernel for your exact system configuration. See the | |
"Tuning Kernel Parameters" chapter in the System Administrator's | |
Guide. | |
QA7. Does SCO have a BBS? | |
Yes. The SOS Support BBS is $95/year. This is a good deal. You | |
can: | |
- download fixes, suggestions, and hints. | |
- keyword access to the support problems database. | |
- retrieve product info, release status, and hardware compatibility. | |
- get support via email. | |
- subscription to quarterly Discover newsletter. | |
You can dial-in with a terminal program such as `cu' -- uucp is | |
not required. Access is read-only, but most questions can be | |
answered by the support database. SCO currently doesn't provide | |
SOS access to most overseas users. | |
Previous versions of this FAQ suggested joining the `SCO Developer | |
Alliance'. For $100/year, it gave you BBS access along with other | |
benefits. Somebody within SCO must have finally come to their | |
senses and realized they were providing a worthwhile and valuable | |
service to their customers. Can't have that! So, effective Jan | |
94, they jacked up the price almost 500%, thus ensuring no product | |
offered by SCO could ever be remotely confused with a bargain. | |
If you are a member of a Fortune 500 company, you might want to | |
contact <[email protected]> for info. If you are a small-time | |
developer, then kiss off, loser. | |
------------------------------ | |
Subject: ***** SECTION B - General Xenix Questions | |
QB1. Can't boot. My system used to work. | |
Check the A: drive. If there is a floppy in there your system | |
might spew garbage on the monitor or hang during boot. If this | |
problem occurs right after rebuilding a new kernel, go read the | |
FAQ on disks bigger than 1024 cylinder. | |
QB2. Configure(ADM) fails when I modify my system name. | |
If you select a site name of two, three, or four characters, | |
`configure' will fail with an error message: | |
space.asm(XXX): error A2050: Value out of range | |
If the development system is installed, there is a workaround. | |
Do the following: | |
- cd /usr/sys/conf | |
- Edit `xenixconf'. Search for the `nodename' line and enter | |
the desired system name between the double quotes. For | |
example, for machine name = `foo' this line should read: | |
nodename "foo" | |
- Similarly, edit the `master' file and correct the `nodename' | |
line. For machine name = `foo' it should read: | |
nodename NODE "foo" | |
- Run `make'. This will rebuild the kernel data files and | |
then link a new kernel. | |
- Run `./hdinstall' to install the new kernel. | |
Reboot the system, and the new node name should be in effect. To | |
verify this, run `uname -a' after rebooting. | |
This bug has been fixed in 2.3.4. | |
QB3. The system is crashing with `parity error' panics. | |
Everybody knows there are eight bits to a byte. Why, then, do | |
PCs use 9-bit wide memory? That last bit is a parity check bit. | |
It lets the system detect when data get corrupted while sitting | |
in memory or in transit to the CPU. | |
Prior to Xenix 2.3.3, parity errors were silently ignored. In | |
these releases the system would continue to run -- for a while | |
anyway. These days, if a parity error is detected the system | |
will panic immediately and say: | |
PANIC: memory failure - parity error | |
Like the message says, this is almost always caused by memory | |
problems. If it happens, run a good memory diagnostic overnight | |
to try to locate the problem. Keep the cover on the computer | |
while running diagnostics; heat tends to push a marginal memory | |
chip into failure. Similarly, running the system with the cover | |
off might make the problem go away. If it does, possible causes | |
are marginal chips or bad ventilation. | |
This problem can also be caused by a marginal power supply. Xenix | |
boxes often have more power hungry peripherals than your run of | |
the mill MS-DOS PC. For example, suspect the power supply if the | |
panics occur as soon as the tape drive starts spinning. | |
QB4. Login fails without prompting for password. | |
If /dev/tty is missing or incorrect, you will get a `Login incorrect' | |
message without ever being prompted for a password. For security | |
reasons, the `login' program goes directly to /dev/tty to ensure | |
the password comes from the keyboard. Your `tty' device should | |
look something like: | |
crw-rw-rw- 2 bin bin 3, 0 Oct 24 04:09 /dev/tty | |
If necessary, use the `mknod' command to recreate it. | |
QB5. Can I use `gcc' instead of buying the SCO Development System? | |
Yes, but the task is bigger than you think. A compiler alone | |
doesn't do any good if you lack header files, libraries, linker, | |
etc. Don't forget about make, yacc, lex, etc. Fortunately, the | |
repertoire of GNU software has grown to the point where you can | |
fill in all these pieces. Many folks, particularly Steve Bleazard, | |
Ronald Khoo, and Kai Ruottu, have done a lot of work getting `gcc' | |
and the GNU utilities running on Xenix. So, with anonymous FTP | |
access and a little elbow grease, you can do it. | |
Steve and Ronald provided the first widely available kit to use | |
gcc under Xenix. Their package was based on the gcc-1.40 release. | |
The most recent version (we know of) available for SCO Xenix is | |
gcc-2.5.7, ported by Kai. The Xenix-specific patches are available | |
on `ftp.funet.fi:/pub/unix/386ix/xenix/gcc/gcc257.xenix', as well | |
as unix.secs.oakland.edu. | |
An alpha test version of a `libc' for Xenix is available from | |
kate.ibmpcug.co.uk (in /ftp/pub/xenix/libc) and unix.secs.oakland.edu | |
(in /pub/xenix); files XLIBC.README.Z and xlibc.shar.Z. It is | |
based on the Berkeley Networking Release 2 tape. This package | |
was developed for use with the gcc-1.40 kit, but might be of use | |
with more recent versions too. | |
QB6. Program `foobar' dumps core with a stack overflow. [Xenix 286] | |
Xenix/286 programs request a fixed amount of space for the stack | |
in the executable file header. A program that exceeds this limit | |
will crash with a core dump. To fix, change the header to ask | |
for more stack space. You can recompile your programs with the | |
`-F' flag to increase the stack size. You can change the stack | |
size of existing programs by running `fixhdr' with the `-F' flag. | |
This is not a problem on 80386 binaries that use a variable stack. | |
QB7. Spell cannot initialize hash table. | |
The `spell' script (included in the optional Text Processing | |
package) uses an 8086 binary. It needs to stuff a bunch of data | |
into a single 64K segment. If you exceed this limit, you will | |
get an error saying something like: | |
table = malloc(0xc848) fails | |
sbrk(0) = 0x3868 | |
spell: cannot initialize hash table | |
You can usually get enough space for `spell' to run by clearing | |
out your environment first. To do this, add the following line | |
near the top of the `/usr/bin/spell' script: | |
unset `env | sed -e '/^PATH=/d' -e '/^PS1=/d' -e 's/=.*//'` | |
QB8. Will my laser printer work with the Text Processing Package? | |
Xenix `troff' is based on a version written long before the advent | |
of laser printers. The only thing old troff understands is C/A/T | |
typesetters. Chris Lewis's `psroff' allows old troff to work with | |
various devices, including Postscript and LaserJet printers. | |
Version 3.0 is available from the comp.sources.unix archives. | |
Another alternative is Rick Richardson's `jetroff', available in | |
the comp.sources.misc archives. | |
For production work, consider purchasing a device independent | |
troff. Some of the suppliers of `ditroff' are Elan, Image Network, | |
Leverage, and SoftQuad. | |
Another alternative is the `groff' package by the Free Software | |
Foundation. You can find it in any of the FSF archives -- but | |
you will need `g++' to compile it. You will still need a backend | |
program to use a LaserJet with `groff'. Some possibilities are | |
`psroff', `jetroff', and `dvi2xx' on ftp.wu-wien.ac.at. | |
QB9. Where is crypt? | |
Encryption programs, such as `crypt', are are categorized by the | |
US Government as munitions. (Three cheers for the cold war!) | |
SCO removes the crypt(S) procedure and crypt(C) command from Xenix | |
so it may be exported. US domestic customers may contact SCO to | |
obtain SLS LNG190B. If you simply need a crypt(S) procedure to | |
compile programs that do password checking, you may get the SLS | |
LNG255B `International Crypt SLS' from any of the aforementioned | |
archive sites. This provides a crypt(S) procedure that supports | |
encryption but not decryption, and it does not include the crypt(C) | |
command. A number of non-domestic archive sites, for example the | |
European GNU mirror sites, carry `crypt' replacements that were | |
developed outside the US to avoid this export silliness. | |
QB10. How can email handle `internet' addresses or use a `smart host'? | |
Neither the SCO Xenix mail transport (/usr/lib/mail/execmail) nor | |
the mail program (/usr/bin/mail) can handle so-called `internet' | |
addresses (e.g. [email protected]). Nor can they use a `smart host' | |
system to route your email to its final destination. If you want | |
to add these features, you need to install a replacement transport | |
and reconfigure the mailer to use this transport. For simple uucp | |
connectivity, we recommend smail2.5 (archive name `smail3' published | |
in comp.sources.unix volume 11). If you also need network | |
connectivity (e.g. SMTP mail) then you'll need a more full-featured | |
mailer such as smail3.1, sendmail, or MMDF. | |
Although smail2.5 fits right into the SCO mail system, some | |
modifications and installation tricks are required. Both Chip | |
Salzenberg (see the comp.sources.misc archives) and Chip Rosenthal | |
(contact [email protected]) have provided solutions. | |
Whatever approach you use, you must tell /usr/bin/mail to pass | |
messages off to execmail for delivery rather than handling them | |
itself. Do this by adding a line which says `set execmail' to | |
the /usr/lib/mail/mailrc file. You might also think about adding | |
a nice, full-screen mailer program such as Elm or Mush. | |
QB11. Where can I find freely available software for Xenix? | |
Many of the freely available programs on archive sites and published | |
on Usenet will run under Xenix with little or no modification. Assuming | |
you have the Xenix Development System to compile it! See news.answers | |
and comp.archives for information on archive sites. | |
The following systems maintain software archives that specialize in Xenix. | |
anomaly | |
Administrator: Michael P. Deignan <[email protected]> | |
Description: Source code for SCO Xenix, Unix, and ODT | |
FTP Access: anomaly.sbs.risc.net [155.212.2.2], login=anonymous | |
information in /SOFTLIST | |
UUCP Access: 1-401-455-0347 (PEP), 331-3706 (V.32bis) | |
login=xxcp, passwd=xenix, information in ~/SOFTLIST | |
Mail Server: send email to "[email protected]" with a Subject | |
of "snarf" and the lines "snarf address <addr>" | |
(replace <addr> with your email address) and "snarf | |
help" to receive more information | |
Comments: ftp is via serial connection so be patient, number of | |
connections limited to prevent congestion | |
Mirror Sites: novell-server.pstc.brown.edu:/home/ftp/sco | |
oakland.edu | |
Administrator: Ron Srodawa <[email protected]> | |
Description: SCO Xenix ports, particularly GNU software | |
FTP Access: unix.secs.oakland.edu [141.210.180.2], | |
login=anonymous, files in /pub/xenix | |
wimsey | |
Administrator: Stuart Lynne <[email protected]> | |
Description: SLSs, SCO Unix (not Xenix) software in `custom' format | |
FTP Access: ftp.wimsey.bc.ca [192.48.234.1], login=anonymous, | |
information in /READ.ME.FIRST, /ls-lR.Z | |
UUCP Access: 1-604-939-4782 (PEP), 1-604-937-7411 (V.32bis), | |
1-604-939-4756 (2400bps), login=nuucp, passwd=nuucp, | |
information in ~ftp/READ.ME.FIRST, ~ftp/ls-lR.Z | |
Guest Access: same phone numbers, login=guest, passwd=guest | |
Comments: ftp is via serial connection so be patient, mostly | |
Unix oriented but some of it might work with Xenix | |
unicom.com | |
Administrator: Chip Rosenthal <[email protected]> | |
Description: A small archive of various Xenix tools. | |
FTP Access: ftp.unicom.com, files in /pub/sco-xenix | |
Comments: This archive contains some of the code I've posted | |
to comp.unix.xenix.sco over the years. | |
QB12. Why don't my arrow keys work in `vi'? | |
For versions 2.3.3 and prior, probably because your `termcap' | |
entry does not have then defined properly. For version 2.3.4, | |
it's because `vi' is broke. If you have an older version of Xenix | |
laying around, you might consider grabbing `vi' off of it instead. | |
Note, however, that 2.3.4 `vi' gets its terminal information from | |
the `terminfo' database, while prior versions use `termcap'. | |
QB13. Why does `cron' die periodically? | |
Because of a bug that gets triggered by looooong periods of | |
inactivity. The problem is that if you don't give `cron' something | |
to do, an internal counter overflows and it dies. The solution? | |
Give it something to do! Use `crontab' to add something like this: | |
0 * * * * /bin/true | |
That runs the `true' command once an hour, on the hour. | |
------------------------------ | |
Subject: ***** SECTION C - Disk and Filesystem Questions | |
QC1. Can I use a disk bigger than 1024 cylinders? | |
Yes. However, your root filesystem cannot extend beyond the 1024th | |
cylinder, because that's as far as the BIOS can reach when booting | |
the system. The BIOS is bypassed after Xenix boots, so cylinders | |
beyond 1024 can be accessed once Xenix is running. It is not | |
necessary to use a sector translation mode controller to reduce | |
the number of cylinders. The translation mode is very slow. | |
QC2. Why won't Xenix recognize my SCSI disk? | |
Not all versions of Xenix support SCSI. Those that do only support | |
certain SCSI adapters. First, verify your N1 floppy says `Type: | |
386GT' and not `Type: 386AT'. The AT version of Xenix (now | |
obsolete) does not include any SCSI support. | |
The GT version supports a limited number of SCSI host adapters. | |
The Adaptec AHA-154x is supported. We've also used compatibles | |
such as the Buslogic BT-542B. 2.3.4 added support for the | |
WD-7000-FASST2. If you've got something different, you have to | |
get a driver from the board vendor. The `SCO Hardware Compatibility | |
Guide' (contact SCO sales for one) should be consulted whenever | |
you have any hardware compatibility questions. | |
Some typical installation mistakes are: | |
- SCSI ID jumper for the root (boot) hard disk must be ID=0. | |
- The BIOS must be set for drive C:=NONE in the CMOS setup program. | |
- I/O port, memory address, or interrupt misconfiguration/conflict. | |
- Terminating resistors installed only at ends of ribbon cable. | |
- The parity jumper should be enabled on all drives and controllers. | |
A word on terminating resistors: Terminators must be installed on | |
the two devices at the end of the SCSI chain. If you have no external | |
devices then one end of the chain will be the SCSI adapter -- so it | |
gets terminators. The last device on the ribbon cable also needs | |
terminators. The terminators must be removed from everything else on | |
the SCSI chain. | |
Note that some SCSI disk controllers mimic the standard ST-506 | |
interface. No special support is required for them; Xenix boots | |
thinking you've got a plain old disk controller. See the instructions | |
that came with your controller for details on cabling, strapping, | |
terminating, etc. | |
Note: If you are using Xenix 386GT 2.3.1-2.3.3 you should install | |
xnx252b for ISA or xnx150 for MCA. This is an improved SCSI driver | |
that yields a significant performance improvement. | |
QC3. Where is the `/u' filesystem I created? | |
When you create filesystems during the install procedure or with | |
`mkdev hd', the filesystem is initialized but it isn't configured | |
into the system. To perform that final step you need to run `mkdev | |
fs'. For example, if you created a `/u' filesystem, run: | |
mkdev fs /dev/u /u | |
QC4. `WARNING!! - mounting: <usr> as <news>' message when booting. | |
Due to a bug in the `mkdev fs' program, filesystems mounted below | |
the root directory are labeled wrong. For example, if you mount | |
a device `/dev/news' onto directory `/usr/spool/news', then you | |
will get a warning message when going into multi-user mode. That's | |
because `mkdev fs' labels the filesystem with the first component | |
in the pathname (`usr' in this example) when it really should be | |
the last component in the pathname (`news' in this example). | |
This message is merely an annoyance and will not hamper system | |
operation. To eliminate the warning, relabel the filesystem with | |
the last component of the mount directory. For the above example, | |
you may change the label from `usr' to `news' by running the command: | |
fsname -s news /dev/news | |
QC5. `POSSIBLE FILE SIZE ERROR' when running `fsck'. | |
If `fsck' says `POSSIBLE FILE SIZE ERROR I=nnnn' don't panic. It | |
almost always means `fsck' found a `sparse file', not a true | |
filesystem error. A sparse file has holes in it. They are created | |
when a program skips over sections of a file it is writing. The | |
Xenix filesystem doesn't even bother allocating disk blocks for | |
those holes, it just says the gaps are full of zeros. The complaint | |
occurs because `fsck' calculates the number of disk blocks needed | |
to store the file, counts up the number of disk blocks actually | |
used by the file, and complains that the two don't match. | |
When you get a file size error from `fsck' you should note both | |
the `I=nnnn' inode number logged in the message and the filesystem | |
which was being checked. You can see what the file is by running | |
the following command: | |
ncheck -i <nnnn> <fsname> | |
where <nnnn> is the number logged in the error message and <fsname> | |
is the pathname of the filesystem device, e.g. `/dev/u'. Chances | |
are the file will either be a dbm(S) database file (in which case | |
ignore the complaint, it's expected) or a `core' dump (in which | |
case delete the `core' file). | |
QC6. Is disk fragmentation curable? | |
Not easily. However, the steps to slow down fragmentation are | |
pretty simple. | |
Xenix maintains a list of available disk blocks. As files are | |
deleted, the released blocks are appended to this free list. | |
Ideally, adjacent disk blocks would be used to create and grow | |
files so that all the parts of the file sit together on the disk. | |
Disk blocks, unfortunately, are allocated to files in the order | |
they appear on the free list and without regard for location. | |
Eventually, new files will be created with their data blocks | |
scattered all around the disk. This fragmentation is undesirable | |
because it slows down disk accesses. | |
To slow down the tendency towards fragmentation, periodically | |
reorder the blocks in the free list. To do this, dismount the | |
filesystem (with `/etc/umount') and run `fsck -S'. You will get | |
a message saying: | |
FILE SYSTEM NOT MODIFIED, STILL DIRTY. | |
Don't worry -- ignore that message. | |
To determine how badly your filesystems are fragmented, run | |
`fsanalyze' by Michael J. Young, from comp.sources.misc. You will | |
need patchlevel 3 to analyze Xenix filesystems. | |
The conventional cure for filesystem fragmentation is: | |
- Make a full backup of the filesystem. Use `cpio' (or `afio' if | |
you've got it). Do NOT use `tar'. It doesn't backup device | |
nodes, pipes, or directories. You could use `dump', but we find | |
it awkward. (n.b. Earlier versions of this FAQ claimed that | |
`dump' would restore in a fragmented manner. That is incorrect. | |
Sorry for the misinformation.) | |
- Recreate an empty filesystem with `divvy' or `mkfs'. `divvy' | |
is easier to use -- simply select the `create' option. However, | |
`mkfs' will be required if you want a non-default number of | |
inodes. Invoke `divvy' with: | |
/etc/divvy -c 1 -b 1 # for 1st physical disk | |
/etc/divvy -c 1 -b 1 -p 1 # for 2nd physical disk | |
- Reload the filesystem from the backup. | |
- Regenerate the `lost+found' directory. Run: | |
# Substitute appropriate name for `foo'. | |
/etc/fsck /dev/foo | |
/etc/mount /dev/foo /foo | |
mkdir /foo/lost+found | |
for i in 1 2 3 4 5 6 7 8 ; do | |
for j in 1 2 3 4 5 6 7 8 ; do | |
touch /foo/lost+found/x$i$j | |
done | |
done | |
rm /foo/lost+found/x?? | |
/etc/umount /dev/foo | |
Be very careful with this procedure. We suggest you verify your | |
backup is readable before zapping the filesystem. One mistake | |
(especially when running `mkfs' or `divvy') will trash everything. | |
The filesystem you trash may be your own. | |
QC7. Can I put a CD-ROM drive on my Xenix system? | |
No. Sure, it would be easy for somebody to write a device driver | |
to talk to a CD-ROM drive. But that's not the whole story. If | |
you want to use a CD-ROM, you need to be able to mount it as an | |
ISO-9660/High Sierra filesystem. That's not so easy. See the | |
FAQ on NFS for additional info. | |
------------------------------ | |
Subject: ***** SECTION D - Communications Questions | |
QD1. How do I add more than 2 COM ports? | |
Dumb serial cards (and internal modems) may be configured for Xenix | |
as COM3 and COM4 -- with one big caveat. Each COM port requires its | |
own interrupt number. If you have an unused IRQ and the Development | |
System, you may build additional COM ports into the kernel. To | |
illustrate the procedure, we will add a COM3 configured as follows: | |
I/O Addr: 0x3E8 | |
IRQ: 5 | |
device: /dev/tty3a Major=5, Minor=4 | |
/dev/tty3A Major=5, Minor=132 | |
Serial devices are a two-fer, you get a "direct" device (tty3a) | |
and a "modem control" device (tty3A). The two are distinguished | |
by the minor device numbers -- add 128 to get the "modem control" | |
device number. | |
The device minor number you select *must* be in the range of 0 | |
through 15 inclusive. That's because the driver does bit twiddling | |
that assumes the device unit number is located in the four least | |
significant bits of the minor number. (Older versions of this | |
message not only failed to point this out, but gave an example | |
that would not work due to a bogus minor device number selection.) | |
1. Edit `/usr/sys/io/sioconf.c'. | |
The two lines in this file that describe COM1 and COM2 are: | |
{0,IBM_BOARD, 1,4,0, (sd)0x3f8,0, 0,MCRBIT3}, /*ibm COM1*/ | |
{1,IBM_BOARD, 1,3,8, (sd)0x2f8,0, 0,MCRBIT3}, /*ibm COM2*/ | |
Add a line that says: | |
{2,IBM_BOARD, 1,5,4, (sd)0x3e8,0, 0,MCRBIT3}, /*ibm COM3*/ | |
See `/usr/sys/io/sioconf.h' for details. | |
2. Edit `/usr/sys/conf/master'. | |
The serial ports are defined by the line: | |
sio 4 0577 104 sio 0 0 5 1 7 3 4 33 34 | |
The last four fields define the interrupt numbers used. Change | |
the `33' to a `5' since COM3 will be on IRQ5. For reference, | |
here is the mapping between IRQ lines and the master file | |
`magic numbers': | |
IRQ0 0 IRQ4 4 IRQ8 30 IRQ12 34 | |
IRQ1 1 IRQ5 5 IRQ9 31 IRQ13 35 | |
IRQ2 31 IRQ6 6 IRQ10 32 IRQ14 36 | |
IRQ3 3 IRQ7 7 IRQ11 33 IRQ15 37 | |
3. Rebuild the kernel. Run: | |
cd /usr/sys/conf | |
make | |
Do not use `link_xenix' here. You need to run `make' to get | |
`sioconf.o' and the kernel data files rebuilt. | |
4. Install the new kernel. Run: | |
/usr/sys/conf/hdinstall | |
This will make a backup of your current kernel to `/xenix.old'. | |
5. Create the device nodes. Run: | |
mknod /dev/tty3a c 5 4 | |
mknod /dev/tty3A c 5 132 | |
Reboot your system, and the new serial port should be there. | |
QD2. How do I set a 19,200 baud rate? | |
For historical reasons, terminal speeds of 19200 and 38400 are | |
called `EXTA' and `EXTB'. So, in the `/etc/gettydefs' file you | |
need to say `EXTA' and `EXTB', not 19200 and 38400. These speeds | |
are already available there as entries `n' and `o', respectively. | |
Similarly, with the `stty' command you need to say: | |
stty 9600 # set to 9600 | |
stty exta # set to 19200 | |
stty extb # set to 39400 | |
A smart serial card is recommended for these two highest speeds. | |
QD3. How can I have more mscreen(C) sessions? | |
The mscreen(C) facility provides multiple sessions from a serial terminal | |
by `multiplexing' your terminal (tty) line onto several pseudo-terminal | |
(pty) lines. Xenix is shipped with eight ptys enabled, that provides | |
a system-wide limit of eight sessions through the mscreen(C) command. | |
First off, you need to determine whether you are allocating mscreen(C) | |
sessions wisely. For example, SCO ships an `/etc/mscreencap' file | |
that runs six sessions on a WY-60 terminal. If you edit `mscreencap' | |
and cut this down to three you immediately double the number of people | |
who can run mscreen(C). | |
You cannot increase this number beyond eight if you are running TCP/IP. | |
(More about this in a moment.) If you are not running TCP/IP, then | |
you can increase the number of possible mscreen(C) sessions by: first | |
creating more ptys in the kernel, second creating the device nodes | |
for the new ptys, and finally placing a `getty' upon each of these | |
new ptys. | |
To create more ptys in the kernel, increase the `nspttys' kernel | |
parameter. With Xenix 2.3.4, run the `configure' command interactively | |
and select the `Multiscreens' option. For older versions of Xenix, | |
run `configure' manually. For example, to provide sixteen ptys, run: | |
cd /usr/sys/conf | |
./configure nspttys=16 | |
Once `nspttys' is set, run `link_xenix' and `hdinstall' to build and | |
install a new kernel. | |
Next, you need to create the device nodes in the /dev directory for | |
these additional ptys. Unfortunately, mscreen(C) uses a very poor | |
naming strategy for ptys beyond the 8th. Once you go beyond the | |
/dev/ttyp7 in the base Xenix distribution, mscreen(C) next looks for | |
not /dev/ttyp8, but rather /dev/ttyp01. Therefore you should create | |
the eighth pty with the commands: | |
cd /dev | |
mknod ttyp01 c 54 8 | |
mknod ptyp01 c 55 8 | |
chmod 666 ptyp01 | |
chmod 644 ttyp01 | |
You might notice that these names are the same ones used by `rlogind' | |
and `telnetd' under SCO TCP/IP. Unfortunately, to use these ptys for | |
mscreen(C) you need to place a `getty' on them -- but if you do then | |
rlogin/telnet will break. Those running TCP/IP (and not weak of heart) | |
can try editing the `/dev/ttyp' string in the `mscreen' binary and | |
totally rename the pty devices. | |
An alternative method to relieve the conflict between `mscreen' | |
and TCP/IP is to use an `.mscreenrc' file. If you create a surplus | |
of TCP/IP ptys, you can steal some of them for `mscreen'. Just | |
create an `.mscreenrc' and enter the names of the ptys you want | |
`mscreen' to use. Since the TCP/IP utilities start at the bottom, | |
steal from the top and work down. The catch? You have to put an | |
`.mscreenrc' file into the home directory of *every* user who will | |
be using `mscreen'. Bleych. | |
If necessary, ensure you edit `/etc/ttys' to add the new ptys. | |
Don't forget to `enable' the lines to start a `getty' on them. | |
QD4. Upgraded to 2.3.4 and flow control broke with mscreen(C). | |
The 2.3.4 version of mscreen(C) was changed to run the tty line | |
totally raw. This is required so that the ^S and ^Q keys are | |
passed on to programs that need them, such as `emacs' and Foxbase. | |
An unfortunate side effect of handling flow control on the other | |
side of the session rather than directly by the tty is that response | |
to flow control is a lot more sluggish. Now, when you hit ^S you | |
might get another screenful of data before the display actually | |
freezes. | |
If you never run any applications that require full 8-bit transparency, | |
one way to make flow control more responsive is to rename `mscreen' | |
to `/usr/bin/mscreen.sco' and install the following script in its | |
place: | |
: | |
tty=`tty` | |
( sleep 5 ; stty ixon <$tty ) & | |
exec mscreen.sco | |
QD5. Terminals act funny, modems drop characters, help!! | |
If you are losing characters on your serial lines, consider the | |
following steps: | |
* Ensure that flow control is working right. | |
* If you are running dumb COM ports, either upgrade the UART chips | |
to 16550As or switch to a smart serial card. | |
* If you have a lot of users or lots of high speed data lines, | |
increase the number of `clist' buffers in the kernel. | |
* If you upgraded to 16550A UARTs and this helped but did not | |
solve the problem, then adjust the FIFO trigger level. | |
* If you are running high speed lines on a loaded system, adjust | |
the `ttyhog' value. | |
When diagnosing serial problems, start at the top of this list | |
and work down. If your flow control is broke, it will do no good | |
to go poking around inside your Xenix kernel. | |
QD6. Does Xenix support 16550A UARTs? | |
The guts of a standard COM port is a UART (universal asynchronous | |
receiver/transmitter) chip. Most serial ports use the 16450 or | |
an equivalent chip. The 16550A is a pin-compatible, drop in | |
replacement which adds 16-characters of on-chip FIFO buffering. | |
The FIFOs reduce system loading and increase performance. | |
Starting with 2.3.4, the `sio' driver recognizes 16550A UARTs and | |
enables the on-chip FIFOs. Older versions of Xenix merely treat | |
this chip as an expensive 16450. You can get 16550A support with | |
any version of Xenix by installing the FAS driver written by Uwe | |
Doering and based upon Jim Murray's `asy' driver. FAS was published | |
in alt.sources, and is available at most reputable archive sites. | |
We recommend sticking with the National Semiconductor NS16550A. | |
Many manufactures make usable 16450 clones, but some of the 16550 | |
compatible chips aren't so compatible. Also, older versions of | |
the 16550 are known to be broken. Ensure yours have an `A' suffix. | |
QD7. How do I increase the number of `clists'? | |
Xenix buffers terminal characters in data structures called | |
`clists'. There is a fixed pool of clists on the system, and when | |
that supply is exhausted incoming characters are dropped. Therefore, | |
the more active users you have on your system, the larger this | |
pool of clists should be. The default configuration is 100 clists. | |
Each terminal line requires an average of 5 to 10 clists. High | |
speed modems need more. A conservative strategy would be to | |
allocate 15 clists per active terminal. For example, if you have | |
16 serial ports and 4 console screens active at once, allocate | |
(16+4)*15 or 300 clists. | |
To see the number of clists on your system, login as root and run: | |
cd /usr/sys/conf | |
./configure -y NCLIST | |
To change the number of clists, say to 300, login as root and run: | |
cd /usr/sys/conf | |
./configure NCLIST=300 | |
then rebuild and install a new kernel and reboot. | |
QD8. How do I change the 16550A trigger level? | |
If installing a 16550A UART helped but didn't totally fix a lost | |
character problem, and your system is heavily loaded, then there | |
is something else you can try. If you installed a 16550A and | |
there was no effect at all, then skip this -- it won't help. | |
The Xenix `sio' driver initializes the 16550A with a trigger level | |
of 14. This means that under continual data streams the UART will | |
wait until 14 characters accumulate before telling Xenix to come | |
get them. This gives the system two character times to get in | |
and service the COM port. If Xenix does not service the port in | |
that time the 16-character buffer will overflow and and characters | |
will be dropped. This might happen on a heavily loaded system. | |
The trigger level is initialized at boot time from the 16-byte | |
`sio_fifoctl[]' array. This array specifies the UART control | |
register initialization values for device minor numbers 0 through | |
15. Or more exactly, the minor number is ANDed with 0x0F to get | |
the index into this array. For example, the initialization for | |
/dev/tty2a (minor=8) is in `sio_fifoctl[8]'. The possible values | |
are as follows: | |
sio_fifoctl: 0xCF 0x8F 0x4F 0x0F | |
trigger level: 14 8 4 1 | |
The standard value is 0xCF. A smaller value will notify the system | |
earlier that characters are waiting, thus providing the system | |
more time to service the port, but increasing the number of | |
interrupts generated by the port. | |
As an example, here is how to change the trigger level for /dev/tty2a | |
(and /dev/tty2A) to 8 characters (code=0x8F): | |
cp /xenix /xenix.save # make a backup! | |
adb -w /xenix # use "/etc/_fst" if no "adb" | |
* sio_fifoctl+8/x | |
sio_fifoctl+0x8: 0xcfcf | |
| | | |
| `---- This is the 8-bit value for the | |
| port we want (minor=8). | |
| | |
`------ This is the 8-bit value for the | |
next port (minor=9). | |
* sio_fifoctl+0x8/w 0xcf8f | |
sio_fifoctl+0x8: 0xcfcf= 0xcf8f | |
* $q | |
QD9. How do I adjust the `ttyhog' value? | |
Since Xenix has a fixed pool of clists, the kernel tries to prevent | |
one tty from hogging all of them. The limit is defined by `ttyhog', | |
and defaults to 256 (0x100 hex). This limit might be too low if | |
you've got some particularly fast devices on a particularly slow | |
system. To change the `ttyhog' value you must patch the kernel | |
image. The following increases `ttyhog' to 512 (0x200 hex). | |
cp /xenix /xenix.save # make a backup! | |
adb -w /xenix # use "/etc/_fst" if no "adb" | |
* ttyhog/x | |
_ttyhog: 0x100 | |
* ttyhog/w 0x200 | |
_ttyhog: 0x100= 0x200 | |
* $q | |
QD10. BSD based uucp can't connect to my machine. | |
BSD based uucp sends even parity. Xenix uucp expects no parity. | |
Add: | |
"" P_ZERO | |
to the chat script in their (not your) `Systems' or `L.sys' file. | |
For example, the following works on a Sun 3: | |
xnxbox Any uucp 19200 5553333 "" P_ZERO "" \r in:--in: nuucp | |
QD11. uucp truncates my system name to seven characters! | |
This misfeature was introduced in the xnx155b supplement. The | |
story we hear is that SCO broke their `uucp' to cater to systems | |
that choke on long system names. There is a workaround. For | |
system name = `verylongname', add to every record in the | |
/usr/lib/uucp/Permissions file: | |
MYNAME=verylongname | |
Next, rename /usr/bin/uuname to /usr/bin/uuname.sco. Replace | |
/usr/bin/uuname with: | |
: | |
if [ $# -ne 1 -o "X$1" != "X-l" ] ; then | |
exec /usr/bin/uuname.sco $@ | |
exit 1 | |
fi | |
head -1 /etc/systemid | |
exit $? | |
This allows programs using `uuname' to receive the correct, | |
untruncated name. | |
QD12. What is the uucp `windows' patch? | |
uucp transmits data in packets, usually 64 bytes apiece. An | |
acknowledgment is required for every packet sent -- but not | |
immediately. A window of unacknowledged packets is allowed. The | |
default window size is three, that means `uucico' won't stop | |
sending unless it falls more than three packets behind. A three | |
packet window isn't big enough for very fast media and long delay | |
media. The `uucico' binary can be patched to increase the window | |
size by the following manual procedure: | |
cd /usr/lib/uucp | |
cp uucico uucico.old # make a backup copy!! | |
adb -w uucico | |
* windows/x # display windows value | |
_windows: 0x3 | |
* windows/w 7 # change it to seven | |
_windows: 0x3= 0x7 | |
* $q # done | |
If you have Xenix 2.3.4 but not the Development System, use | |
`/etc/_fst' instead of `adb'. If you can't find adb on your | |
system, look on the N02 disk. | |
This change increases the window size to seven -- the maximum | |
possible. A similar change must be performed on the remote system's | |
uucico because the actual window size is negotiated as part of | |
the protocol startup. | |
QD13. uucp gives `alarm' messages, eventually dies. | |
If you run uucp in debugging mode (`uutry -x9') and see it get | |
stuck like: | |
alarm 1 | |
send 37777777621 | |
alarm 2 | |
send 37777777621 | |
alarm 3 | |
send 37777777621 | |
alarm 4 | |
send 37777777621 | |
and eventually die, this means your system got jammed waiting for | |
a response that never came. The most common cause of this problem | |
running uucp across a modem with XON/XOFF flow control enabled | |
(e.g. a Telebit modem with S58=3). You can't do that; you must | |
run with no flow control or RTS/CTS handshaking (on a Telebit that | |
would be S58=0 or S58=2, respectively). Other possible causes of | |
this problem are serial cards with broken handshaking or running | |
out of clists. | |
------------------------------ | |
Subject: ***** SECTION E - Display and Graphics Questions | |
QE1. How come Xenix won't recognize my VGA display? | |
Probably because you are running a very old version of Xenix. | |
VGA support was introduced in release 2.3.0. | |
QE2. How can I do a printscreen under Xenix? | |
MS-DOS users can produce a screen printout with one keystroke. | |
Xenix does not offer this builtin capability. SCO's MultiView | |
product provides this. Also, it can be simulated with the following | |
script: | |
: | |
# @(#) prtscrn Print Screen | |
# execute from cu as ~!prtscrn | |
oldstty=`stty -g` # save stty | |
stty -echo ixon ixoff -ixany # no echo | |
/bin/echo '\033[2i\c' # send screen to host | |
# grab 24 lines, clean up trailing blanks, print it | |
sed -e 's/ *$//' -e 24q | lp | |
stty $oldstty # put stty back when done. | |
Another approach is the `prtscrn2' program by Chip Rosenthal. It | |
grabs the contents of any console screen and sends it to standard | |
output. See comp.sources.misc. | |
QE3. How can I blank the console display when it is idle? | |
A screen blanker is built into the new console driver, provided | |
by 2.3.4 or 2.3.3 via SLS xnx296a. It is finicky about the hardware | |
it likes. Anything less than a VGA display will not work. To | |
enable the blanker, as root: | |
cd /usr/sys/conf | |
./configure | |
Select option 6 (MultiScreens) and enter a non-zero value for TBLINK. | |
(The manual incorrectly calls this TBLNK.) Then ./link_xenix and | |
./hdinstall. | |
If the built-in blanker doesn't like your video adapter or you | |
have an older version of Xenix, save the following script to a | |
file and run it out of cron every fifteen minutes or so. It will | |
check if all console multiscreens have been idle for ten minutes | |
or more, and if so switch the display to an unused screen (as | |
configured by SCRN). | |
: | |
who -u | awk ' | |
$2 !~ /^tty[01][0-9]$/ {next} # Not a console screen. | |
$6 == "." {exit(1)} # Screen in use. | |
$6 ~ /^0:0/ {exit(1)} # Not idle long enough. | |
' >/dev/null 2>&1 | |
if [ $? -eq 0 ] ; then | |
# Leading "\0" aborts any pending escape sequence. | |
SCRN=10 | |
echo "\0\033[${SCRN}z\c" >/dev/tty01 | |
fi | |
QE4. How can I do graphics under Xenix? What programs are available? | |
There are two approaches to graphics programming. At the very | |
lowest level, the screen(HW) manual page describes ioctl() codes | |
to access the video display memory and controller. Device-independent | |
graphics is provided by the Computer Graphics Interface (CGI) | |
package included with the Xenix Development System. CGI drivers | |
are provided for VGA, EGA, and Hercules displays; Epson, LaserJet, | |
and Postscript printers; and HP plotters. Several programs have | |
been posted to the net that run under CGI, such as gnuplot, | |
starchart, and gif. See comp.sources.misc. | |
QE5. CGI graphics mangles grey scale on a mono VGA. | |
SCO fixed their monochrome VGA driver in version 2.3.3. The | |
default color mapping in CGI maps many colors with the identical | |
total intensity. They appear as the same shade grey-scale display. | |
Try using the CGI functions vs_color() and/or vsc_table() to create | |
a color map that works with your display. Try vsf_style() to | |
create hatching or other fill-patterns in place of colors. | |
QE6. CGI graphics fail on a LaserJet in landscape mode. | |
A bug in the CGI 1.1.0 LaserJet driver causes all output to | |
appear on a single line. In landscape mode the driver puts out | |
a spurious escape sequence `\033&a864V' that forces all output | |
to the same position on the page. You can either remove the | |
offending escape sequence from the driver with a binary editor | |
(keep a backup copy), or use a filter to clobber that sequence | |
from the output. | |
------------------------------ | |
Subject: ***** SECTION F - Networking Questions | |
QF1. What do I need to run TCP/IP? | |
The SCO TCP/IP Run-Time includes *almost* everything you need to | |
connect a Xenix system to a TCP/IP network. You get the drivers | |
for several popular network interface cards (NICs), the protocol | |
stacks, and most of the familiar programs like `telnet' and `rcp'. | |
We say `almost' because the TCP/IP package requires Streams, and | |
that's an extra-cost option. You need to buy and install the | |
Streams Run-Time before you can load TCP/IP. Furthermore, if you | |
want to develop or compile network programs, you will need the | |
TCP/IP Development System too. | |
QF2. What do I need to run NFS? | |
Unix. :-) | |
Nobody offers an NFS for Xenix, and don't hold your breath waiting | |
for one. It is very difficult adding new filesystem types to | |
Xenix. The `FS' in NFS does stand for `File System' after all. | |
Newer versions of Unix provide mechanisms that allow new filesystem | |
types to be added easily (the `vnode' mechanism in BSD Unix and | |
the `filesystem switch' in System V 3.2 and beyond). With Xenix, | |
the filesystem support must be coded right into the kernel. The | |
task of merging NFS code with VP/ix hacks, Xenix-net hacks, etc. | |
is more than can be justified. And because it requires kernel | |
source, it is unlikely a third party would do this. | |
QF3. How can I run uucp over TCP/IP? | |
The Xenix `uucico' doesn't know about networking, and the Xenix | |
TCP/IP package doesn't do anything to solve that problem. Chip | |
Rosenthal <[email protected]> has published a program called | |
`uucpm' that works around this problem to allow an SCO Xenix system | |
perform uucp transfers across the network. Contact him if you | |
need a copy. | |
QF4. What does "NOTICE: tcp sum: src C06C6901, sum 0000B004" mean? | |
That a bad TCP segment was received. One possible reason for this | |
is a buffer overrun caused by a slow system, a lousy network card, | |
or a heavy network load. Most TCP/IP implementations silently | |
detect these errors and ask the remote system to re-transmit. | |
SCO's TCP/IP decides to whine to the console as well. | |
You can tell what the other system is by getting out your hex | |
calculator (c.f. the bc(C) command) and plugging in the `src' | |
address. In the above example, 0xC0=192, 0x6C=108, 0x69=105, and | |
0x01=1. So the sending machine was 192.108.105.1. | |
If you get these messages on occasion or only under heavy network | |
load, don't worry too much. If they are frequent then consider a | |
faster network card with more buffering, a faster computer, or | |
go looking for cabling problems. | |
If you get tired of seeing these messages, you can shut them off: | |
cp /xenix /xenix.save # make a backup! | |
adb -w /xenix # use "/etc/_fst" if no "adb" | |
* tcpprintfs/d | |
_tcpprintfs: 1 # currently "1" -> enabled | |
* tcpprintfs/w 0 # set to "0" -> disabled | |
_tcpprintfs: 0x1= 0x0 | |
* $q | |
------------------------------ | |
Subject: ***** SECTION X - Xenix and MS-DOS Interoperability Questions | |
QX1. Can Xenix share a hard disk with MS-DOS? | |
Yes. SCO directly supports an MS-DOS 3.2 partition on the same disk as | |
your Xenix partition. You must: | |
- Install MS-DOS 3.2 bootable partition as the FIRST partition. | |
- Install Xenix bootable as the next partition. | |
- Select Xenix as the `active' partition. | |
At the | |
Boot | |
: | |
prompt either type `dos' for MS-DOS boot or press ENTER for Xenix. | |
If you create any other type of partition (e.g. one of the new, | |
larger sized MS-DOS 5.0 partitions) or forget to create the MS-DOS | |
partition before loading Xenix, then you can still access it by | |
booting from a floppy disk. | |
It is possible to provide `dual boot' capability for other partition | |
types, for example MS-DOS 5.0 large partitions, by making a modified | |
version of the /dos program. The following instructions, based | |
upon a procedure by Vic Michael <[email protected]>, show how. | |
su # become superuser | |
cp /dos /dos5 # make a new version of dos5 program | |
adb -w /dos5 # use "/etc/_fst" if no "adb" | |
* 0x3f:0x61?i # examine instruction at 0x61 | |
0x3f:0x61: add al,0x4 | |
* 0x61?w 0x604 # change '0x4' to '0x6' | |
0x3f:0x61: 0x404= 0x604 | |
* 0x61?i # verify change | |
0x3f:0x61: add al,0x6 | |
* $q | |
Now, you can say `dos5' at the `Boot' prompt to start MS-DOS. You | |
will NOT, however, be able to use the `dos(C)' tools to access this | |
partition from Xenix. | |
QX2. Can Xenix access MS-DOS disks? | |
Yes, with limitations. The commands on the `dos(C)' manual page | |
provide access to MS-DOS disks (floppy and fixed) under Xenix. | |
The limitation is that only conventional MS-DOS 3.2 hard disk | |
partitions can be recognized. Extended MS-DOS 3.2, old MS-DOS | |
1.0, and large MS-DOS 4.0/5.0 partitions cannot be accessed with | |
the existing tools. | |
If you run into problems with the dos(C) commands, check that | |
`/etc/default/msdos' provides proper aliases for the A:, B:, etc. | |
devices. Also, if root can access the MS-DOS fixed disk but users | |
can't, check the permissions on /dev/hd0d (the Xenix name of the | |
MS-DOS partition on the first fixed disk). | |
The `mtools' package by Emmet Gray in comp.sources.misc provides | |
better handling of MS-DOS devices under Xenix. Modify the | |
`devices.c' file to understand Xenix device naming. | |
#ifdef M_XENIX | |
struct device devices[] = { | |
{'A', "/dev/install", 0L, 12, 0, (int (*) ()) 0, 0, 0, 0}, | |
{'B', "/dev/install1", 0L, 12, 0, (int (*) ()) 0, 0, 0, 0}, | |
{'C', "/dev/hd0d", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0}, | |
{'D', "/dev/hd1d", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0}, | |
{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0} | |
}; | |
#endif /* M_XENIX */ | |
If you assign `/dev/install' to the `A' drive, you don't need to | |
worry about disk density when reading and writing. However, you | |
need to specify the full device name when formatting. For example, | |
to format a high-density disk in drive A: you must specify the | |
full device name: | |
dosformat /dev/fd096ds15 | |
QX3. Can Xenix execute MS-DOS programs? | |
Yes. You must purchase SCO VP/ix. VP/ix emulates an 8086 PC/XT | |
running MS-DOS. The compatibility provided by VP/ix is fair with | |
a significant performance penalty. VP/ix will not run programs | |
that use 80286 or 80386 instruction codes. VP/ix is not available | |
for Xenix/286. | |
QX4. Can MS-DOS execute Xenix programs? | |
No. With the Xenix Development System, you can compile programs | |
to execute under MS-DOS with the `-dos' command line switch. | |
------------------------------ | |
Subject: ***** SECTION Z - The (in)Famous Xenix Cheat-Sheet | |
QZ1. What the $%*&! is happening? | |
Who am I? /usr/bin/who am i | |
Where am I? /bin/pwd | |
What am I doing? /bin/ps -f | |
Am I having fun yet? /usr/games/worms -R | |
What's my user/group id? /usr/bin/id | |
Who did I login as? /usr/bin/logname | |
What's my terminal? /bin/tty | |
What are my terminal parameters? /bin/stty -a | |
Is terminal flow control working? /usr/games/stars | |
What is my current crontab file? /usr/bin/crontab -l | |
Do I have uucp jobs queued? /usr/bin/uustat | |
What is the system doing? /usr/bin/w | |
How is the system running? /usr/bin/vmstat 10 | |
Has the system been swapping? /usr/bin/vmstat -s | |
Open files, inodes, processes? /bin/pstat | grep '^[0-9]' | |
What are the kernel parameters? /usr/sys/conf/configure -x | |
What versions are installed? egrep "#prd|#set|#rel" /etc/perms/* | |
What are the hardware settings? /etc/hwconfig -h | |
Is /etc/passwd correct? /etc/pwcheck | |
Is /etc/group correct? /etc/grpcheck | |
Is /etc/gettydefs correct? /etc/getty -c /etc/gettydefs | |
Do all files have owners? /usr/bin/quot | |
Who is using all the disk space? /usr/bin/quot | |
When did joe last login? /usr/bin/last joe | |
What files are owned by UID=944? find / -user 944 -exec l -d {} \; | |
Are file perms/owners set OK? cd / ; | |
/etc/fixperm -n /etc/perms/rts | |
How about perms on uucp files? cd / ; | |
/etc/fixperm -nd UUCP /etc/perms/rts | |
Check uucp file consistency. /usr/lib/uucp/uucheck | |
What are uucp access permissions? /usr/lib/uucp/uucheck -v | |
What is the print spooler doing? /usr/bin/lpstat -t | |
Stop the scheduler. /usr/lib/lpshut | |
Restart a printer. /usr/lib/accept printer_name ; | |
/usr/bin/enable printer_name | |
[Following apply only if TCP/IP is installed.] | |
Where am I? /usr/bin/hostname | |
Is system foo alive? /usr/bin/ping foo | |
What machines are connected? /usr/bin/netstat | |
How is the network doing? /usr/bin/netstat 10 | |
Where are the packets going? /usr/bin/netstat -r | |
Network not work? /usr/bin/netstat -s | |
[Thanks to Jeff Liebermann.] | |
------------------------------ | |
Subject: ***** The Fine Print | |
This collection is Copyright 1992-1994, Unicom Systems Development, Inc. | |
All rights reserved. Permission granted to reproduce and distribute this | |
document provided this notice remains intact and any changes to the document | |
are clearly marked. We have tried to review all information, but cannot | |
guarantee it for any particular purpose. We do not offer any warranties or | |
representations, nor do we accept any liability for any damage resulting | |
from the use or misuse of information or procedures in this document. | |
End of sco-xenix FAQ | |
******************** |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment