add directory distributions

This commit is contained in:
gohigh
2024-02-19 00:23:20 -05:00
parent eb168dd24f
commit b50063d9b3
934 changed files with 101264 additions and 0 deletions

View File

@@ -0,0 +1,505 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help
From: deisher@enws125.EAS.ASU.EDU (Michael E. Deisher)
Subject: Linux DOSEMU HOWTO
Keywords: Linux, HOWTO, DOSEMU, MS-DOS emulation
Summary: HOWTO on Linux MS-DOS Emulator, DOSEMU
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-Name: linux/howto/dosemu
Last-modified: 17 Feb 94
This is the `Frequently Asked Questions' (FAQ) / HOWTO document for dosemu,
(dosemu-HOWTO).
Please read this document *to the very end*, before you post a question to a
newsgroup / Linux-MSDOS channel / the developers. This will reduce the number
of redundant questions, and releases us all to more constructive work (like
improving dosemu).
This HOWTO is edited and maintained by: Mike Deisher
Last update: February 17 1994, for dosemu 0.49pl4
Additions or corrections to the HOWTO should be directed to
deisher@dspsun.eas.asu.edu
========================================================================
CONTENTS
Section 1: The preliminaries
----------------------------
Q1.1 What's the newest version of dosemu and where can I get it?
Q1.2 Where can I follow the development?
Q1.3 What documentation is available for dosemu?
Section 2: Compiling and installing dosemu
------------------------------------------
Q2.1 What does "emu.c:349: parse error before `outfuntype'" mean?
Q2.2 What does "scan.o: Undefined symbol _yywrap" mean?
Q2.3 Can I use dosemu on a multi-user system?
Section 3: Hard disk setup
--------------------------
Q3.1 How do I use my hard disk with dosemu?
Q3.2 Can I use my stacked/double-spaced/super-stored disk?
Q3.3 I get an error message about my config.sys file but it looks fine.
Section 4: Serial ports and mice
--------------------------------
Q4.1 Where are the (microsoft compatible) mouse drivers?
Q4.2 Why doesn't the mouse driver work?
Q4.3 How do I use dosemu over the serial ports?
Section 5: dosemu and X-windows
---------------------------------------
Q5.1 Can I run dosemu in console mode while running X?
Q5.2 Is it possible to run dosemu in an xterm?
Section 6: Video
---------------------------------------
Q6.1 Exiting from dosemu gives me a screen full of garbage.
Q6.2 How do I get dosemu to work with my Trident or Actix video card?
Section 7: Problems and fixes
-----------------------------
Q7.1 Why does dosemu lock up after one keystroke?
Q7.2 Why does my ethernet driver lock-up dosemu?
Q7.3 Why are my keystrokes echoed ttwwiiccee??
Q7.4 Why does give "divide overflow" errors after running for more
than 24-hours?
Q7.5 Where did the debugging output go?
Section 8: Contributing to the dosemu project
---------------------------------------------
Q8.1 Who is responsible for dosemu?
Q8.2 I want to help. Who should I contact?
========================================================================
Section 1: The preliminaries
=============================
Q1.1 What's the newest version of dosemu and where can I get it?
-------------------------------------------------------------------
The newest version of dosemu is dosemu0.49pl3.3 and can be ftp'ed from the
following sites:
dspsun.eas.asu.edu:/pub/dosemu/
tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/
(Be sure to get and apply all patches.)
Q1.2 Where can I follow the development?
-------------------------------------------
If you want to follow the development of dosemu, you should consider
subscribing to the MSDOS channel on Linux-activists. To subscribe,
send mail to linux-activists-request@niksula.hut.fi. Your mail HEADER
or FIRST LINE must contain the line:
X-Mn-Admin: join MSDOS
To post to the list, send mail to linux-activists@niksula.hut.fi.
Your mail HEADER or FIRST LINE must contain the line:
X-Mn-Key: MSDOS
Q1.3 What documentation is available for dosemu?
---------------------------------------------------
The dosemu manual (dosemu.texinfo) written by Robert Sanders has not
been updated in some time but is still a good source of information.
It is distributed with dosemu.
The "dosemu Novice's Altering Guide" or DANG is a road map to the
inner workings of dosemu. It is designed for the adventurous, those
who wish to modify the source code themselves. The DANG is maintained
by Alistair MacDonald (am20@unix.york.ac.uk) and is posted once in a
while to the MSDOS channel of Linux Activists.
The EMU success list (EMUsuccess.txt) is a list of all programs that
have been reported to work with dosemu. It is posted once in a while
to the MSDOS channel of Linux Activists. The most recent version can
be found on dspsun.eas.asu.edu:/pub/dosemu.
And then, of course, there is the dosemu FAQ/HOWTO. But you already
know about that, don't you. It is also posted once in a while to the
MSDOS channel of Linux Activists. The most recent version can be
found on dspsun.eas.asu.edu:/pub/dosemu.
Section 2: Compiling and installing dosemu
===========================================
Q2.1 What does ``emu.c:349: parse error before `outfuntype'\,'' mean?
------------------------------------------------------------------------
James B. MacLean (jmaclean@fox.nstn.ns.ca) reported (12/1/93) that
A fix that works is: Change the 'outfuntype c' parm in line 349 to
'int (*c())(int)', and try again.
[Note: "outfuntype" is defined in termcap.h. You may have a bad or
incomplete termcap.h (termcap.h is not part of dosemu).]
Q2.2 What does "scan.o: Undefined symbol _yywrap" mean?
----------------------------------------------------------
Alan David Modra (alan@spri.levels.unisa.edu.au) reported (2/16/94) that
Flex-2.4.6 generates code that requires linking in libfl.a
You need to add -lfl to the linker command line:
gcc -o par scan.o parse.o -lfl
[Note: edit parse/Makefile to incorporate this change]
Q2.3 Can I use dosemu on a multi-user system?
------------------------------------------------
Corey Sweeney (corey@amiganet.xnet.com) reported (12/8/93) that
If you running dosemu on a system in which more then one
person may want to run dosemu, then you may want to change the
directory of your hard drive image. Currently in the /etc/dosemu/config
file there exists the line saying that the hard drive image is
"hdimage". If you change this to "/etc/dosemu/hdimage" then people do
not have to worry about what directory they are in when they run
dosemu, and hdimage does not have to be moved each time you upgrade to
the next patch level.
If you do do this for multi-user dosemu, then you will want to make
the hdimage in /etc/dosemu read-only for everyone but the dosemu
administrator.
Note: you can use the new emufs.sys thing to mount a "public"
directory and/or a "private" directory (a sub-directory in each
person's home directory).
Section 3: Hard disk setup
==========================
Q3.1 How do I use my hard disk with dosemu?
----------------------------------------------
First, mount your dos hard disk partition as a Linux subdirectory.
For example, you could create a directory in Linux such as /dos (mkdir
-m 755 /dos) and add a line like
/dev/hda1 /dos msdos umask=022
to your /etc/fstab. (In this example, the hard disk is mounted
read-only. You may want to mount it read/write by replacing "022"
with "000" and using the -m 777 option with mkdir) Now "mount /dos".
Now you can add a line like
lredir d: linux\fs/dos
to the AUTOEXEC.BAT file in your hdimage (see the note on LREDIR
below).
Tim Bird (Tim_R_Bird@Novell.COM) states that LREDIR users should
be careful when they use LREDIR in the autoexec, because COMMAND.COM
will continue parsing the autoexec.bat from the redirected drive as
the same file offset where it left off in the autoexec.bat on the
physical drive. For this reason, it is safest to have the
autoexec.bat on the redirected drive and the physical drive
(diskimage) be the same.
Q3.2 Can I use my stacked/double-spaced/super-stored disk?
-------------------------------------------------------------
At this time, compressed drives cannot be accessed via the redirector
(lredir). However, many people have had success by simply
uncommenting the
disk { wholedisk "/dev/hda" } # 1st partition on 1st disk
line in their dosemu config file. A few others have had success using
disk { partition "/dev/hda1" 1 }
Holger Schemel (q99492@pbhrzx.uni-paderborn.de) reported (2/10/94) that
Works even fine under DOSEMU with MS-DOS 6.0. If you have problems, then
you have to edit the file 'DBLSPACE.INI' manually and change the disk
letter to the letter your drive gets under DOSEMU.
Q3.3 I get an error message about my config.sys file but it looks fine.
--------------------------------------------------------------------------
Corey Sweeney (corey@amiganet.xnet.com) reported (12/8/93) that
Sometimes when loading config.sys you will get a error message
saying something like "error in line 6 of config.sys". The problem
will go away if you add several carriage returns at the end of your
config.sys.
Section 4: Serial ports and mice
=================================
Q4.1 Where are the (microsoft compatible) mouse drivers?
-----------------------------------------------------------
Tom Kimball (tk@pssparc2.oc.com) reported (11/24/93) that
Several people said to use a different mouse driver and suggested
some. I found a couple that seem to work fine.
oak.oakland.edu:/pub/msdos/mouse/mouse701.zip (mscmouse)
oak.oakland.edu:/pub/msdos/mouse/gmous102.zip (gmouse)
Q4.2 Why doesn't the mouse driver work?
------------------------------------------
sdh@fishmonger.nouucp (Scott D. Heavner) reported (11/27/93) that
If you start the mouse driver and it just hangs (it might actually
take 30-60s), but if you are waiting longer than a minute for the
mouse driver to start, remove any "timer" lines in your config
file.
Q4.3 How do I use dosemu over the serial ports?
--------------------------------------------------
Corey Sweeney (corey@amiganet.xnet.com) reported (12/8/93) that
If you plan to be using dosemu over a serial line, telnet
session, or just don't want to use raw console mode, then you will
probably want to get to know the termcap file. For those who don't
know, the termcap file is usually located in the /etc directory.
It contains the information on what sequences of characters to send
to your terminal, and what sequences of characters from your
terminal represent what keystrokes. If when you hit F5, and it
does not work, it will usually be the fault of a incorrect termcap
entry. (To learn more about termcaps look up the termcap man page.)
Now the information in the termcap relates to entries in the dosemu
code. So after you put k5=\E[[E in your termcap, whenever
your terminal sends \E[[E, dosemu translates that and says
``he hit the k5 key!''. Then it is up to dosemu to figure out what the
proper scancode for the k5 key is, and push that into the buffer in
some magical way. To determine the scancode, it looks up in a little
table in termio.c. In termio.c under the line which (currently) says
#define FUNKEYS 20
There exist several lines following the form
{NULL, "termcap code", scancode} /* name of key */
so when it says
{NULL, "k5", 0x3f00} /* F5 */
it's saying that 0x3f00 is the scancode for F5, and that when the
person activates the k5 sequence (defined in the termcap) to stuff the
F5 scancode into the buffer.
Now that's all fine and dandy for analyzing how dosemu does this, but
you probably want to be able to do something with this new
information. Well you can add functionality for the F11 and F12 keys
(and any other keys that you can find the scancode for).
All you have to do is add a line to the termio.c table that says:
{NULL, "ka", 0x8500} /* F11 */
Then to actually get it to read the line you just put in, add one to
the FUNKEYS number.
#define FUNKEYS = 21
Then add a ``ka'' entry to your termcap. After that, every time you hit
the sequence stored in your termcap for ka, your dos program
recognizes an ``F11''.
! Warning: Make sure that ka is not in use in your termcap. If it is
you are headed for trouble.
Note: The scancode for F12 is 0x8600.
Section 5: dosemu and X-windows
================================
Q5.1 Can I run dosemu in console mode while running X?
---------------------------------------------------------
Ronald Schalk (R.Schalk@uci.kun.nl) reported (1/17/94) that
Yes, no problem, just remember to use ctrl-alt-<Fn> to go to a Virtual
Console (VC), and you can run any Linux application (dosemu is a
linux-application). I've got almost always WP5.1 in a dos session.
[Note: Use alt-F7 to switch back to X from dosemu.]
[Note: Some people have reported problems when dosemu is started before X]
Q5.2 Is it possible to run dosemu in an xterm?
-------------------------------------------------
Evmorfopoulos Dimitris (devmorfo@mtu.edu) reported (12/10/93) that
It is possible to run dosemu under an xterm, but without any
graphics, and with no more than 128 characters.
Section 6: Video
=================
Q6.1 Exiting from dosemu gives me a screen full of garbage.
--------------------------------------------------------------
Keith A Grider (kgrider@magnus.acs.ohio-state.edu) reported (12/5/93) that
I have seen many postings concerning this with exit from X as well
as exiting from a graphic dos screen. it seems to be prevalent
among ATI graphic card users as well as a few others. The problem
is that the font information for the vga text screen is not being
saved. The only way I have been able to fix it is to download the
vgalib-090.tar.gz file from sunsite.unc.edu. It is (I believe) in
the pub/Linux/GCC directory. You get a lot of stuff that is not
directly used to solve this problem, but in the fonts directory
that is created when you untar the file, there are 2 files of
interest, runx and restorefont. Read the README file in this
directory. Copy runx and restorefont to a directory in your path.
when runx is used, for example, it saves the font information in
tmp/fontdata. I use a file called fix which consists of the line:
restorefont -r /tmp/fontdata
so that it is easy to 'fix' a vt when I go there from X
(i.e. ctrl-alt-f2). This should also work for dosemu. I think the
XFree86 people know about the problem and are working on a solution
as this is a bit of a kluge.
Q6.2 How do I get dosemu to work with my Trident or Actix video card?
------------------------------------------------------------------------
[The screen flickers violently, displays the video BIOS startup
message, and hangs.]
Andrew Tridgell (tridge@nimbus.anu.edu.au) reported (1/29/94) that
I found with early versions it would work if I used:
ports { 0x42 }
but that sometimes my machine would crash when it was cycling the
video bios in dosemu. This is because you're allowing the VGA bios to
re-program your clock, which severely stuffs with Linux.
This prompted me to write the readonly and masking patches for dosemu,
which I believe are still in the latest version. I now use:
ports { readonly 0x42 }
and it boots dosemu more slowly, but more reliably.
Tim Shnaider (tims@kcbbs.gen.nz) also reported (1/18/94) that
One way of fixing this is to use the GETROM program to dump your video
bios to a file and edit the config file in the /etc/dosemu directory
There will be a few video lines. Here is my video line
video { vga console graphics chipset trident memsize 1024 vbios_file
/etc/dosemu/vbios }
where vbios is the file generated by typing
getrom > vbios
Section 7: Problems and fixes
==============================
Q7.1 Why does dosemu lock up after one keystroke?
----------------------------------------------------
(12/17/93)
You need to turn on the keyboard interrupt in the dosemu config file.
Add a line to the config file:
keybint on
Q7.2 Why does my ethernet driver lock-up dosemu?
---------------------------------------------------
James B. MacLean (jmaclean@fox.nstn.ns.ca) reported (1/16/94) that
If you have Linux networking turned on for your card, it is not
accessible to DOSEMU at this time. It is also true that the default
dosemu will not get interrupts from the kernel. That said, if you'd
like to give your NIC to dosemu for it to control, maybe for access to
Netware on the network through a NETX client, I do have a driver
(Silly Interrupt Generator) to put in the kernel that any program,
like dosemu can use to get at the interrupt for your NIC. I use it in
DOSEMU to access a Novell Lite network. Speed is not it's high point,
but it does seem to work :-).
Any interested parties should E-mail me (jmaclean@fox.nstn.ns.ca) and
I'll pass along some directions.
Q7.3 Why are my keystrokes echoed ttwwiiccee??
-------------------------------------------------
(1/20/94)
You have an old version of dosemu. Get the latest version and apply
all patches.
Q7.4 Why does give "divide overflow" errors after running for more
than 24-hours?
---------------------------------------------------------------------
(1/17/94)
This is a known bug. It will (hopefully) be fixed in an upcoming
release. For now, you can simply exit dosemu and start it again.
Q7.5 Where did the debugging output go?
------------------------------------------
As of dosemu0.49pl4, stderr is automatically redirected to /dev/null.
Try "dos -D+a 2>debug" to turn on debugging information and redirect
it to the file "debug".
Section 8: Contributing to the dosemu project
==============================================
Q8.1 Who is responsible for dosemu?
--------------------------------------
(12/17/93)
Dosemu is built upon the work of Matthias Lautner and Robert Sanders.
James B. MacLean (jmaclean@fox.nstn.ns.ca) is responsible for
organizing the latest releases of dosemu.
History of dosemu
Version Date Person
-------------------------------------------------
0.1 September 3, 1992 Matthias Lautner
0.2 September 13, 1992 Matthias Lautner
0.3 ??? Matthias Lautner
0.4 November 26, 1992 Matthias Lautner
0.47 January 27, 1993 Robert Sanders
0.47.7 February 5, 1993 Robert Sanders
0.48 February 16, 1993 Robert Sanders
0.48pl1 February 18, 1993 Robert Sanders
0.49 May 20, 1993 Robert Sanders
0.49pl2 November 18, 1993 James MacLean
0.49pl3 November 30, 1993 James MacLean
0.49pl3.3 December 3, 1993 James MacLean
0.49pl4 February 10, 1994 James MacLean
Q8.2 I want to help. Who should I contact?
----------------------------------------------
The dosemu project is a team effort. If you wish to contribute,
see the DPR (DOSEMU Project Registry). A current copy may be found in
dspsun.eas.asu.edu:/pub/dosemu.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,476 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help
From: ftape@mic.dth.dk (Linux ftape-HOWTO maintainer)
Subject: Linux Ftape HOWTO
Keywords: ftape HOWTO FAQ RTFM hardware-compability
Summary: The document answers many of the Frequently Asked Questions on the
newsgroups and describes which ftape drives are known to work (and
which are known *not* to work) with the ftape driver.
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/ftape
This is the `Frequently Asked Questions' (FAQ) / HOWTO document for the ftape
driver (ftape-HOWTO), Copyright (C) 1993,1994 Kai Harrekilde-Petersen.
Copyright statement:
You may distribute this document freely *as a whole* in any form and of
charge. You may distribute parts of this document, provided this copyright
message is included and you include a message stating that it is not the full
HOWTO document and a pointer to where the full document can be obtained.
Specifically, it may be included in commercial distributions, without my prior
consent. However, I would like to be informed of such usage.
You may translate this HOWTO into any language, whatsoever, provided that
you leave this copyright statement and the disclaimer intact, and that you
append a notice stating who translated the document.
DISCLAIMER:
While I have tried to include the most correct and up-to-date information
available to me, I cannot guarantee that usage of the information in this
document does not result in loss of data. I provide NO WARRANTY about the
information in the HOWTO and I cannot be made liable for any consequences for
any damage resulting from using information in this HOWTO.
Please read this document *to the very end*, before you post a question to a
newgroup / Linux-TAPE channel / the maintainer. This will take off the peak
of questions, and releases us all to more constructive work (like improving
the ftape driver :-)
This HOWTO is written and maintained by: Kai Harrekilde-Petersen
Last update: February 17, 1994 11:50, for ftape 0.9.9d
Email's concerning the HOWTO should be directed to: <ftape@mic.dth.dk>
========================================================================
CONTENTS
Section 1: The preliminaries
----------------------------
Q1.1 What's the newest version of ftape - and where can I get it?
Q1.2 Where can I follow the development?
Q1.3 Which drives are supported?
Q1.4 Which drives are *NOT* supported?
Q1.5 How do I install it?
Q1.6 Where can I get the kernel sources?
Q1.7 Can I format my tapes under Linux?
Q1.8 Which formatting programs can I use under DOS?
Section 2: Backing up and restoring data and other FAQ's
--------------------------------------------------------
Q2.1 How do I write backups to the tape?
Q2.2 ... and how do I read them back?
Q2.3 I want to check the archive I've made ... how?
Q2.4 How can I put more than one tar file on a tape?
Q2.5 Can I append files to an archive?
Q2.6 How do I mount/unmount a tape?
Q2.7 Can I exchange tapes with someone using DOS?
Q2.8 How do I `....' with tar?
Section 3: Frequently Asked Questions
-------------------------------------
Q3.1 ftape DMA transfers gives ECC errors
Q3.2 Insmod says the kernel version is wrong
Section 4: Debugging the ftape driver
-------------------------------------
Q4.1 ftape crashes on me when I do `...' - is that a bug?
Q4.2 ftape keep saying `... new tape', what do I do?
Q4.3 OK, it's a bug^H^H^H feature - How do I submit a report?
Q4.4 How do I change the trace-level?
Q4.5 When I use /dev/nftape, I get garbage ... why?
Section 5: Supporting the development of ftape
----------------------------------------------
Q5.1 I just *LOVE* this ftape driver, how can I support the developers?
Q5.2 I wanna help developing a `....' Who should I contact?
========================================================================
Section 1: The preliminaries
============================
Q1.1 What's the newest version of ftape - and where can I get it?
--------------------------------------------------------------------
The newest version of the ftape driver is ftape-0.9.9d, and can be fetched
from the following sites:
tsx-11.mit.edu [18.172.1.2]: /pub/linux/ALPHA/QIC-80/
sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/tapes/
ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/BETA/QIC-80/
You should get the files: ftape-0.9.9d.tar.gz, ftape-0.9.9d.lsm and
modutils-0.99.15.tar.gz. The tar.gz file is the ftape driver proper, while
the .lsm file is a Linux Software Map (LSM) file (for the LSM project), and
the modutils file is a set of utilities for manipulating loadable drivers
(inserting and removing). (Note: if you already have the modules utilities,
you do not need to upgrade them).
Q1.2 How can I follow the development?
-----------------------------------------
If you want to follow the development of the ftape driver, you should
consider subscribing to the TAPE channel on Linux-activists. To subscribe,
you send a mail to <linux-activists-request@niksula.hut.fi>, with the *FIRST
LINE* (or as a part of the header) saying `X-Mn-Admin: join TAPE'. If you
send an empty mail (or the automagical mail-response system chokes on your
mail), you are sent a HOWTO mail.
To submit a real mail to the mailing lists, send a mail to
<linux-activists@niksula.hut.fi>, and remember that the first line (or a
header line) should read `X-Mn-Key: TAPE'.
Q1.3 Which drives are supported?
-----------------------------------
All drives that are both QIC-117 compatible *AND* either QIC-40 or QIC-80
compatible should work. Currently, the list of drives that's *positively*
known to work with ftape is:
* Colorado DJ-10 / DJ-20 (aka: Jumbo 120 / Jumbo 250)
* Archive 5580i / XL9250i
* Insight 80Mb
* Conner C250MQ
* Wangtek 3080F
* Iomega 250
* Escom / Archive (Hornet) 31250Q
* Summit SE 150 / SE 250
* Mountain FS8000
NOTE: If you have a drive that works fine, but it is not listed here, please
send a mail to the HOWTO maintainer (ftape@mic.dth.dk).
Q1.4 Which drives are *NOT* supported?
-----------------------------------------
* All drives that connect to the parallel port (eg: Colorado Trakker)
* High-Speed controller's. (eg: Colorado FC-10 & FC-15)
* Irwin AX250L / Accutrak 250. (not a QIC-80 drive)
* IBM Internal Tape Backup Unit (identical to the Irwin AX250L drive)
* COREtape light
Generally, *ALL* drives that connect to the parallel port are *NOT*
supported. This is because these drives uses (different) proprietary
interfaces, that are very much different from the QIC-117 standard.
The Colorado FJ-10 High-Speed controller (and the likes) are not supported
directly by the ftape driver. However, there exists some patches for the
FJ-10 specifically, which makes ftape work with it.
IRWIN AX250L (and the IBM Internal Tape Backup Unit) does not work the
ftape. This is because they only support QIC-117, but not the QIC-80
standard (they use Irwin's proprietary servoe (Rhomat) format).
The COREtape light does not work (yet). We have some info on it, but we
have not got it accepting the initialisation data.
Q1.5 How do I install it?
----------------------------
There is included an installation guide (the file INSTALL) in the ftape
distribution; Read that.
Q1.6 Where can I get the kernel sources?
-------------------------------------------
You can get the kernel sources from the same place as you got the ftape
sources. The sources are kept at the following sites (and many mirror-sites)
tsx-11.mit.edu [18.172.1.2]: /pub/linux/sources/system/
sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/
ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/PEOPLE/Linus/
funet carries the so-called ALPHA versions too. These are typically more
advanced than the `standard' versions, but can be less stable. New versions
may be introduced to fix a bug within days, but they may also introduce new
bugs.
Q1.7 Can I format my tapes under Linux?
------------------------------------------
At the moment, no! We have not had the time to develop a formatting utility
for Linux. Instead you'll have to use MS-D*S (arghhh!) instead or buy
preformatted tapes. However, some of the preformatted tapes are *not* checked
for bad sectors!. If the ftape driver enocunters a tape with no bad blocks,
it will issue a warning.
Q1.8 Which formatting programs can I use under DOS?
------------------------------------------------------
These are known to work:
* Colorado Memory System's software (tape.exe)
* Norton Backup
* QICstream version 2
These programs are known to be more or less buggy:
* CONNOR's Dos software (Windoze version is fine!)
* CP Backup (wastes tape space, but is OK apart from that)
In fact, most software under DOS should work. CONNOR's program (the dos
version) has a parameter off-by-one (someone could not read the QIC-80 specs
right!), while their Windoze version works fine. Central Point Backup can be
used, but it wastes precious tape spaces when it encounters a bad spot on the
tape.
NOTE: If you are running a formatting software under DOS, which is not
mentioned here, please mail the maintainer (ftape@mic.dth.dk) the relevant
info, so we can update the HOWTO.
Section 2: Backing up and restoring data
========================================
Q2.1 How do I write backups to the tape?
-------------------------------------------
You can use `tar', `dd' and `cpio'. For a start I'd recommend `tar', as it
can archive lots of directories and let you pick out seperate files from an
archive. To make a backup of your kernel source tree, do this (assuming you
have the source in /usr/src/linux):
cd /usr/src
tar cf /dev/ftape linux
This wont compress the files, but gives you a smoother tape run. If you
want the compression (and you've got tar 1.11.2), you just include the -z
flag(*), eg: `tar czf /dev/ftape linux'
For further instructions on how to use tar, dd and look at the man pages and
the texinfo files that comes with the respective distributions.
(*) tar assumes that the first argument is options, so the `-' is not
necessary, i.e. these two commands are the same: `tar xzf /dev/ftape' and `tar
-xzf /dev/ftape'
Q2.2 ... and how do I read them back?
----------------------------------------
OK, let us restore the backup of the kernel source you made in Q2.1 To do
this you simply say
tar xf /dev/ftape
If you used compression, you will have to say
tar xzf /dev/ftape
When you use compression, gzip will complain about trailing garbage after the
very end of the archive (and this will lead to a `broken pipe' message). This
can be safely ignored.
For the other utilities, please read the man page.
Q2.3 I want to check the archive I've made ... how?
------------------------------------------------------
tar has an option (-d) for detecting differences between two archives. To
test your backup of the kernel source say
tar df /dev/ftape
If you do not have the man page for tar, you are not lost (yet). tar has a
builtin option list: try `tar --help 2>&1 | more'
Q2.4 How can I put more than one tar file on a tape?
-------------------------------------------------------
"If I understand, tar -cf /dev/ftape stuff will only allow one tar file /
tape. Does the trick of using `dd' via a pipe allow more than one file?"
By using the nftape device (nope, it does not work yet), you should be able
to use `mt' to position the tape the correct place. (`mt /dev/nftape fsf 2'
means go to tar file number 2)
"I hate to say, but it appears (could be wrong) that the CMS software has
more capability than tar -- at least it can put two archives on one tape."
Basically, yes. However, it depends on how you look at it: tar generates a
single Tape ARchive (that's why it is called `tar'). If you want more than
one backup on a single tape, you must use tar in conjunction with another
tool, eg: `mt'.
There exists a `QIC-80 logical format', which is what the CMS software
conforms to. I am going to look at it when I am done with my thesis (ie: i
will start working on the QIC-80 logical format in march '94 at the earliest)
Truly, that is the way it goes, when you start using something that is still
in it's infancy :-/
Q2.5 Can I append files to an archive?
--------------------------------------------
"Is there a way to extend an archive -- put a file on the tape, then later,
add more to the tape?"
No. The tar documentation will tell you to use `tar -Ar', but it does not
work. This is a limitation of the current ftape driver.
Q2.6 How do I mount/unmount a tape?
--------------------------------------
You do not! -- Since a tape does not have a "filesystem" on it, you do not
mount / unmount the tape. To backup, you just insert the tape and run your
`tar' command (or whatever you use to access the tape with).
"Is there an explicit (dis)mount command for the tape?"
Nope. The ftape device is a `character device', and they can not be
[u]mount'ed. It is only block devices that gets mounted
Q2.7 Can I exchange tapes with someone using DOS?
----------------------------------------------------
Nope. This is one of my pet-projects, so maybe in the future (any help is
welcome).
Q2.8 How do I `....' with tar?
---------------------------------
These are really tar questions: Read the man page and the info page. If you
have not got it either, DO try `tar --help 2>&1 | more'.
If your tar is v1.11.1 or earlier, consider upgrading to v1.11.2 - This
version can call GNU zip directly (ie: it supports the -z option) and has an
elaborate help included. Also, it compiles right out of the box on Linux.
Section 3: Frequently Asked Questions
=====================================
Q3.1 ftape DMA transfers gives ECC errors
--------------------------------------------
Sadly to say there are some SVGA cards and ethernet cards that do not decode
their addresses correct. This typically happens when the ftape buffers are in
the range 0x1a0000 to 0x1c0000. Somehow, the DMA write cycles get clobbered
and every other byte written gets a bad value (0xff). These problems are
reported to happen with both SVGA and ethernet cards. We know of at least one
(bad?) ATI 16bit VGA card that caused this.
The easiest solution is to put the card in an 8bit slot (it is often not
enough to reconfigure the card to 8bit transfers).
Moving the ftape buffer away from the VGA range is only a partial solution;
All DMA buffers used in Linux can have this problem!
Let us make this one clear: This has nothing to do with the ftape software :-)
Q3.2 Insmod says the kernel version is wrong
-----------------------------------------------
The insmod program checks the kernel version against the version recorded in
the ftape driver. This is a string in kernel-version.h, (char
kernel_version[] = "0.99.14k";) which is extracted from the kernel you are
running when you run `make'. If you got the error when you tried to insert
the ftape driver, remove the file `kernel-version.h', type `make' again and
the kernel-version.h file should be updated. Remember that you will have to
do this every time you change to another kernel version.
Section 4: Debugging the ftape driver
=====================================
Q4.1 ftape crashes on me when I do `...' - is that a bug?
-------------------------------------------------------------
No, that is a feature ;-)
Seriously, reliable sofware do not crash. Especially kernels do not or
rather *should* not crash. If the kernel crashes upon you when you are
running ftape, and you can prove that it is ftape that is messing things up,
regard it as a Bug that Should Be Fixed. Mail the details to the developers
(see Q4.3 below).
Q4.2 ftape keep saying `... new tape', what do I do?
-------------------------------------------------------
[You cannot do this anymore; I do not know a way of fixing it yet]
To get rid of this, do this (blindfold): login as root and say `rmmod
driver'. ftape should choke a few times, give three segmentation violations
(or so), and give up life.
Check the activity LED on your floppy drive (you do have one, don't you?).
If it is constantly lit, you have turned the cable upside down somewhere.
Check your cable between controller, tape drive _and_ floppy drive. Usually,
one (or more) of the cables have been turned upside down, such that pin 1 in
one end connects to pin 34 in the other end. (All the even-numbered pins are
grounded, so you wont be able to use your floppy either)
Q4.3 OK, it's a bug^H^H^H feature - How do I submit a report?
----------------------------------------------------------------
First, make sure you can reproduce the problem. Spurious errors are a pain
in the ass, since they are just about impossible to hunt down. This is a
quick check list:
* Kernel version, and patches applied (even ftape patches)
* ftape version
* tape drive model / manufacturer
* What you did to expose the problem
* A log of the run with tracing level set to 7
* What went wrong on your system.
* Do not delete the kernel and driver.o file. We may want you run try
some patches out or run a different test on your system.
Increase the tracing level to 7 (just below maximum tracing) and run the
offending command again. Get the tracing data from the kernel log or
/proc/kmsg, depending on where you harvest your error messages. Do not try to
`trim' the kernel log. You might consider something irrelevant, which is
essential to the investigator of the bug. State exactly what you did, and
what happened on your system. We might not see the error because we use a
different tape drive or another version of the kernel!
Q4.4 How do I change the trace-level?
----------------------------------------
You can do this two ways: either change the default trace-level (the var
`tracing' in file `ftape-rw.c') and recompile or say
mt /dev/ftape fsf <tracing-level>
The use of the fsf command in mt is a *hack*, and will disappear in time.
Q4.5 When I use /dev/nftape, I get garbage ... why?
------------------------------------------------------
The non-rewinding /dev/nftape device is not supported yet, but Bas is
working on it at the moment. You don't *need* to have it, but we have
included it for completeness.
For now: Do not use it!
Section 5: Supporting the development of ftape
----------------------------------------------
Q5.1 I just *LOVE* this ftape driver, how can I support the developers?
--------------------------------------------------------------------------
You can support us by answering other users questions on the newsgroups.
There are many new users (newbies), that just need a simple answer to their
question, e.g. `where can I get the ftape-HOWTO'.
This is about the best support you can give us besides testing the driver
and writing good error-reports.
Q5.2 I wanna help developing a `....' Who should I contact?
--------------------------------------------------------------
Below is a list of the developers. If there is already someone working on a
similar / identical project, contact that person directly. If you have an
program / feature that no-one is working on, contact me <khp@mic.dth.dk> (NOT
Bas, he is already over-burdened by work and has little time to reply to
questions)
Formatting program:
Kai Harrekilde-Petersen, khp@mic.dth.dk (from March '94)
Cesare Mastroianni, cece@dist.dist.unige.it
ftape driver proper:
Bas Laarhoven, bas@vimec.nl
ECC code: (do not join in, we are enough already)
David Mosberger-Tang, davidm@cs.arizona.edu
Ning Mosberger-Tang, tn@cs.arizona.edu
Kai Harrekilde-Petersen, khp@mic.dth.dk
Bas Laarhoven, bas@vimec.nl
ftape-HOWTO:
Kai Harrekilde-Petersen, ftape@mic.dth.dk
QIC-80 logical format (r/w of DOS compatible backups, starts March '94):
Kai Harrekilde-Petersen, khp@mic.dth.dk
/**************** T H E E N D O F f t a p e - H O W T O ***************/

View File

@@ -0,0 +1,244 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,news.answers,comp.answers
From: mdw@sunsite.unc.edu (Matt Welsh)
Subject: Linux HOWTO Index
Keywords: Linux, HOWTO, FAQ, documentation, index
Summary: Index of HOWTO documents about Linux.
Organization: Linux. It's not just for breakfast anymore.
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/index
Last-modified: 17 March 1994
Linux HOWTO Index
by Matt Welsh, mdw@sunsite.unc.edu
v2.0, 17 March 1994
This is an index to the Linux HOWTO documents.
1. What are Linux HOWTOs?
Linux HOWTOs are short online documents which describe in detail a
certain aspect of configuring or using the Linux system. For example,
there is the Installation HOWTO, which gives instructions on
installing Linux, and the Mail HOWTO, which describes how to set up
and configure mail under Linux. Other examples include the
NET-2-HOWTO (previously the NET-2-FAQ) and the Printing HOWTO.
Information in HOWTOs is generally more detailed and in-depth than
what can be squeezed into the Linux FAQ. For this reason, the Linux
FAQ is being rewritten. A large amount of the information contained
therein will be relegated to various HOWTO documents. The FAQ will be
a shorter list of frequently asked questions about Linux, covering
small specific topics. Most of the ``useful'' information in the FAQ
will now be covered in the HOWTOs.
HOWTOs are comprehensive docs---much like an FAQ but generally not in
question-and-answer format. However, many HOWTOs contain an FAQ
section at the end. For example, the NET-2-FAQ has been renamed to the
NET-2-HOWTO, because it wasn't in question-and-answer format. However,
you will see the NET-2-HOWTO named as the NET-2-FAQ in many places.
The two docs are one and the same.
2. Where to get Linux HOWTOs
HOWTOs can be retrieved via anonymous FTP from the following sites:
o sunsite.unc.edu:/pub/Linux/docs/HOWTO
o tsx-11.mit.edu:/pub/linux/docs/HOWTO
as well as the many mirror sites, which are listed in the Linux
META-FAQ (see below).
The Index, printed below, lists the currently available HOWTOs.
HOWTOs are also posted regularly to the newsgroups comp.os.linux and
comp.os.linux.announce. In addition, a number of the HOWTOs will be
crossposted to news.answers. Therefore, you can find the Linux HOWTOs
on the news.answers archive site rtfm.mit.edu.
3. HOWTO Index
The following Linux HOWTOs are currently available. The list is small,
because this is a relatively new project.
o Linux INFO-SHEET, by Michael K. Johnson (johnsonm@sunsite.unc.edu).
A general technical introduction to Linux, listing its features,
supported hardware, and other general information.
o Linux META-FAQ, by Michael K. Johnson (johnsonm@sunsite.unc.edu).
A list of sources of information about Linux, such as
documentation, newsgroups, FTP sites, and so on.
o Installation HOWTO, by Matt Welsh (mdw@sunsite.unc.edu). How to
obtain and install Linux. This is the first document which a Linux
newcomer should read. It discusses how to obtain Linux, both from
the Internet and via Snail-mail, and how to install it. Focuses
primarily on the SLS distribution of Linux, which is the current de
facto standard.
o Linux Distribution HOWTO, by Matt Welsh (mdw@sunsite.unc.edu). A
list of many of the major Linux distributions available via
anonymous FTP and via mail order on diskette, tape, or CD-ROM.
Also includes other Linux-related goodies that you can only get via
mail order.
o NET-2 HOWTO, by Terry Dawson (terryd@extro.ucc.su.oz.au).
Describes how to install and configure the Linux NET-2 TCP/IP code,
in kernels 0.99.pl10 and above. (This has nothing to do with the
so-called BSD NET-2 distribution.) Discusses various aspects of
TCP/IP networking under Linux, including the use of SLIP. The
complete instruction manual for TCP/IP under Linux.
o Ethernet HOWTO, by Paul Gortmaker (gpg109@rsphysse.anu.edu.au). A
HOWTO about the various Ethernet device drivers which are available
for Linux. Should be read along with the NET-2 HOWTO by anyone
using Ethernet for TCP/IP on Linux.
o Serial HOWTO, by Greg Hankins (gregh@cc.gatech.edu). Information
on serial communications, devices, and software packages for Linux.
o XFree86 HOWTO, by Helmut Geyer (geyer@polyhymnia.iwr.uni-
heidelberg.de). This HOWTO describes how to install and configure
the X-Windows software distribution for Linux. Most of this is
Linux-specific, and expects you to read the documentation included
in the XFree86-2.0 package.
o MGR HOWTO, by Vincent Broman (broman@Np.nosc.mil). A HOWTO
describing the MGR window system for Linux, another graphical
interface somewhat like X.
o Mail HOWTO, by Vince Skahan (vince@victrola.wa.com). All about
configuration of electronic mail with Linux, including UUCP and
TCP/IP mailers such as Smail and sendmail.
o UUCP HOWTO, by Vince Skahan (vince@victrola.wa.com). How to
configure UUCP to transfer files, mail, and news to other UNIX
machines on a UUCP-based connection. Includes discussion of Taylor
UUCP for Linux.
o News HOWTO, by Vince Skahan (vince@victrola.wa.com). Setup and
configuration of news software, such as C News, INN, and
newsreaders (such as rn and tin) under Linux.
o Printing HOWTO, by Grant Taylor (gtaylor@cs.tufts.edu). How to
configure and use printing software under Linux, such as lp, lpr,
etc. including remote printing.
o SCSI HOWTO, by Drew Eckhardt (drew@kinglear.cs.Colorado.EDU). All
about SCSI tapes, drives, and CD-ROMs under Linux.
o Hardware Compatibility HOWTO, by Ed Carp (erc@apple.com). An
extensive list of hardware supported by Linux.
o Ftape HOWTO, by Kai Harrekilde-Petersen (ftape@mic.dth.dk). A
HOWTO describing the setup and use of various QIC ftape drivers for
Linux.
o Sound HOWTO, by Jeff Tranter (tranter@software.mitel.com).
Information on sound-related hardware and software for Linux, such
as how to configure your system for use with a sound card.
4. Wanted HOWTOs
I would be very happy if someone would write the following HOWTO
documents, and submit them to me (see the instructions in the next
section below). Most of these are modifications of existing FAQ
documents, and should be easy to put into HOWTO format. Keep in mind
that HOWTOs generally aren't in FAQ format, but can contain an FAQ
section at the end.
Some of these are under construction; however, if you're interested in
working on one of them, please let me know.
o GCC/LIBRARY HOWTO. Discussing installation/upgrading of the GCC and
shared libraries under Linux. How to build shared libraries. Most
of the material would come from Mitchum DeSouza's GCC FAQ.
o KERNEL HOWTO. How to upgrade and compile the kernel. Basic kernel
tweaking, including how to turn on debugging output. How to decrypt
panic messages. Basic introduction to kernel structure and hacking.
o If you have an idea for another HOWTO, please mail me!
5. Writing and submitting a HOWTO
If you would like to write a Linux HOWTO document, there are a few
guidelines that you should follow.
o Format the document neatly. HOWTOs must be available in plain ASCII
format, but you are free to use a formatting tool (texinfo,
LameTeX, nroff) to format the document. Try to use meaningful
structure and organization, and write clearly. Remember that many
of the people reading HOWTOs do not speak English as their first
language.
o Make sure that all of the information is correct. I can't stress
this enough. When in doubt, speculate, but make it clear that
you're only guessing.
o Make sure that you are covering the most recent version of the
available software. Also, be sure to include full instructions on
where software can be downloaded from (FTP site name, full
pathname).
o Include an FAQ section at the end, if appropriate. Many HOWTO
documents need an "FAQ" or "Common Problems" section to cover
information which can't be covered in the regular text.
o Use other HOWTOs as a model. It is nice to have a common look and
feel to HOWTO documents--- this document being an example. The
easier the HOWTO is to browse, the more useful it will be to
readers.
After you have written the HOWTO, mail it to me (Matt Welsh) at
mdw@sunsite.unc.edu. I am the HOWTO coordinator---I will look over the
HOWTO, and make any editorial remarks. I will also take care of
approving and posting the HOWTO to the various newsgroups and
uploading the HOWTO to the FTP archive sites. Of course, all credit
for the HOWTO will go to the author.
It is important that you go through me when submitting a HOWTO. I
maintain the HOWTO archives and need to keep track of what HOWTOs are
being written and who is doing what. If you don't submit a HOWTO to
me, I can't include it in the archive or add it to the HOWTO INDEX.
Once I have approved the HOWTO, I will post it and upload it to the
FTP sites. I will also send you (the author) the "final" version of
the HOWTO with any changes. All you have to do is send me periodic
updates (every month or so, as needed) and I will take care of posting
the HOWTO regularly.
6. Miscellaneous and Legalese
If you have questions, please feel free to mail mdw@sunsite.unc.edu.
The Linux FAQ rewrite is being coordinated by Ian Jackson,
ijackson@nyx.cs.du.edu, with help from others.
Unless otherwise stated, Linux HOWTO documents are copyrighted by
their respective authors. Linux HOWTO documents may be reproduced and
distributed in whole or in part, in any medium physical or electronic,
without permission of the author. Translations and derivative works
are similarly permitted without express permission. Commercial
redistribution is allowed and encouraged; however, the author would
like to be notified of any such distributions.
In short, we wish to promote dissemination of this information through
as many channels as possible. However, we do wish to retain copyright
on the HOWTO documents, and would like to be notified of any plans to
redistribute the HOWTOs. If you have questions, please contact Matt
Welsh, the Linux HOWTO coordinator, at mdw@sunsite.unc.edu.

View File

@@ -0,0 +1,546 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.admin
From: erc@apple.com (Ed Carp)
Subject: Linux Hardware Compatibility HOWTO
Organization: Computer Security Technologies
Keywords: Linux hardware compatibility HOWTO
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/hardware
Last-modified: 01 Aug 93
LINUX HARDWARE COMPATIBLITY HOWTO
VERSION: 0.6 DATE: 01 Aug 93
Note: This list was originally posted by who-knows? I don't remember, and
I haven't seen it in a while, so I'll take the responsibility of maintaining
this list. Please send your hardware (in)compatibility lists to erc@apple.com.
PLEASE put the word "HARDWARE" in your subject line IN CAPS!
--------------------------------- cut here -----------------------------------
Welcome to the Linux Hardware Compatibility HOWTO. It is my hope that
this will be of help to people and that it will do away with a lot of the
"Will XXX work with my System?" questions. I also hope that this will help
people who want to buy a system to run Linux or are in the process of
upgrading their system and want to make sure that the hardware they buy is
compatible with Linux (especially for item's such as SCSI controller's and
CD-ROM's, and video cards for X).
Please be aware that the list NO LONGER contains X hardware
specifics. These will be posted as a seperate listing.(along with
clocks, settings, etc.)
People who have emailed me (erc@apple.com) about specific pieces
of hardware that they've gotten to work have their name and email address
printed alongside. This is to help others who are having difficulty get
help directly from the guilty party. ;)
If you are wondering about a specific piece of Hardware and you don't
find it in this list all I can say is I don't know at this time but as soon
as I find out it will be in the next list. If you find out that it work's
from some other source, i.e. a friend or trying it out, PLEASE let me know.
Also even though a piece of equipment is on this system doesn't mean that I
know how to get it to work with Linux, it is on this list because someone
has told me that it works on THEIR system. So if it is on the list and
you can't make it work, it sounds like a good time to, in order, do:
1) read ALL the faq's
2) read comp.os.linux.help, and scan the subjects for your XXX
3) email the person listed here who says it works (if any)
3) post AFTER READING comp.os.linux.help and c.o.l.announce.
Thanks to everyone that has helped and sent info this list,it is a lot
better because of their help!
This HOWTO is archived in a number of places, including sunsite.unc.edu in
/pub/Linux/docs/HOWTO. It is posted periodically to comp.os.linux.announce.
NOTEBOOKS:
--------------------
Altima 486DX/33 Linux/with X11
Compaq LTE386s/20 (Notebook) (using XFree 1.2)
Compaq Contura 3/25 (25 MHZ 386 SL notebook with VGA type grayscale
screen and 120 MB hd.
Leading Edge 386/25 SLC (erc@apple.com)
NEC UltraLite Versa (howard@hal.com)
Packard Bell 386SX20 laptop
Compudyne 4DX/33 486 notebook with greyscale CCFT lcd screen---
Phoenix bios 1.01, trackball (ps2 mouse compatible)
486 processor & 130 mb toshiba 3.5" drive.
Linux 99.5 with X
(Runs 386bsd 0.1---you need to bang on the keyboard while it boots,
otherwise the keyboard comes up locked)
Twinhead(? rumored to be a Alitima/CompuDyne clone)
BRAND NAME COMPUTERS
--------------------
ACER 1200
Bitwise
Compaq Deskpro 386/20
Comtrade
Comtrade Local Bus
Comtrade EISA/VLB (cae@jpmorgan.com)
Dell 486P (486DX2/50) (William Perry, wmperry@bronze.ucs.indiana.edu)
Diamond Flower Industries DFI 386-20
DTK
EDGE Technology, 486/33DX
Hewlett Packard HP QS20
Highscreen Tower 386
Hi Tech USA 486/33 ISA
Gateway 2000 33Mhz 386DX
Gateway 486 DX2 66V
Gateway 486/33V (barrett@pamsrc.enet.dec.com)
Gecko 486-50
Insight 486DX/25
Insight 486DX-50 ISA and EISA
IPC 38633
Laser 386SX/2E
Microlink 486dx/50 localbus
Osborne Computers (Australia) 486/33 EISA
Paradise
Packard Bell Legend 520 SX
Toshiba 1850 laptop
Trigem 386v
Tyan Pro-EISA, Opti EISA Chip-set
PACOMP 486/33
Tandy 4000
Viglen Gene
Vobis Highscreen 486DX/33
Xpand 386/40
Zenon 486/33 Local Bus
Zeos 486DX2/50 VL-Bus
CPU
---
Intel 80386
Intel 80386SX
Intel 80386SLC
Intel 80386DX
Intel 80486SX
Intel 80486DX
AMD AM386SX
AMD AM386DX
AMD AM386DXL
Cyrix 486DLC
FPU
---
Cyrix FasMath 387/40
IIT 387 (all speeds)
Intel 387 (all speeds)
ULSI MathCo 387/33
(rumored to have some problems with some versions due to chip bug)
MOTHERBOARD
-----------
386 AWP
AMI EISA Enterprise II
AMI Series 50 Super Voyager 486/33 DX
AVM 486DX-50
C386 PEAK-DM
CONTAQ-386 Upgradable System Board
DTK
DTK PEM-2530
ECS EM486/50 (EISA)
ECS UL-486
ETEQ G486EB
G486PLB
G486SLC The Symphony Mainboard - Companion (BIOS AMI 1991)
GS3486
HOT-307H 386-33/40 (OPTI chipset)
HM386sx
ISA486S
M407 PC Chips motherboard
Magitronic/VLSI V386SX-25Mhz
Micronics 80386DX ASIC (Brian Hook, bwh@beach.cis.ufl.edu)
Micronics 80486 ASIC EISA
Micronics EISA-II motherboard w/8 EISA slots and 64KB cache RAM standard
Micronics Gemini 80486DX, Rev. E (Brian Hook, bwh@beach.cis.ufl.edu)
MST-386
MST 486A (Armas Inc. ROC)
Mylex EISA mae486
Oktec Trout 386
OCTECK 386-33 64K cm
PLB-486/50
ST 486 VESA Localbus (OPTI Chipset) (mow@marsu.tynet.sub.org)
SUPER 486-33C
Symphony 80486 PC/AT chipset
T/B, UNICHIP chipset, 386DX25 upgradeable to 486DX50
UMC 386
UMC 80486
Viglen
ZIDA 386/33DX-128C
BIOS
----
AMI
AMI 9-25-88
AMI 07/12/90
AMI (Dated 08/30/90)
AMI (Dated 05/05/91)
AMI (Dated 7/7/91)
AMI 486 ISA (dated 12/12/91)
AMI 486/50
Award
Microid 1.43 (mow@marsu.tynet.sub.org)
Mylex 6.15.92
Phoenix
Phoenix Technologies V D.02.05 QS/20
Pheonix 80486 Ver 1.01.22-2
Phoenix 80486/EISA ROM BIOS PLUS Version 1.01.22-2
Phoenix C3.04e
Quadtel
CONTROLLERS (Multifunction)
---------------------------
Buslogic 742a
Future Domain TMC950 based SCSI/IDE controller + 4 floppies
HP Multifunction
IDE-PLUS-V3 multi i/o board
ISFP multiple IO-card
IODE-3290U (IDE/FD/2S/1P/1G)
Kouwell KW-556D (2S/1P/game/IDE/floppy)
Laser Multi-IO/IDE Card
MCT-AIO Serial/Parallel/Game (16550AFN)
MIO-16 Multi IO Card
PTI-227B Super I/O Card (serial, parallel, IDE)
SUPER IDE I/O CARD, model PT-604
Super IDE/FDC MULTI I/O card Modem 827 Version 11
Super I/O MP57
CONTROLLERS (I/O)
-----------------
Accent ASYNC-4 4 port serial card
BOCA ATI0
Gw2760 EX SUPER IO CARD
GW232c mini serial card
PC-COMM 4-port card with 16550 uarts
ShineCom Multi-User catd LCS-8880 (AST 4-port clone)
CONTROLLERS (Floppy)
--------------------
Adaptec 1542B (built-in) (but see INCOMPATIBILITIES)
CONTROLLERS (Hard Drive)
------------------------
Note: Linux should work with all IDE, MFM, and RLL controllers, pretty much
regardless of the version of Linux.
RLL
---
Mitsubishi 65MB (Brian Hook, bwh@beach.cis.ufl.edu)
Seagate ST-11R
Seagate ST- 277R (Brian Hook, bwh@beach.cis.ufl.edu)
WD 1006V-SR2
MFM
---
DTC150x XT (8-bit) MFM HD
Seagate ST11M
Seagate ST22M MFM controller w/floppy
Western Digital WD1003
IDE
---
DC600 Caching IDE controller (4Mb RAM) (BIOS Dated 01/24/92 (c) Tekram Tech.)
DC 680T
ESDI
----
6280-15TX
DTC-6180
DTC-6180-15T
Western Digital 1007A-WA2
CONTROLLERS (SCSI)
------------------
Adaptec AHA1542B (but see INCOMPATIBILITIES)
Adaptec AHA-1742A, BIOS version 1.34 (in enhanced mode)
Adaptec AHA1740
Adaptec AHA-1740 SCSI-2 controller (BIOS v1.34) in Enhanced Mode
Buslogic 445s
Future Domain SCSI Model 1680
Future Domain SCSI card, TMC-850 (works with kernel 0.99p4+)
Future Domain SCSI card, TMC-950 chip
MYLEX DCE376 EISA SCSI controller (in WD emulation mode only)
Seagate ST-02
UltraStor SCSI
7000FASST SCSI
WD7000fasst SCSI Card, firmware rev 5.0 (only works with .99+)
SOUND BOARDS
------------
ATI Stero F/X
ProAudio Spectrum-16 (but see INCOMPATIBILITIES)
SoundBlaster
SoundBlaster PRO
HARD DRIVES (RLL)
-----------------
CDC Wren II
Micropolis 1325 (108MB)
Toshiba ((105MB) used as 68MB MFM)
HARD DRIVES (MFM)
-----------------
CDC Wren II
Computer Memories Inc. 6426-S (20 MB, Full-height)
Maxtor (68MB)
Seagate 251-1
Seagate ST225
Seagate ST296N
Tandon 262 (20 MB)
HARD DRIVES (IDE)
-----------------
All should work and the following have been verified.
** PLEASE DON'T EMAIL ME WITH IDE HD'S UNLESS THEY DON'T WORK! **
Alps DR312C (202MB)
Conner CP3204F
Conner (210MB)
Fujitsu (520MB)
Fujitsu 2652S
Fujitsu M2624-T (490meg)
Maxtor 7120A (120MB)
Maxtor 7213A (213MB)
Maxtor LXT340AT (340MB)
Maxtor XT 1140 (140MB)
Maxtor (340MB)
Miniscribe 8051A
Miniscribe 8380
Seagate (44MB)
Seagate ST125A
Seagate ST1102A (85MB)
Seagate ST1144A (124Mb)
Seagate ST1239A (211MB)
Seagate ST3120A
Seagate ST3144A (120/130MB IDE)
Seagate ST351A/X (44MB)
Seagate ST157AT
Seagate ST3283A (245Mb)
Quantum ELS 170AT (170MB)
Quantum LPS120AT (120 MB)
Quantum Prodrive LPS 240 AT
Quantum Prodrive 80AT
Quantum (240MB)
Western Digital AC280 (80MB)
Western Digital AP-4200 (200 MB)
Western Digital (120MB)
Western Digital AC2200 (210MB)
Western Digital WDAC3400 (340MB)
HARD DRIVES (ESDI)
------------------
Fujitsu M2249E (320MB)
Imprimis (300MB)
Imprimis (360MB)
NEC ESDI (350MB)
HARD DRIVES (SCSI)
------------------
All should work and the following have been verified.
CDC WREN VI (700MB)
Fujitsu M2614
Fujitsu M2624 (520Mb SCSI)
Maxtor 7120SCS
Maxtor LXT-200S
Maxtor LXT-340-SY (324MB)
Maxtor XT8380S
Maxtor XT8760S
Maxtor PO-12S (1.2GB)
Micropolis 1542 (330MB)
Micropolis 1664 (340MB)
Seagate ST277N (60MB)
Seagate ST296N
Seagate ST41200 (1000MB)
Seagate ST41650 (1400MB, but only 1000MB accessible)
Quantum ProDrive P80S
Quantum ProDrive 105s
Quantum ProDrive 80s
TAPE DRIVES (SCSI)
------------------
Archive Viper 150MB (erc@apple.com)
Caliper CP-150 (QIC) (aka Commodore A4070) (barrett@pamsrc.enet.dec.com)
Exabyte EXB-4200 (2GB DAT) (john@linux.demon.co.uk)
Sankyo CP150SE tapestreamer
Sankyo CP525
TANDBERG 3600 streamer, using 250MB DC6250 cardriges
Wangtek 5525ES
Wangtek 5150ES
Wangtek PC36 adapter/5099EN 60MB drive
CD-ROM DRIVES
--------------------
All SCSI should work and the following have been verified.
** PLEASE DON'T EMAIL ME WITH SCSI CD-ROM'S UNLESS THEY DON'T WORK! **
Matsushita/Kotobuki/Panasonic CR-5xx series
*Mitsumi/Radio Shack
NEC CDR-74
*Sony CDU-541
*Sony CDU-535 (erc@apple.com)
Soundblaster CD-ROM
Texel DM-3024
Toshiba 3401 (barrett@pamsrc.enet.dec.com)
*Internal Sony CDU-31a CD ROM drive and proprietary Sony interface card
DEC RRD42 (Michael Griffith, grif@yenko.ucr.edu)
* = Some require drivers not in the stock kernel - see the Linux Software
Map - sunsite:/pub/Linux/docs/LSM for those drivers.
NETWORK CARDS
-------------
wd8013 \
wd8003 >--These will work by default with the kernel
SMC Elite 16 /
Novell/Eagle NE2000
ne1000
3com503 EtherlinkII
3c503 EtherlinkII/16
Cnet UTP 10baseT (NE 2000 emulation)
PE-8013 (WD-8013 Compatible)
SIIG Inc E-Lan/200 (NE 2000 comp.)
SMC Plus Elite
Compex ENET16-COMBO (Michael Griffith, grif@yenko.ucr.edu)
PRINTERS
--------
Apple Personal LaserWriter NTR
Brother HL-4PS
Brother HJ100
BJ200(Cannon?)
Canon BJ 10e
Canon LPB4+
Citizen Swift 24
Dec Writer III
Diablo 630
Epson Action Laser II
Epson LQ 400
Epson LQ-570
EPSON LX800
Epson RX-80
HP Deskjet 500
HP Laserjet II (barrett@pamsrc.enet.dec.com)
HP Laserjet III w/Postscript
HP Laserjet III w/Pacific Page PE/XL PS Cartidge
HP Laserjet IIIp
HP Think Jet
Infoscribe 1000
Kodak Diconix 150 ink jet
Kodak Diconix 150 plus
KX-P1124
NEC Pinwriter P6
NEC P2200XE
NEC P5300 dot matrix
NEC SilentWriter 95
Olivetti DM290
Panasonic KXP-P1091
Panasonic KX-P2124
Panasonic 1624
Seikosha SL-80AI
Star LC10 colour
STAR LC 24/10
Tandy TRS-80 Printer
MODEMS
------
ATI 9600etc
CASE Quattro 2400
Dallas Fax 9696
Digicom Scout+ (internal 14.4kbps v32bis/v42bis/MNP2-5)
Discovery 2400C
Everex (2400) MNP5
FasTalk 2400 II
Galaxy UFO
Gateway 2000 TelePath Data/Fax Modem (only with 0.99.10+) (Daniel Quinlan, quinlan@spectrum.cs.bucknell.edu)
GVC 9600 v.42bis
Logicode Technology- QuickTel 9600 V.32/V.42bis
Maestro Data Optimizer
Maestro 2400XR
MegaHertz C424FM (internal Compaq-compatable modem)
Multitech v.32 external
Packard Bell internal 1200
P.C. Logic 144I, V32bis & V42bis
Practical Peripherals PM14400FXSA V.32BIS
Quikkomm (2400)
SEL Panther 4 (2400bps)
Smartlink 9614AV - 14.400 highspeed modem from Archteck
Supra Faxmodem V.32bis
Supramodem 2400
Swan 2400 baud
Telebit T2500 (19.2k)
Turbo modem (v.32, v.42, v.42bis)
US Robotics Courier (2400)
US Robotics - Courier HST Dual Standard
US Robotics v.32bis
US Robotics Sportster (newer model) v.32bis (Ed Carp, erc@apple.com)
Zoom 2400 Internal
Zoom 2400 External w/SendFax
Zoom FaxModem 14.4k
Zoom 14.4k raw
ZyXEL 1496-E
ZyXEL U-1496E (v.32bis/v.42bis/FOX external modem)
MICE
----
A-Tech serial (switch set to Mouse Systems emulation)
A4TECH (Taiwan) Serial emulates MS-Mouse w/2 Buttons
Agiler (Microsoft/Mouse System)
ATI Busmouse
Artec M-22 (3-button)
Artec serial optical (mouse systems/microsoft)
Genius GM-F303
Genius GM-6 (microsoft compat)
Genius GM-6000 2/3 buttons serial mouse
Laser Microsoft/MouseSystem compatible
Logictech Dexxa mouse (acts like a Microsoft mouse)
Logitech FirstMouse serial version
Logitech MouseMan
Logitech Pilot Serial (3 buttons)
Logitech series 9
Logitech Series 14, 2 Button
Logitech Trackman 3Button (flakey at best)
Keen three button serial
Kensington Expert Mouse (trackball)
Inland Mouse Plus (emulates MicroSoft or Mouse Systems)
MicroSoft Serial
Microsoft Ballpoint mouse
Mouse Systems Serial
M-O-U-S-E mouse (taiwan)
Osborne (Microsoft Compat.)
PC accessorys MCST
Primax three buttoned mouse (Microsoft/MouseSystems)
Qtronix
Quickshot QS-159
Viglen mouse, 3 buttons, can't get the middle button to work in X
Z-Nix (Microsoft Compatible)
OTHER
-----
vt320 terminal (IRQ 10 from HP multi-function card)
vt220 terminal on COM2
tvi-925 terminal
INCOMPATIBILITIES
-----------------
From: mow@marsu.tynet.sub.org
The ProAudio Spectrum 16 does not work properly in combination
with the Adaptec 1542B. This is due to both card's busmastering
feature. NeXTSTEP/Intel even crashes with this configuration.
--
Ed Carp, N7EKG erc@apple.com 510/659-9560
anon-0001@khijol.uucp
If you want magic, let go of your armor. Magic is so much stronger than
steel! -- Richard Bach, "The Bridge Across Forever"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,479 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help
From: broman@Np.nosc.mil (Vincent Broman)
Subject: Linux MGR HOWTO
Keywords: Linux MGR graphics window system HOWTO
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/MGR
Last-modified: 17 Feb 1994
The MGR Window System HOWTO
Draft 17 Feb 1994
Copyright Vincent Broman 1994
Permission granted to make and distribute
verbatim (unaltered) copies for any purpose.
.0 This HOWTO
.01 Table of Contents
This HOWTO .0
What is the MGR window system? .1
Installing MGR .2
Running MGR .3
Programming for MGR .4
More Documentation .5
Credit for MGR .6
.02 Archiving
This HOWTO is temporarily archived for anonymous FTP on
bugs.nosc.mil in pub/Mgr/MGR-HOWTO, and more permanently
on sunsite.unc.edu in pub/Linux/docs/HOWTO .
.03 Credit for the HOWTO
While Vincent Broman first put together this HOWTO,
much of the information and text was obtained from FAQs,
READMEs, etc. written by Stephen Uhler, Michael Haardt,
and other public-spirited net-persons.
Email corrections and suggested changes to broman@nosc.mil .
Uhler was the main architect of MGR -- see the Credit section below.
.1 What is the MGR window system?
.11 Function
MGR (ManaGeR) is a graphical window system. The MGR server
provides a builtin window manager and windowed graphics terminal
emulation on color and monochrome bitmap displays. MGR is
controlled by mousing pop-up menus, by keyboard interaction, and by
escape sequences written on pseudo-terminals by client software.
MGR provides each client window with: termcap-style terminal
control functions, graphics primitives such as line and circle
drawing; facilities for manipulating bitmaps, fonts, icons, and
pop-up menus; commands to reshape and position windows; and a
message passing facility enabling client programs to rendezvous
and exchange messages. Client programs may ask to be informed
when a change in the window system occurs, such as a reshaped
window, a pushed mouse button, or a message sent from another
client program. These changes are called events. MGR notifies a
client program of an event by sending it an ASCII character string
in a format specified by the client program. Existing
applications can be integrated into the windowing environment
without modification by having MGR imitate keystrokes in response
to user defined menu selections or other events.
.12 Requirements
MGR currently runs on Linux, Sun 3/4 workstations with SunOS, and
Coherent. Various older versions of MGR run on the Macintosh,
Atari ST MiNT, Xenix, 386-Minix, DEC 3100, and the 3b1 Unix-pc.
The programming interface is implemented in C and in ELisp,
although supporting clients written in other languages is quite
easy.
Running MGR requires much less in resources than X, or even gcc.
It does not have the user-base, software repertory, or high-level
libraries of X or MS-Windows, say, but it is quite elegant
and approachable.
It has been said that MGR is to X as Unix was to Multics.
.13 How do MGR, X11 and 8.5 compare?
MGR consists of a server with builtin window manager and terminal
emulator, and clients which run in this terminal emulator and use it
to communicate with the server. No resource multiplexing is done.
X11 consists of a server and clients, which usually connect to the
server using a socket. All user visible things like terminal
emulators, window managers etc are done using clients. No resource
multiplexing is done.
8.5, the Plan 9 window system, is a resource multiplexer, as each
process running in a window can access /dev/bitblt, /dev/mouse and
/dev/kbd in its own namespace. These are multiplexed to the
/dev/bitblit, /dev/mouse and /dev/kbd in the namespace of 8.5.
This approach allows one to run 8.5 in an 8.5 window,
a very clean design. 8.5 further has an integrated window manager
and terminal emulator.
.2 Installing MGR
The latest version can be FTPed from bugs.nosc.mil:pub/Mgr/62 .
You can get older MGR sources from ftp.thp.uni-koeln.de[134.95.64.1]
in pub/linux/mgr, or on [134.95.80.1] in pub/thp/linux/mgr, if you
can't reach the first site. Even older versions of this distribution
from Haardt can be found on tsx-11.mit.edu and elsewhere. Pre-Linux
versions of MGR from Uhler and others (prior to Haardt) can be
found at bellcore.com:pub/mgr, although no one seems to maintain
things there. MGR has been through a lot of versions and releases,
but the current *Linux* version number is 0.62. This version number
ought to arrive at 1.0 when 256-color VGA code for Linux appears.
Required tools to build this distribution of MGR are m4 (GNU, or
perhaps another supporting the -D option), make (GNU, or perhaps
another supporting include) and *roff for the docs. Also sh,
awk, and POSIX install. Binary distributions have not been assembled
yet, so you need an ANSI C compiler environment, e.g. gcc + gas.
A Linux installation requires Linux 0.99.10 or better, an HGC,
EGA, VGA, or SVGA graphics card, and a mouse. Mouses supported
are: serial Microsoft mouse, serial MouseSystems 3 and 5 byte
mouse, serial MMSeries mouse, serial Logitech mouse, PS/2 mouse,
or a bus mouse. The VGA 640x480 monochrome graphics mode is
supported out of the box, as is 640x350 and 640x200. To run
800x600, or other modes that your BIOS can initialize and which
do not require bank-switching, you need to run a small program
(supplied as src/vgamisc/regs.exe) under DOS to read the VGA registers
while that mode is set and write a header file which you place in the
directory src/libbitblit/linux. Some VGA cards can use 128k
windows, and these can run higher resolutions. The Linux code
does not yet support more than two colors.
Suns with SunOS 4.1.2 and bwtwo, cgthree, or cgsix frame buffers
are supported. Coherent installations should refer to the
README.Coh file in the source distribution. Porting the
latest-and-greatest MGR to another POSIX-like system which
provides select() and pty's and direct access to a bitmapped
frame-buffer ought to be straightforward, just implementing the
libbitblit library based on the sunmono or colorport code, say.
If you want to install everything, you need 4.8 MB disk space for
binaries, fonts, manual pages etc. The sources are about 2 MB,
plus object files during compilation.
Normally, /usr/mgr should be either the directory or a link to the
directory where you install MGR stuff for runtime use. Typing
"chdir /usr/mgr; gunzip < whereveryouputit/mgrusr.tgz | tar xvf -"
and optionally
"chdir /usr/mgr; gunzip < wherever/morefonts.tgz | tar xvf -"
will unpack these. The source can be put anywhere, e.g. typing
"chdir /usr/src/local/mgr; gunzip < wherever/mgrsrc.tgz | tar xvf -"
to unpack the sources from bugs.nosc.mil.
The source tree can be compiled from one top-level Makefile which
invokes lower-level Makefiles, all of which "include" a "Configfile"
at the top level. The Configfile is created by an interactive sh
script named Configure, which runs m4 on a Configfile.m4,
so you do something like this:
chdir /usr/src/local/mgr
sh ./Configure
make first
make depend
make install
make clean
It might be wise, before running make, to eyeball the Configfile
generated by the Configure script, checking that it looks reasonable.
(At least one m4 poops out, creating a very short Configfile.
If this happens, try editing a copy of Configfile.sun or Configfile.lx)
Several flags in MGRFLAGS can be added/omitted to change some
optional features in the server, viz:
-DWHO: muck utmp file so "who" works
-DVI code for clicking the mouse in vi moving the cursor
-DDEBUG enable debugging output selectable with -d options.
-DFASTMOUSE XOR the mouse track
-DBUCKEY for hot-key server commands without mousing
-DPRIORITY for priority window scheduling instead of
round-robin; the active window gets higher priority
-DCUT for cut/paste between windows and a global snarf buffer
-DALIGN forces window alignment for fast scrolling (monochr)
-DKILL kills windows upon tty i/o errors
-DSHRINK use only some of the screen ($MGRSIZE in environment)
-DNOSTACK don't permit event stacking
-DBELL really ring the bell
-DKBD read mgr input from the sun kbd, instead of stdin.
This permits redirection of console msgs to a window.
-DFRACCHAR fractional character movement for proportional fonts
-DXMENU extended menu stuff (experimental)
-DMOVIE movie making extension which logs all operations to a
file for later replay -- not quite working under Linux
-DEMUMIDMSBUT Emulate a missing middle mouse button by chording
Not all combinations of these options work on all systems.
If a make complains about the lack of a default_font.h or an
icon_server.h in the directory src/mgr, then just do a
"make default_font.h icon_server.h" in that directory.
C code for the static variables containing icons and fonts
is generated by a translator from icon and font files.
Not all the clients are compiled and installed by the Makefiles.
Clients found under src/clients having capitalized names or
not compiled by the supplied Makefiles may have problems compiling
and/or running, but they may be interesting to hack on.
Several screen drivers found under the libbitblit directory are
of mainly archeological interest. Grave robbing can be profitable.
At some point check that your /etc/termcap and/or terminfo file
contain entries for MGR terminals such as found in the misc
directory. If all your software checks $TERMCAP in the environment,
this is not needed, as long as you run set_termcap in each window.
MGR works better if run setuid root, because it wants to chown
ptys and write in the utmp file. This helps the ify iconifier
client work better and the event passing mechanism be more secure.
On Linux, root permissions are required in order to do in/out on the
screen device. Otherwise, you decide whether to trust it.
In versions around 0.62 there are troubles on the Sun with using
the csh as the default shell. Programs seem to run in a different
process group than the foreground process group of the window's pty.
There is no trouble with bash, sh, or rc. Ideas why?
.3 Running MGR
The only file =required= in an MGR installation is the server
itself. That would give you terminal emulator windows with shells
running in them, but no nice clocks, extra fonts, fancy graphics,
etc. Depending on options, the server needs about 200K of RAM
plus dynamic space for windows, bitmaps, etc.
If /usr/mgr/bin is in your PATH, then just type "mgr" to start up.
When the hatched background and mouse pointer appear, hold down
the left mouse button, highlight the "new window" menu item, and
release the button. Then drag the mouse from corner to corner
where you want a window to appear. The window will have your
default shell running in it. Hold down the left mouse button over
an existing window to see another menu for doing things to that
window. The menu you saw that pops-up over the empty background
includes the quit command. For people with a two button mouse:
press both buttons together to emulate the missing middle button.
** When trying to run MGR, if you get:
- can't find the screen
make sure you have a /dev entry for your display device, e.g. on
a Sun /dev/bwtwo0. If not, as root cd to /dev, and type
"MAKEDEV bwtwo0". Otherwise, you might need the -S/dev/bwtwo0
or (on Linux) the -S640x480 command line option when starting mgr.
- Can't find the mouse
make sure /dev/mouse exists, usually as a symbolic link to the
real device name for your mouse. If you haven't permission to
write in /dev, then something like a -m/dev/cua0 option can be
given when starting mgr. Also, make sure you've supplied the
right mouse protocol choice when you configured mgr. The mouse
may speak Microsoft, even if that is not the brand name.
- can't get a pty
make sure all of /dev/[tp]ty[pq]? are owned by root, mode 666
and all programs referenced with the "shell" option in your
.mgrc startup file (if any) exist and are executable.
- none but the default font, make sure MGR is looking in the right
place for its fonts. Check the Configfile in the source or
see whether a -f/usr/mgr/font option to mgr fixes the problem.
- completely hung (not even the mouse track moves)
login to your machine from another terminal (or rlogin) and kill the
mgr process. A buckey-Q key will quit MGR if the keyboard still works.
Sometimes you can switch to another virtual terminal with an alt-F key
and kill mgr from there.
.31 Applications not aware of MGR
Any tty-oriented application can be run in an MGR window
without further ado. Screen-oriented applications using
termcap or curses can get the correct number of lines and
columns by your using shape(1) to reshape the window or using
set_termcap(1) or set_emacs(1) to obtain the correct termcap.
.32 MGR Applications (clients) distributed with the server
bounce, grav, grid, hilbert, mgreyes, stringart, walk - graphics demos
browse - an icon browser
bury - bury this window
clock - digital display of time of day
clock2 - analog display of time of day
close - close this window, iconify
cmenu - vi menus from C compiler errors
color - set the foreground and background color for text in this window
cursor - change appearance of the character cursor
cut - cut text from this window into the cut buffer
cycle - display a sequence of icons
dmgr - crude ditroff previewer
fade - fade a home movie script from one scene to another
font - change to a new font in this window
hpmgr - hp 2621 terminal emulator
ico - animate an icosahedron or other polyhedron
iconmail - notification of mail arrival
iconmsgs - message arrival notification
ify - iconify and deiconify windows
loadfont - load a font from the file system
maze - a maze game
mclock - micky mouse clock
menu - create or select a pop-up menu
mgr - bellcore window manager and server
mgrbd - boulder-dash game
mgrbiff - watch mailbox for mail and notify
mgrload - graph of system load average
mgrlock - lock the console
mgrlogin - graphical login controller
mgrmag - magnify a part of the screen, optionally dump to file
mgrmail - notification of mail arrival
mgrmode - set or clear window modes
mgrmsgs - message arrival notification
mgrplot - Unix "plot" graphics filter
mgrsclock - sandclock
mgrshowfont - browse through mgr fonts
mgrsketch - a sketching/drawing program
mgrview - view mgr bitmap images
mless - start up less/more in separate window, menu added for less
mvi - start up vi in a separate window, mouse pointing
oclose - (old) close a window
omgrmail - (old) notification of mail arrival
pbmrawtomgr - convert pbm raw bitmap to mgr bitmap format
pbmstream - split out a stream of bitmaps
pbmtoprt - printer output from PBM
pilot - a bitmap browser
resetwin - cleanup window state after client crashes messily
rotate - rotate a bitmap 90 degrees.
screendump - write graphics screen dump to a bitmap file
set_console - redirect console messages to this window
set_termcap, set_emacs - output an appropriate TERMCAP value
setname - name a window, for messages and iconifying
shape - reshape this window
square - square this window
squeeze - compress mgr bitmap using run-length encoding
startup - produce a skeleton startup file for current window layout
texmgr - tex dvi file previewer
text2font, font2text - convert between mgr font format and text dump
unsqueeze - uncompress mgr bitmap using run length encoding
window_print - print an image of a window
zoom - an icon editor
.33 MGR-aware clients distributed separately, see "SUPPORT" file
chess - frontend to /usr/games/chess
gnu emacs - editor with lisp/term/mgr.el mouse & menu support
gnuplot - universal scientific data plotting
metafont - font design and creation
origami - folding editor
pbmplus - portable bitmap format conversions, manipulations
pgs - ghostscript patch and front end
plplot - slick scientific data plotting
? - a groff PBM driver using Hershey fonts
.4 Programming for MGR
The MGR programmers manual, the C language applications interface,
is found in the doc directory in troff/nroff form. It covers
general concepts, the function/macro calls controlling the server,
a sample application, with an index and glossary.
Porting client code used with older versions of MGR sometimes
requires the substitution of
#include <mgr/mgr.h>
for
#include <term.h>
and substituting or redefining BIT_XOR, BIT_AND, et al
for B_XOR, B_AND, et al in the bitblt operations.
Compiling client code generally requires compiler options like
-I/usr/mgr/include -L/usr/mgr/lib -lmgr
as well as an occasional -DOLDMGR or -DOLDLIBMGR for some dusty decks.
One can get some interactive feel for the MGR server functions by
reading and experimenting with the mgr.el terminal driver for GNU
Emacs which implements the MGR interface library in ELisp.
The usual method of inquiring state from the server has the
potential of stumbling on a race condition if the client also
expects a large volume of event notifications. The problem arises
if an (asynchronous) event notification arrives when a
(synchronous) inquiry response was expected. If this arises in
practice (unusual) then the MGR state inquiry functions would have
to be integrated with your event handling loop.
The only major drawing function missing from the MGR protocol, it
seems, is an area fill for areas other than upright rectangles.
At present, the color palette itself is manipulated by
programs external to MGR, but version 0.62 has experimental code
for clients to get MGR to manipulate the color palette.
If you are thinking of hacking on the server, you can find the mouse
driver in mouse.* and mouse_get.*, the grotty parts of the keyboard
interface in kbd.c, and the interface to the display in the
src/libbitblit/linux directory. The main procedure, much
initialization, and the top level input loop are in mgr.c, and the
interpretation of escape sequences is in put_window.c .
.5 More documentation
The programmer's manual is essential for concepts.
Nearly all the clients supplied come with a man page which is installed
into /usr/mgr/man/man1 or man6.
Other useful man pages are bitblit.3, font.5, and bitmap.5 .
There is some ambiguity in the docs in distinguishing the
internal bitmap format found in your frame-buffer and the external
bitmap format found in files, e.g. icons.
The mgr.1 man page covers command line options, commands in the
~/.mgrc startup file, mouse and menu interaction with the server,
and hot-key shortcuts available on systems with such hot-keys.
Many of the fonts in /usr/mgr/font/* are described to some
extent in /usr/mgr/font/*.txt, e.g. /usr/mgr/font/FONTDIR.txt
gives X-style font descriptions for the fonts obtained
in .bdf format. Font names end in WxH, where W and H are the
decimal width and height in pixels of each character box.
.6 Credit for MGR
Stephen Uhler, with others working at Bellcore, was the original
designer and implementer of MGR, so Bellcore has copyrighted much
of the code and documentation for MGR under the following conditions.
* Permission is granted to copy or use this program, EXCEPT that it
* may not be sold for profit, the copyright notice must be reproduced
* on copies, and credit should be given to Bellcore where it is due.
One required showing of the copyright notice is the startup title screen.
Other credits to:
Stephen Hawley for his wonderful icons.
Tommy Frandsen for the VGA linux library.
Tom Heller for his Gasblit library.
Andrew Haylett for the Mouse driver code.
Dan McCrackin for his gasblit->linux patches.
Dave Gymer, dgp@cs.nott.ac.uk, for the Startrek effect fix.
Alex Liu for first releasing a working Linux version of MGR.
Lars Aronsson (aronsson@lysator.liu.se) for text2font and
an ISO8859-1 8-bit font.
Harry Pulley (hcpiv@grumpy.cis.uoguelph.ca,
hcpiv@snowhite.cis.uoguelph.ca) for the Coherent port.
Vance Petree & Grant Edwards & Udo Munk for their work on Hercules.
Udo Munk for his work on serial mouse initialization & select.
Norman Bartek & Hal Snyder at Mark Williams Co. for their help
with some bugs & with Coherent device drivers.
Extra thanks to Zeyd Ben Halim for lots of helpful patches,
especially the adaptation of selection.
Bradley Bosch <brad@lachman.com> for lots of patches from his 3b1
port, which fix bugs and implement new and desirable features.
Andrew Morton <applix@runxtsa.runx.oz.au> who first wrote the
cut-word code.
Kapil Paranjape <kapil@motive.math.tifr.res.in> for the EGA
support.
Michael Haardt for MOVIE support fixes, bug fixes, separation of the
libbitblit code into output drivers, origami folding of the code.
Yossi Gil for many fonts.
Vincent Broman for middle mouse-button emulation, linting, Sun cgsix
support, VGA colormap acess, and integration of the sunport code
into Haardt's layering scheme.
All bitmap fonts from any source are strictly public domain in the
USA. The 450 fixed-width fonts supplied with MGR were obtained
from Uhler, the X distribution, Yossi Gil, and elsewhere.
The Hershey vector fonts and the code for rendering them
are probably freely redistributable.

View File

@@ -0,0 +1,409 @@
From: vince@victrola.wa.com (Vince Skahan)
Reply-To: vince@victrola.wa.com (Vince Skahan)
Followup-To: poster
Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers
Subject: Linux Electronic Mail HOWTO
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/mail
Last-modified: 26 January 1994
The Linux Electronic Mail HOWTO
by Vince Skahan, <vince@victrola.wa.com>
v1.4, Last Modified 26 January 1994
---------------------------------------------------------------------------
This document describes the setup and care+feeding of Electronic Mail
(e-mail) under Linux.
You need to read this if you plan to communicate locally or to remote sites
via electronic mail.
You probably do *not* need to read this document if don't exchange
electronic mail with other users on your system or with other sites.
0. Introduction
The intent of this document is to answer some of the questions and
comments that appear to meet the definition of 'frequently asked
questions' about e-mail software under Linux.
This document and the corresponding UUCP and News 'HOWTO' documents
collectively supersede the UUCP-NEWS-MAIL-FAQ that has previously
been posted to comp.os.linux.announce.
0.1 New versions of this document
New versions of this document will be periodically posted to
comp.os.linux.announce, comp.answers, and news.answers. They will
also be added to the various anonymous ftp sites who archive such
information including sunsite.unc.edu:/pub/Linux/docs/HOWTO.
0.2 Feedback
I am interested in any feedback, positive or negative, regarding
the content of this document via e-mail. Definitely contact me if
you find errors or obvious omissions.
I read, but do not necessarily respond to, all e-mail I receive.
Requests for enhancements will be considered and acted upon based on
that day's combination of available time, merit of the request, and
daily blood pressure :-)
Flames will quietly go to /dev/null so don't bother.
Feedback concerning the actual format of the document should go to
the HOWTO coordinator - Matt Welsh (mdw@sunsite.unc.edu).
0.3 Copyright Information
The Mail-HOWTO is copyrighted (c)1994 Vince Skahan.
A verbatim copy may be reproduced or distributed in any medium physical
or electronic without permission of the author. Translations are
similarly permitted without express permission if it includes a notice
on who translated it.
Short quotes may be used without prior consent by the author.
Derivative work and partial distributions of the Mail-HOWTO must be
accompanied with either a verbatim copy of this file or a pointer to
the verbatim copy.
Commercial redistribution is allowed and encouraged; however, the
author would like to be notified of any such distributions.
In short, we wish to promote dissemination of this information through
as many channels as possible. However, we do wish to retain copyright
on the HOWTO documents, and would like to be notified of any plans to
redistribute the HOWTOs.
We further want that ALL information provided in the HOWTOS is
disseminated. If you have questions, please contact Matt Welsh, the
Linux HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
0.4 Standard Disclaimer
Of course, I disavow any potential liability for the contents of this
document. Use of the concepts, examples, and/or other content of this
document is entirely at your own risk.
0.5 Other sources of information
LINUX HOWTO Documents:
======================
There is plenty of exceptional material provided in the other Linux
HOWTO documents and from the Linux DOC project. In particular, you
might want to take a look at the following:
- the serial communications HOWTO
- the ethernet HOWTO
- the Linux Networking Guide
USENET:
=======
comp.mail.elm the ELM mail system.
comp.mail.mh The Rand Message Handling system.
comp.mail.mime Multipurpose Internet Mail Extensions.
comp.mail.misc General discussions about computer mail.
comp.mail.multi-media Multimedia Mail.
comp.mail.mush The Mail User's Shell (MUSH).
comp.mail.sendmail the BSD sendmail agent.
comp.mail.uucp Mail in the uucp environment.
Mailing Lists:
==============
There is a smail-3.1 mailing list.
To join (or get off) the list, send mail to
smail3-users-request@cs.athabascau.ca
make sure that you include the address at which you want to receive
mail in the text of the message.
To send a message to the list, send it to
smail3-users@cs.athabascau.ca.
Books:
======
The following is a non-inclusive set of books that will help...
'Managing UUCP and USENET' from O'Reilly and Associates is in my
opinion the best book out there for figuring out the programs and
protocols involved in being a USENET site.
'Unix Communications' from The Waite Group contains a nice
description of all the pieces (and more) and how they fit together.
'Sendmail' from O'Reilly and Associates looks to like the
definitive reference on sendmail-v8 and sendmail+IDA.
It's a "must have" for anybody hoping to make sense out of
sendmail without bleeding in the process.
'The Internet Complete Reference' from Osborne is a fine reference
book that explains the various services available on Internet and
is a great "one-stop-shopping" source for information on news, mail,
and various other Internet resources.
0.6 Where *NOT* to look for help
There is nothing 'special' about configuring and running mail under
Linux (any more). Accordingly, you almost certainly do *NOT* want
to be posting generic mail-related questions to the comp.os.linux.*
newsgroups.
Unless your posting is truly Linux-specific (ie, "please tell me
what routers are already compiled into the SLS1.03 version of
smail3.1.28") you should be asking your questions in one of the
newsgroups or mailing lists referenced above.
Let me repeat that.
There is virtually no reason to post anything mail-related in the
comp.os.linux hierarchy any more. There are existing newsgroups in
the comp.mail.* hierarchy to handle *ALL* your questions.
1.0 Hardware Requirements
There are no specific hardware requirements for mail under Linux.
You'll need some sort of 'transport' software to connect to remote
systems, which means either tcp-ip or uucp. This could mean that
you need a modem or ethernet card (depending on your setup).
2.0 Getting the software
In general, I grab my sources from ftp.uu.net and the other fine
archive sites on Internet. In addition, Linux-specific binary ports
are found in the usual Linux distrbutions and on the usual Linux
anonymous ftp sites (sunsite.unc.edu and tsx-11.mit.edu in
particular).
The newspak-2.0.tar.z distribution contains config files and readme
files related to building uucp, news, and mail software under Linux
from the various freely-available sources. It can usually be found
on sunsite.unc.edu in the directory /pub/Linux/system/Mail.
3.0 Mail 'Transport Agents'
This section contains information related to 'transport agents',
which means the underlying software that connects your local system
to remote systems.
3.1 Smail v3.1
Smail3.1 seems to be a de-facto standard transport agent for uucp-only
sites and for some smtp sites. It compiles without patching from
the sources. In addition, smail is provided in binary form in the
SLS distribution of Linux.
The newspak distribution contains config files for smail3.1.28 under
Linux that you can use to start with.
If you're building smail from sources, you need to have
CASE_NO_NEWLINES=true in your os/linux file so that 'sed' gives
you shell scripts that work properly.
For a uucp-only system that has a MX-record and that wants a
domainized header (who goes through a smart-host for everything),
these are the entire config files you'll need:
replace 'subdomain.domain' with your domain name
replace 'myhostname' with you un-domainized hostname
replace 'my_uucp_neighbor' with the uucp name of your upstream site
#-------- /usr/local/lib/smail/config -----------------
#
# domains we belong to
visible_domain=subdomain.domain:uucp
#
# who we're known as (fully-qualified-site-name)
visible_name=myhostname.subdomain.domain
#
# who we go through
smart_path=my_uucp_neighbor
#
#---------- /usr/local/lib/smail/paths --------------
#
# we're a domainized site, make sure we accept mail to both names
myhostname %s
myhostname.subdomain.domain %s
#
#-------------------------------------------------------------------
To run smail as a smtp daemon, add the following to /etc/inetd.conf:
smtp stream tcp nowait root /usr/bin/smtpd smtpd
Outgoing mail gets sent automatically, when using elm. If your
internet link is down when you send mail, then the mail sits in
'/usr/spool/smail/input'. When the link next comes up, 'runq' is
run which causes the mail to be sent.
3.2 Sendmail+IDA
There is a nice binary distribution of sendmail5.65c+IDA on sunsite
in pub/Linux/system/Mail that I highly recommend. I run a uucp-only
site and use sendmail5.65c+IDA instead of smail3.1.28 due to the
incredible ease of use.
To install it...
- you'll probably want to remove (or rename) all the files from
smail (see the /install/installed directory if you are SLS)
to be safe.
- cd to / then 'gunzip -c sendmail5.65c+IDA.tpz | tar xvf -'
- cd to /usr/local/src/sendmail5.65c+IDA/ida/cf and copy the example
local.m4 file to 'yourhostname.m4'. Edit out the distributed
hostname, aliases, and smarthost and put in the correct one
for your site. The default file is for a uucp-only site
who has domainized headers. Then 'make yourhostname.cf'
and move the resulting file to /etc/sendmail.cf
- if you are uucp-only, you do *NOT* need to create any of the
tables mentioned in the README.linux file. Just edit
the .m4 file, make sendmail.cf, and start testing it.
- if you're uucp-only and you talk to sites in addition to your
'smart-host', you'll need to add uucpxtable entries for
each (or mail to them will also go through the smart host)
and run dbm against the revised uucpxtable.
- if you change your .cf file, be sure to refreeze your config
with /usr/lib/sendmail -bz to make the changes take effect.
Another nice thing is that if you have mail.debug set and you
run syslogd, your incoming and outgoing mail messages will get
logged. See the /etc/syslog.conf file for details.
There's a new version of sendmail5.67b+IDA1.5 out at ftp.uiuc.edu
that also compiles and runs fine under Linux. Grab the older
version from sunsite and look in the sources provided there for
Linux-specific config files. Rich Braun has done a great job in
'blazing the trail' so getting the current version to compile and
run properly is as easy as typing 'make'.
If you're going to run sendmail+IDA, I strongly recommend you go
to the sendmail5.67b+IDA1.5 version since all required Linux-specific
patches are now in the vanilla sources and several security holes
have been plugged.
I'm planning to put out an integrated mailx+sendmail5.67b+IDA1.5
binary kit as soon as I can get around to it (stealing Ian's mailx
and the new sendmail version based on Rich's original patches).
Stay tuned...
3.3 Sendmail 8.6
Sendmail 8.6.5 from Berkeley is the latest major revision after
sendmail5. It has wonderful built-in support for building under
Linux. Just 'make linux' and you'll be all set.
3.4 Other 'transport agents'
The following also are known to run under Linux. Consult
'archie' for details regarding how to find them...
smail2.5 - very simple UUCP-based smail
4.0 Mail 'User Agents'
This section contains information related to 'user agents', which
means the software the user sees and uses. This software relies on
the 'transport agents' mentioned above.
4.1 Elm
Elm compiles, installs, and runs flawlessly under Linux. For more
information, see the elm sources and installation instructions.
The only thing to know is that Elm's Configure script incorrectly
sets the 'ranlib' variable in config.sh. When Configure gives you
the chance to edit config.sh before proceeding, please do so and
set "ranlib='ranlib'" or the binaries will compile but not link.
Elm and filter need to be mode 2755 (group mail) with
/usr/spool/mail mode 775 and group mail.
If you use a binary distribution like the one in SLS, you'll need
to create a /usr/local/lib/elm/elm.rc file to override the compiled-in
hostname and domain information:
replace 'subdomain.domain' with your domain name
replace 'myhostname' with you un-domainized hostname
replace 'my_uucp_neighbor' with the uucp name of your upstream site
#---------- /usr/local/lib/elm/elm.rc ------------------
#
# this is the unqualified hostname
hostname = myhostname
#
# this is the local domain
hostdomain = subdomain.domain
#
# this is the fully qualified hostname
hostfullname = myhostname.subdomain.domain
#
#--------------------------------------------------------
One thing you want to be aware of is that if you have Elm compiled
to be MIME-able, you need metamail installed and in your path or
Elm will not be able to read MIME mail you've received. Metamail
is available on thumper.bellcore.com and of course via 'archie'.
4.2 Mailx
There is a fine binary implementation of mailx located on the various
Linux archive sites. Make sure you grab version 5.3b or later since
there are security problems in v5.3a.
The only potential problem I'm aware of is that it seems to be
compiled in a way that requires /usr/lib/smail rather than
/usr/lib/sendmail as a transport agent. You probably need a link
if you run sendmail on your system.
I strongly recommend removing the old 'edmail' stuff from SLS
and replacing it with mailx. This is rumored to be done already
in the current SLS.
4.3 Other user agents
The following also are known to run under Linux. Consult
'archie' for details regarding how to find them...
Pine - from the Univ. of Washington
Metamail - allows MIME support
mh - yet another way to handle mail
deliver - file/process mail based on rules
procmail - file/process mail based on rules
Majordomo - manages e-mail lists
Mserv - provide files-by-mail
5.0 Acknowledgements
The following people have helped in the assembly of the information
(and experience) that helped make this document possible:
Steve Robbins, Ian Kluft, Rich Braun, Ian Jackson,
Syd Weinstein, Ralf Sauther, Martin White, Matt Welsh
If I forgot anybody, my apologies...

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,810 @@
From: vince@victrola.wa.com (Vince Skahan)
Reply-To: vince@victrola.wa.com (Vince Skahan)
Followup-To: poster
Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers
Subject: Linux News HOWTO
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/news
Last-modified: 26 January 1994
The Linux News HOWTO
by Vince Skahan, <vince@victrola.wa.com>
v1.6, Last Modified 26 January 1994
---------------------------------------------------------------------------
This document describes the setup and care+feeding of USENET News under
Linux.
You need to read this if you plan to post or read USENET news either
locally on your site or between your site and other sites.
You probably do *not* need to read this document if don't plan to provide
USENET news as a feature of your system.
0. Introduction
The intent of this document is to answer some of the questions and comments
that appear to meet the definition of 'frequently asked questions' about
USENET News software under Linux in general, and the version in the Linux
SLS distribution in particular.
This document and the corresponding Mail and UUCP 'HOWTO' documents
collectively supersede the UUCP-NEWS-MAIL-FAQ that has previously been
posted to comp.os.linux.announce.
0.1 New versions of this document
New versions of this document will be periodically posted to
comp.os.linux.announce, comp.answers, and news.answers. They will
also be added to the various anonymous ftp sites who archive such
information including sunsite.unc.edu:/pub/Linux/docs/HOWTO.
0.2 Feedback
I am interested in any feedback, positive or negative, regarding
the content of this document via e-mail. Definitely contact me if
you find errors or obvious omissions.
I read, but do not necessarily respond to, all e-mail I receive.
Requests for enhancements will be considered and acted upon based on
that day's combination of available time, merit of the request, and
daily blood pressure :-)
Flames will quietly go to /dev/null so don't bother.
Feedback concerning the actual format of the document should go to
the HOWTO coordinator - Matt Welsh (mdw@sunsite.unc.edu).
0.3 Copyright Information
The News-HOWTO is copyrighted (c)1994 Vince Skahan.
A verbatim copy may be reproduced or distributed in any medium physical
or electronic without permission of the author. Translations are
similarly permitted without express permission if it includes a notice
on who translated it.
Short quotes may be used without prior consent by the author.
Derivative work and partial distributions of the News-HOWTO must be
accompanied with either a verbatim copy of this file or a pointer to
the verbatim copy.
Commercial redistribution is allowed and encouraged; however, the
author would like to be notified of any such distributions.
In short, we wish to promote dissemination of this information through
as many channels as possible. However, we do wish to retain copyright
on the HOWTO documents, and would like to be notified of any plans to
redistribute the HOWTOs.
We further want that ALL information provided in the HOWTOS is
disseminated. If you have questions, please contact Matt Welsh, the
Linux HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
0.4 Standard Disclaimer
Of course, I disavow any potential liability for the contents of this
document. Use of the concepts, examples, and/or other content of this
document is entirely at your own risk.
0.5 Other sources of information
USENET:
=======
news.admin.misc General topics of network news administration.
news.admin.policy Policy issues of USENET.
news.admin.technical Maintaining network news. (Moderated)
news.software.b Discussion about B-news-compatible software.
news.software.nn Discussion about the "nn" news reader package.
news.software.nntp The Network News Transfer Protocol.
news.software.readers Software used to read network news.
news.sysadmin Comments directed to system administrators.
news.announce.newusers Explanatory postings for new users. (Moderated)
news.newusers.questions Q & A for users new to the Usenet.
Books:
======
The following is a non-inclusive set of books that will help...
'Managing UUCP and USENET' published by O'Reilly+Associates is in
my opinion the best book out there for figuring out the programs
and protocols involved in being a USENET site.
'Unix Communications' published by The Waite Group contains a nice
description of all the pieces (and more) and how they fit together.
'Practical Unix Security' published by O'Reilly+Associates has a
nice discussion of how to secure UUCP in general.
'The Internet Complete Reference' from Osborne is a fine reference book
that explains the various services available on Internet and is a great
"one-stop-shopping" source for information on news, mail, and various
other Internet resources.
0.6 Where *NOT* to look for help
There is nothing 'special' about configuring and running USENET
news under Linux (any more). Accordingly, you almost certainly do
*NOT* want to be posting generic news-related questions to the
comp.os.linux.* newsgroups.
Unless your posting is truly Linux-specific (ie, "please tell me
what patches are needed to run INN with the bash1.12 in SLS v1.03)
you should be asking your questions in the newsgroups mentioned above.
Let me repeat that.
There is virtually no reason to post anything news-related in the
comp.os.linux hierarchy any more. There are existing newsgroups in
the news.* hierarchy to handle *ALL* your questions.
1.0 Hardware Requirements
There are no specific hardware requirements for USENET News under
Linux. The only requirement of any type is sufficient disk space
to hold the software itself, the threads database(s), and the
amount of news you wish to keep on the system. Figure on a minimum
of 10 MB of disk space for starters.
2.0 Getting USENET News software
All the software referenced in this 'HOWTO' is available on the usual
Internet anonymous ftp sites.
Looking in /news on ftp.uu.net is usually a good way to start.
The newspak-2.0.tar.z distribution contains config files and readme
files related to building uucp, news, and mail software under Linux
from the various freely-available sources. It can usually be found
on sunsite.unc.edu in the directory /pub/Linux/system/Mail.
3.0 News Transport Software
There are two main sets of news 'transport' software for *nix these
days, Cnews and INN. The old 'Bnews' has been declared officially
dead and unsupported by its authors.
News 'transport' is defined here to be the software that works behind
the scenes to post and propagate the news articles as well as making
the articles available for the newsreaders to access.
You can set your paths to anything you like, as long as UUCP has the
absolute path to rnews in the Permissions file and as long as you
have your newsreaders configured so that they can find 'inews' and
'mail'.
Important - you're asking for trouble if you try to intermix Cnews
and INN. Pick one or the other. It's ok to add the NNTP 'Reference
Release' into Cnews since they're intended to play well together.
3.1 Cnews Performance Release
The current de-facto standard news software is Cnews. It has been
around for a number of years, I first saw it sometime around 1988.
Cnews's main benefit is its maturity. It runs on about every *nix
you can find and there are literally thousands of systems running
it worldwide.
Its main disadvantage is that it seems to have been intended for
uucp-over-modem connections between sites and as such requires
the addition of NNTP software to handle realtime Internet feeds
and reading.
In addition, it requires external threading packages for the
various newsreaders, although the NOV package can now be hooked in
to help somewhat and it's rumored to have native NOV support in the
upcoming 'cleanup' release.
Regardless, the beginning USENET admin should probably run Cnews
first since it's so stable, well documented, and has many thousands
of experienced administrators who can answer questions.
The newspak-2.0.tar.z distribution on sunsite contains working
config files for Cnews under Linux as well as a couple line patch
you'll need to make to 'doexplode' to get around some problems with
bash1.12. bash1.13 is now available on the various Linux archive
sites that should help.
3.1.1 Installing Cnews
Installing the Performance Release of Cnews is absolutely a 'rtfm'
project. Just grab the sources, extract them, and follow the
instructions.
The build.def in newspak was generated by running 'build' the
first time and simply looking up the answers by checking out the
/usr/include files to get the right answers.
When you start the actual compilation, it'll blow up a couple of
times. In all cases, you'll need to simply comment out a couple of
atoi() and atol() macros that gcc doesn't like when your doit.bin
compilation blows up.
Also, you need the following tiny change to doexplode to get around
some bash1.12 bugs or else you won't feed anything downstream...
[...from Steve Robbins - steve@nyongwa.cam.org ...]
if [ ! -f $f ] ; then continue; fi # add this line
# case "$f" in # comment me out
# "out.master/[0-9]*") break ;; # comment me out
# esac # comment me out
Henry Spencer of Cnews fame says that the code in doexplode that is
currently causing problems with bash is on the list to be revised in
a future release.
It is uncertain at this time if the need for this patch goes away
if you switch to the beta bash1.13 now available for Linux.
3.1.2 Configuring Cnews
At the very least, you need to edit the following files that all
should be in /usr/local/lib/news:
active - the active file
batchparms - batch parameters
explist - article expiration setup
mailname - name in headers for mailed replies
mailpaths - path to mail moderated postings to
organization - your 'org'
sys - control what you take and feed
whoami - your hostname for the Path: line
3.1.3 Maintaining a Cnews Site
First, a significant rule of thumb is to not mess with files
by hand that have utilities that configure them. In particular
don't set up newsfeeds (run 'addfeed'instead) and don't mess with
your active file (run 'addgroup'). When in doubt, read and re-read
the docs in the source distribution.
Everything else can be done via cron. My crontab for 'news' looks
like the following:
# take the compressed batches that came in from other systems
20 * * * * /usenet/sw/news/bin/input/newsrun
# batch 'em up to go out
0 * * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite
# expire C-news
59 0 * * * /usenet/sw/news/bin/expire/doexpire
# monitor stuff and report if needed
10 5 * * * /usenet/sw/news/bin/newsdaily
00 5 * * * /usenet/sw/new/bin/newswatch
# turn processing of incoming news batches off 6:30AM - 4:00 PM
30 6 * * * /usenet/sw/news/bin/input/newsrunning off
00 16 * * * /usenet/sw/news/bin/input/newsrunning on
3.2 InterNetNews (INN)
INN is the newcomer on the scene, but it's gaining popularity as
it matures. Its main benefit is speed and the fact that it contains
an integrated nntp package. Its main drawback is that it's new and
that it doesn't necessarily install and run flawlessly on the many
'standard *nixes' yet. In addition, it operates by having a daemon
(the innd) always running plus potentially a overchan daemon to do
threading. The tradeoff seems to be memory vs. speed.
New USENET admins should probably not try INN until they have
experience with either B-news or Cnews. While it's fast and
reliable under Linux, it's virtually undocumented for the
beginning news administrator (though in practice it's rather
simple to run once you figure it out).
INN is very particular about its permissions. Don't mess with them.
3.2.1 Installing INN
[... from Arjan de Vet - devet@info.win.tue.nl ...]
I've made a patch + config kit for INN 1.4 to get it to run on Linux.
It can be found at:
ftp.win.tue.nl:/pub/linux/ports/inn-1.4-linux.tar.gz
INN depends heavily on a good /bin/sh substitute. I use a beta
version of bash 1.13 that is now available for Linux on the normal
archive sites. bash 1.12 gives some small problems with
newgroups not being handled correctly (maybe some other problems
too, I don't remember).
3.2.2 Configuring INN
Basically follow Arjan's instructions and you'll be all set.
Here's the summary of what to do:
- In config.data, make sure you have "HAVE_UNIX_DOMAIN DONT"
- Add the hostname of the system running innd to hosts.nntp
(for a uucp-only site, that's your sitename...)
- Make sure you do not have a line for nntp in /etc/inetd.conf
- Make sure that you have innshellvars say "HAVE_UUSTAT DO"
rather than the 'DONT' in his example config.data if you
have uustat from the Taylor UUCP package installed. If you
have this defined wrong, it'll result in no outgoing news
getting batched.
If you run INN, *definitely* define the recommended syslogd
stuff because it is very, very helpful.
There is a spectacular (!!!!) FAQ for INN that comes out monthly.
Look on rtfm.mit.edu for it. You'll be glad you did.
3.2.3 Maintaining a INN Site
I've found that there's essentially zero care-and-feeding of
a Linux INN site other than having a working 'cron'. Basically
you want a crontab that looks something like the following:
# daily maint, also expire the .overview database and articles
1 0 * * * /usenet/sw/inn/bin/news.daily expireover delayrm < /dev/null
# send 'em out
5 * * * * /usenet/sw/inn/lib/send-uucp
[ if you switch to bash1.13, the '< /dev/null' above is not needed ]
3.3 Other News Transport Agents
The following is a non-inclusive list of other news transport
software known to work under Linux:
dynafeed, nntp1.5.11, slurp1.05
4.0 News Readers
There is no 'one true newsreader'. As a result, there are many
well-known newsreaders that port easily to Linux in particular. At
this writing, 'tin', 'trn', and 'nn' are in the SLS distribution of
Linux.
When picking a newsreader, you basically want to find something
that is easy to use, very configurable by the user, with threading
and kill files (to select interesting articles or make the
non-interesting ones not appear at all).
You can set your paths to anything you like as long as all the
newsreaders can find 'inews' from your Cnews or INN installation
and a 'mail' program to send mail replies to posts.
This section will talk briefly about several of the most popular
ones. Before you ask, I use 'nn' for lots of reasons :-)
4.1 Tin
Tin is a threaded newsreader generally intended to be easy for new
users. It supports kill files and NOV threading. If you're running
INN, it will read NOV .overview files by default and not write index
files.
To compile Tin under linux, basically just edit the makefile to set
the locations of the software (especially the location of inews)
and type 'make linux'. There are no patches required for tin under
Linux.
For threading, you can basically just say 'tin -u' to update the
index files.
To enable the ability to read via NNTP, compile with 'NNTP_ABLE'
defined. This will result in a file called 'tin' for local and one
called 'rtin' for NNTP reading. 'tin -r' will also get the same
behavior as 'rtin'.
Iain Lea recommends the following crontab entry and says that you
need to do a 'make daemon' to make tind.
# thread the database
35 * * * * /usenet/bin/tind -u
4.2 Trn/Mthreads
trn is a threaded derivative of the 'rn' newsreader. trn3.3 has
the nice ability to select either the 'mthreads' (trn's threading
package) or NOV (threader from INN) threading.
To compile it, just run Configure and take the calculated defaults.
You might need to have lib4.4.1 and bash-1.13 (there is a beta now
available on the various Linux archive sites) to successfully run
Configure. You'll probably need both bash1.13 and libs4.4.1 to
get the new Configure to run properly.
The newspak-2.0.tar.z distribution on sunsite contains working
config files for trn under Linux.
It's probably unwise to try to edit a trn config.sh by hand unless
you're doing something *VERY* simple like changing the paths to
fit your tastes. If you do so, you'll need to run 'Configure -S'
before you 'make depend', 'make', and 'make install'.
Although 'Configure' fails generally under Linux with bash1.12,
'Configure -S' work fine so if you take the newspak config.sh as a
starting point, you'll be very close.
Compiling for NNTP reading is as simple as answering 'yes' when
Configure asks you if you want to do so (assuming Configure runs
ok on your system). A future release of newspak will include a
config.sh for NNTP reading as well as the existing one for local
reading for those of us who are still 'bash-impaired' :-)
There are dozens of command line switches for trn to get all kinds
of behavior. Read the 'trn' man page for details. I use a nice
feature to set all the switches easily:
- add all the settings in a file called ~/.trnrc
- export TRNINIT="~/.trnrc"
A future newspak will have my .trnrc file as an example.
trn3.2 and above has support for NOV or mthreads threading
that's user-selectable. Accordingly, I recommend building the
software to allow both threading mechanisms (it's a question in
Configure). To pick one at runtime, try 'trn -Zo' for NOV and 'trn
-Zt' for mthreads.
To build the mthreads database, do something like the following
in the 'news' crontab:
# thread the trn database
35 * * * * /usenet/bin/mthreads all
4.3 NN
The newspak-2.0.tar.z distribution on sunsite contains working
config files for nn6.4.18 that you can drop into place and type
'make' under Linux.
When you're done compiling, you need to do the following:
- run the 'inst' program to install things.
(install everything)
- initialize the database
- fire up nnmaster
See the nn docs for details. Compiling, configuring, and running
nn under Linux is no different than running nn on any other *nix
with the exception that you probably want to run nnmaster as a cron
entry rather than as a daemon. If you run it as a daemon under
linux, it doesn't tend to wake up properly (the net effect of
running it from cron is the same anyway).
Support of 'nn' is as simple as the following crontab entries:
# run nnmaster to collect 'nn' stuff
25 * * * * /usenet/sw/nn/lib/nnmaster
# expire the nn database
0 4 * * * /usenet/sw/nn/bin/nnadmin =EYW
# stash a copy of the active file for 'nngoback' and keep last 7
0 3 * * * /usenet/sw/nn/lib/back_act 7
4.4 Other newsreaders
The following is a non-inclusive list of newsreaders said to
install and run under Linux:
tass, xrn, gnus
5.0 Acknowledgements
The following people have helped in the assembly of the information
(and experience) that helped make this document possible:
Ed Carp, Steve Robbins, Ian Taylor, Greg Naber, Matt Welsh,
Iain Lea, Arjan de Vet
If I forgot anybody, my apologies...
#=============================================================================
6.0 Frequently Asked Questions about USENET (in c.o.l.* anyway...)
6.1 Why can't I post to moderated groups ?
Probably because the newsreader is trying to call /bin/mail to send
the mail and it doesn't like it. Replace the /bin/mail in SLS with
the port of mailx-5.3b.tar.z from the pub/Linux/system/Mail dir on
sunsite.unc.edu and make it mode 2755 and group mail (like 'elm')
and you'll be all set.
Another possibility is that you have a moderated newsgroup set up
on your local system as not-moderated and somebody upstream is
quietly deleting the article (some system's software, not a
person). Make sure you run a 'checkgroups' every now and then when
the checkgroups article rolls by in news.admin every few weeks.
6.2 Why do I have problems that appear to be permission-related ?
Because until very recently, SLS didn't have a 'news' username or
group in the default passwd/group files.
All the stuff in /usr/local/lib/news should be news.news except
/usr/local/lib/news/setnewsids which should be setuid root.
You can use whatever UID and GID you want for 'news'.
6.3 Why can I post articles locally, but they don't get fed downstream ?
Probably because you didn't call newsrun from cron. Maybe because
you edited your sys file and messed it up. There are examples of
each in the SLS /usr/local/lib/news directory. Maybe because you
don't have a /usr/spool/news/out.going tree or something.
Do not create newsgroups or feeds by editing the active or sys
files. Use the utilities in /usr/local/lib/news/bin/maint to do
it.
6.4 Why doesn't SLS have the 'Performance Release' of C-news?
Because it's optional. Because it has problems under Linux in some
places. Because the one in SLS is more stable and plenty fast
enough on any type of reasonable system (IMHO). If you need any
more convincing, here's a few excerpts from the C-news README.new
file:
"This is the 20 Feb 1993 Performance Release of C News, a
minor update to the 2 May 1992 P.R. that just fixes some
installation problems and a couple of annoying bugs"...
"This release is more or less a halfway step to what we've
been calling the "cleanup release"...
"People who are happy with the older C News might want to
wait for the cleanup release, which is still coming
although behind schedule"...
Mainly because at the time SLS1.01 came out, the compilers and libs
didn't like the Performance Release too much.
6.5 Why doesn't SLS have nntp ?
Because it's supposed to be plug-n-play under Linux and because I
didn't want to make SLS's news stuff doubly big by having to
maintain both nntp and non-nntp versions of the newsreaders and
news transport programs. Also because it compiles in localized
information that is not overridable at runtime via a config file.
6.6 Why does doexpire (or relaynews or...) say "severe space shortage" when
there's lots of room ?
Because it can't read /etc/mtab. Make it mode 644. This happens
when you unmount a mounted filesystem by root with a umask that
doesn't permit world-read of files owned by root.
6.7 Why does everything look normal, but posting doesn't happen ?
Older versions of Linux had a 'broken' sed that C-news was prone
to blow up. In particular, if you've installed over an old SLS,
be sure to check /bin and /usr/bin to be certain you have only
one copy of sed and that it's a modern one.
6.8 Can I hook the new news overview (NOV) stuff into trn/tin/nn to replace
the various independent thread databases ?
Yes. trn3.3 supports it now. The next version of tin will.
You can hook it into the Performance Release of Cnews and various
other readers as well...
The beta copy of nn6.5 I have here has NOV support and it works just
dandy under Linux. I run it here and have nn running without having to
run nnmaster (!). Look on uniwa.uwa.edu for a copy of it.
6.9 Why can't we have a binary distribution of NNTP ?
Because significant local-only information is compiled-in and
cannot be determined auto-magically at runtime.
6.10 How do I set up NNTP to allow read/post across the network while *not*
storing any news articles or databases locally.
[... mdw@sunsite.unc.edu (Matt Welsh) ...]
1) Grab the 'reference implementation' of nntp and a copy or rn
from your local archive site. If you connect to ftp.uu.net
you'd grab:
nntp.1.5.11.tar.Z from ftp.uu.net:/news/nntp
rn-4.4.pl3.tar.Z from ftp.uu.net:/news/rn
2) compile nntp as follows:
copy common/conf.h.dist to common/conf.h.
Edit common/conf.h to set certain options:
The only ones I set were:
DOMAIN: undefine it (i.e. change the line to #undef DOMAIN).
REALDOMAIN: Define this. It looks up the domain using
the libraries.
SERVER_FILE: Set this to the name of the file which will
contain the hostname of the news server (i.e. the
machine you'll read and post news through). I use
"/usr/local/lib/news/server".
PASSFILE: If your news server requires authorization (i.e.
some kind of username/password) to post, set this to
the name of the file which contains the username and
password (described below). I use
"/usr/local/lib/news/nntppass".
I decided to keep all of the other news stuff in /usr/local/lib/news.
So I set all of the rest of the pathnames in the file (i.e.
ACTIVE_FILE, NEWSGROUPS_FILE, etc.) to use /usr/local/lib/news. Many
of these files are only used by the NNTP server, not the client, but
to be safe I changed them all to point to the right directory. You can
of course use the default pathnames; just make sure you create the
directory accordingly.
3) Create the user "usenet" if you haven't already. The inews program
runs as this user. All you need is a userid; you don't need a home
directory or shell or anything for the user. Just plop the following
line into your /etc/passwd:
usenet:*:13:1::/:
Make sure you set the userid ("13", above) to something unique. The
group can be anything; I use "daemon" (gid 1).
4) Create the SERVER_FILE, above. For example, my news server is
"wonton.tc.cornell.edu", so I created the file
/usr/local/lib/news/server which contained one line:
wonton.tc.cornell.edu
5) Create the PASSFILE. This file contains lines of the form
<server name> <username> <password>
Let's say that your news server (the one in SERVER_FILE, above) is
"shoop.vpizza.com", and to post on that machine you need to be
authorized as the user "news" with a password of "floof". Thus, in the
PASSFILE (I use /usr/local/lib/news/nntppass), you need the line
shoop.vpizza.com news floof
6) Make this file secure! The inews program runs as the user "usenet",
so make this news directory owned by that user and the nntppass file
as well.
chown usenet /usr/local/lib/news
chmod 755 /usr/local/lib/news
chown usenet /usr/local/lib/news/nntppass
chmod 600 /usr/local/lib/news/nntppass
So nobody else can read this file. No, the passwords in it are not
encrypted.
7) Go back to the nntp.1.5.11 source directory; issue "make client".
At this point you'll build the NNTP version of inews, which is the
only software used by the NNTP client.
When I built inews, there was a bug in the library which caused the
function uname() in uname.c to call itself eternally. This should be
gone now; however, if inews seems to hang and your system starts
slowing down *a lot* you should rename the function "uname()" in
uname.c to something like "my_uname()", and change the calls to it (in
inews.c) to call my_uname() instead. Mail me if you run into this
problem.
[...VDS note - this means mail to Matt...not me :-) ...]
8) Issue "make install_client". This will install the inews stuff.
Also make the link /usr/local/lib/news/inews -> /usr/local/bin/inews
Now you should be able to happily post (by hand). Try something like
the following:
$ inews -h << EOF
Newsgroups: misc.test
From: me@foo.bar.com
Subject: Testing
Reply-To: my-real-address@wherever.edu
This is a test.
EOF
If this works, inews should post the article. You'll know because
test-responders on misc.test will reply to the address on the Reply-To
line, above. Please don't do test postings on real groups, like c.o.l.
:)
6.11 How do I build 'rrn' as a nntp-based newsreader/poster ?
[... mdw@sunsite.unc.edu (Matt Welsh) ...]
1. cd to the rn source directory and do "./Configure". For almost all
the questions, take the defaults (it's very smart). Make sure you
have a link to "cpp" (usually in /usr/lib/gcc-lib/i386-linux/2.3.3) in
/lib, so rn can find it.
- Don't panic if it says you're on a NeXT or a USG system. Just go
with the flow...
- Answer "y" to "Do you expect to run these scripts and binaries on
multiple machines?"
- For your domain name: if your system is, say, "foo.bar.com", answer
with just "bar.com" (the domain, not the entire hostname).
- Answer "usenet" for the name of the user which is the news admin.
- For "Where is your news library?" use the directory where the above
NNTP files are kept: I use /usr/local/lib/news.
- Man page source is in /usr/man/man1.
- Answer "y" to "Does your /etc/passwd file keep full names in
Berkeley/V7 format?"
- Answer "gcc" to the name of the compiler which forces resolution.
- Answer "y" to "Do you want to build the NNTP version of rn (rrn)?"
- For the name of the news server file: use the same name you used
when building inews, above (for me, /usr/local/lib/news/server).
Don't run makedepend yet! Go to the next step:
2) Edit config.h. Change the "#define ROOTID ..." line to
#define ROOTID 0
if it isn't already.
3) In rrn-4.4.pl3, there is a small bug with SIGEMT: it doesn't exist
on Linux. rn used SIGEMT to check if a process is still running;
however, under POSIX.1 we can instead just send the process a
signal 0.
Edit init.c. On line 243, note the following:
if (kill(processnum, SIGEMT)) {
Change this to
if (kill(processnum, 0)) {
You may wish to #ifdef it out instead; it's up to you. Don't just define
SIGEMT to be zero; this will break the sigignore() call in final.c.
4) Issue "makedepend > makedepend.out".
5) Issue "make". Rn should compile happily.
6) Issue "make install".
You're all set. Keep in mind that rn does in fact eat a lot of memory
(as does any newsreader), handling the newsgroups file. So when you
first run rn, it might be a little slow building your .newsrc and
checking for new groups. If you're impatient, copy a .newsrc from
somewhere else and use that.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,770 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.admin
From: gregh@cc.gatech.edu (Greg Hankins)
Subject: Linux Serial HOWTO
Followup-To: poster
Keywords: Linux serial communications driver
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/serial
Last-modified: 6 Jan 94
Linux Serial-HOWTO version 1.0 Thu Jan 6 1994
maintained by Greg Hankins <gregh@cc.gatech.edu>.
** Note: This file supercedes the old Linux Serial-FAQ.
INDEX
0. Introduction
0.1 New versions of this document
0.2 Recommended reading
0.3 Feedback
0.4 Disclaimer
1. Supported serial hardware
2. How are serial devices named?
3. What is 'getty_ps 2.0.7b'?
3.1 Installation
3.2 Customizing 'getty'
4. How do I dial out with my modem?
4.1 Hardware requirements
4.2 Connecting to your modem
5. How do I dial in and out with my modem?
5.1 Note for UUCP users
6. How do I set up a terminal connected to my PC?
6.1 Hardware requirements
6.2 Setting up 'getty'
7. Can I use more than 2 serial ports?
8. Can Linux detect the serial devices automatically?
9. What numbers should my serial devices in /dev have?
9.1 Creating devices with the 'mknod' command
10. How should I configure my modem?
10.1 Dial out configuration
10.2 Dial in and out configuration
11. How can I hook up a printer to my serial port?
12. What are locks, and what are they for?
13. What are UARTs? How do they affect performance?
14. 'kermit': a quick start
15. Troubleshooting
15.1 I keep getting "line XXX of inittab invalid"
15.2 When I try to dial out, it says "/dev/cuaX: Device or
resource busy"
15.3 I keep getting "respawning too fast, disableing for 5 minutes"
15.4 I have a modem/terminal connected, but root can't login from
the serial device.
15.5 I have my terminal connected to my PC, but after I type in a
login name, it just locks up.
15.6 At high speeds, my modem looses characters, and my computer
gets really slow!
16. Contributions
===============================================================================
0. Introduction
This is the Linux SERIAL-HOWTO. This document is a rewrite of the
serial-FAQ. The serial-FAQ is out of date, and should no longer be
distributed.
This document describes the Linux serial drivers, and software
used for serial communications.
I will attempt to provide answers to a variety of serial questions
and common problems.
0.1 New versions of this document
New versions of this document can be retrieved via anonymous ftp from
sunsite.unc.edu:/pub/Linux/docs. It will also be posted to several
newsgroups, including comp.os.linux.announce.
0.2 Recommended reading
- man pages for:
init(1), getty(1), login(1)
gettydefs(4)
setserial(8)
- your modem manual
- "Managing UUCP and Usenet" by Tom O'Reilly and Grace Todino,
(highly recommended by nearly everyone)
- Other HOWTOs: UUCP-HOWTO, Printing-HOWTO
0.3 Feedback
Please send me any comments, suggestions, or additional material you
have. I'm always eager to hear about what you think about the HOWTO.
I'm also always on the lookout for improvements! But, please don't
just tell me "it sucks". Tell me what exactly you don't understand,
or what could be clearer.
If you find any wrong information, please contact me ASAP.
0.4 Disclaimer
Your milage may vary. The answers given may not work for all systems
and all setup combinations.
1. Supported serial hardware
Linux supports standard PC serial boards, internal modems, and a number
of multiport serial boards, including the Usenet Serial Board II, the
Boca 4-port (BB-1004), 8-port (BB-1008), and 16-port (BB-2016) boards,
and AST FourPort boards and clones. In general, Linux will support any
serial board which uses a 8250, 16450, 16550, or 16550A (or compatible)
UART, and assignes the UART registers to a contiguous block of 8 I/O
ports on the 386/486.
Linux does not support any intelligent serial ports, nor is it likely
that it will in the future.
The Usenet Serial Board II is available from:
South Coast Computing Services, Inc.
phone +1 713 661 3301
email info@sccsi.com
2. How are serial devices named?
There are 4 serial devices corresponding to COM1 - COM4, /dev/cua0 -
/dev/cua3 and /dev/ttyS0 - /dev/ttyS3. The /dev/ttyS* devices are for
dialin and /dev/cua* devices for dialout.
On some installations, two extra devices will be created, /dev/modem
for your modem and /dev/mouse for your mouse. Both of these are
symbolic links to the appropriate /dev/cua* device which you specified
during the installation (unless you have a bus mouse, then /dev/mouse
will point to the bus mouse device).
There has been some discussion on the merits of /dev/mouse and
/dev/modem. I prefer using the "real" device names, and not the
symbolic links. It just seems less confusing to me. Use them if you
like, but make sure they point to the right device.
On the other hand, if you use the links, and they point to the correct
devices, using /dev/modem may be simpler for some people. It's really
up to you what you use.
3. What is 'getty_ps 2.0.7b'?
This is just another version of 'getty', which is a program that handles
some of the login process when you log in to a UNIX box. This version
is better than the stock 'getty' that comes with most recent Linux
distributions. It was written by Paul Sutcliffe, Jr.
<paul@devon.lns.pa.us>. 2.0.7b is the latest version, and supercedes
any older versions. If you do not have this version of 'getty', I
highly recommend that you get it. It can be found on the standard
Linux ftp sites.
3.1 Installation
Get the package from an ftp sites, and install according to the
instructions.
Users of SLS 1.0.1/1.0.2 should be very carefull because there might
be two versions of 'getty_ps' lurking on your disks! The default one
is 2.0.4 and the non-default one is 2.0.7b. Make sure you use the
right one.
Be sure that the new 'getty_ps' works correctly *before* you remove all
the other stuff! I recommend changing one of your virtual console
lines from:
c2:23456:respawn:/etc/getty tty2
to:
c2:23456:respawn:/etc/getty_ps tty2 VC console
Put this line in your /etc/gettydefs:
VC# B9600 SANE CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #VC
and restart 'init':
yourbox# init q (for poegil init, use "kill -HUP 1")
If you can log in with 'getty_ps', it's working. Move 'getty_ps' to
'getty', or link it. Be sure to update your /etc/inittab to correctly
invoke the new 'getty'. 'getty_ps' can handle the stock 'getty's
syntax.
Once you have installed it, and are certain it is working, you can
remove any other versions of 'getty' you have. Be sure to check in
/bin, /etc, /usr/bin, /usr/etc, /usr/man/man1, and /usr/man/cat1 for
any thing called "getty" - there are old versions lurking everywhere...
Also, you can safely remove the old config file /etc/gettytab - you
only need /etc/gettydefs.
3.2 Customizing 'getty'
There are lots of parameters you can tweak for each port you have.
These are implemented in seperate config files for each port (if you
want). I'm not convinced you need them at all. Mine works fine without
them. In general you should only need them to implement setups for
unusual situations. You might consider using the ALTLOCK option, to
be sure that all locks are checked properly. Here are a couple of
/etc/default sample files - note the /etc/default/getty will be used
by *all* instances of 'getty', and that /etc/default/getty.tty* will
only be used by that one port.
/etc/default/getty:
SYSTEM=<systemname>
VERSION=/proc/version
LOGIN=/bin/login
ISSUE=/ etc/issue
CLEAR=NO
HANGUP=YES
/etc/default/getty.ttySX:
SYSTEM=<systemname>
VERSION=/proc/version
LOGIN=/bin/login
ISSUE=/etc/issue
CLEAR=NO
HANGUP=YES
INIT="" ATZ\r OK
TIMEOUT=60
WAITFOR=RING
CONNECT="" ATA\r CONNECT \s\A
ALTLINE=cuaX
/etc/default/uugetty.ttySX:
ALTLOCK=cuaX
TIMEOUT=60
INIT="" ATZ\r OK
DELAY=1
CLEAR=NO
/etc/default/uugetty.ttySX:
SYSTEM=<systemname>
VERSION=/proc/version
LOGIN=/bin/login
ISSUE=/etc/issue
CLEAR=NO
HANGUP=YES
INIT="" ATZ1\r
ALTLINE=cuaX
ALTLOCK=cuaX
INITLINE=cuaX
TIMEOUT=60
4. How do I dial out with my modem?
4.1 Hardware requirements
First, make sure you have the right hardware. You probably want to
hook the modem to the DB25 pin port on your PC. This requires a
straight through cable, with no pins crossed. (The 9 pin port works
nicely for a mouse, since most serial mice already have a DB9
connector.)
For an internal modem, you will not need a modem cable. Be sure to
set the interrupt to something that is not being used.
4.2 Connecting to your modem
For now, make sure that nothing is using that port. Check to see if
there is a 'getty' watching it, or it is not locked by anything else.
If there is a 'getty' process, check your /etc/inittab file for entries
using your serial port. Comment the line out (with "#"), and restart
'init'. Do not comment any lines that contain a tty* device, only
ones containing ttyS* or cua*. tty* are your virtual consoles.
Use 'kermit' to test the setup. You should set your line to
/dev/cua*, and the speed to the highest speed your modem can handle.
Try dialing out, or talking to the modem. If you are properly connected
your modem should respond to "AT" commands. If you say "AT" to your
modem, it should respond with "OK". Once you are sure that the modem
is functional, you can use more complex programs, like 'Seyon', or
'xconn'.
5. How do I dial in and out with my modem?
Get your modem to dial out correctly.
Replace the stock 'getty' with 'getty_ps' as described in HOWTO section
2. Update /etc/gettydefs to include entries for modems:
(note that the entries point to each other, these are not for fixed
speed)
# Modem entries
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600
9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400
2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #1200
1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #300
300# B300 CS8 # B300 SANE -ISTRIP HUPCL #@S @L @B login: #38400
If you have a 9600 bps or faster modem with flow control, you can lock
your serial port speed and let the modem handle the translation to
other bps rates. Then, instead of the step down series of lines listed
below, /etc/gettydefs only needs to contain one line for the modem:
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S login: #38400
or
19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S login: #19200
If you have your modem set up to do RTS/CTS hardware flow control, you
can add CRTSCTS to the entries.
Next, make sure that you have a dialin and dialout device for the port
and your modem is on. If you have your modem on /dev/cua1, you will
need a device called /dev/ttyS1. If you don't have the correct devices,
see the question on how to create devices, and create the devices.
Edit your /etc/inittab, so that 'getty' is run on your serial port:
Add the following line:
S1:456:respawn:/etc/getty ttyS1 38400
( ^-- put your highest modem speed here)
Restart 'init':
yourbox# init q (for poegil init, use "kill -HUP 1")
Now Linux will be watching your serial port for connections.
Dial in from another site and log in to you Linux system. Rejoice.
5.1 Note for UUCP users
For sites with UUCP feeds, you probably want to use 'uu_getty', instead
of plain 'getty'. It's designed for use with UUCP. Look at the README
for it for exact differences. Most importantly, it checks the lock
files that UUCP creates.
6. How do I set up a terminal connected to my PC.
6.1 Hardware requirements
Make sure you have the right kind of cable! A null modem cable bought
at a computer store should do it. At a minimum, you should have:
2 - 3
3 - 2
7 - 7
20 - 20
If that doesn't work, try the following (a full null modem cable):
2 - 3 Pin names:
3 - 2 1 Frame Ground
4 - 5 2 TxD
5 - 4 3 RxD
6 - 20 4 RTS
7 - 7 5 CTS
8 - 20 6 DSR
20 - 6 7 Signal Ground
20 - 8 8 DCD
20 DTR
You will need pins 4 and 5 if you want to do any kind of hardware flow
control.
Connect your terminal to your computer. If you can, tell you terminal
to ignore modem control signals. Try using 9600 bps, 8 data bits, 1
stop bit, no parity bits.
6.2 Setting up 'getty'
Replace the stock 'getty' with 'getty_ps' as described in section 2.
Add an entry for 'getty' to use for your terminal in /etc/gettydefs.
Mine looks like this:
# 9600 baud Dumb Terminal entry
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login:
#DT9600
(the above should all be on one line)
You might add HUPCL so the login is killed whenever you switch of
the terminal (provided you use a proper null-modem cable).
Edit your /etc/inittab file to run getty on the serial port. Mine
looks like this:
S1:456:respawn:/etc/getty ttyS1 DT9600 vt100
restart 'init'
yourbox# init q (for poegil init, use "kill -HUP 1")
At this point, you should see a login prompt on your terminal. Rejoice.
Party. Log in on your terminal and PC. 'talk' to yourself from
accross the room.
7. Can I use more than 2 serial ports? Can I use a modem, a terminal,
and my mouse?
That depends. The number of serial ports you can use is limited by the
number of interrupts (IRQ) we have to use. Each serial devices must
be assigned it's own interrupt. On a PC, each serial port counts as a
device. However, there are specially designed multiport serial cards
which have multiple serial ports on one device. (For those of you who
are hardware minded, all it means that is that there is a OR gate
combining all of the IRQ outputs from each serial port.)
Your PC will normally come with COM1 and COM3 at IRQ 4, and COM2 and
COM4 at IRQ 3. To use more than 2 serial devices, you will have to
give up an interrupt to use. A good choice is to reassign an interrupt
from your parallel port. Your PC normally comes with IRQ 5 and IRQ 7
set up as interrupts for your parallel ports, but few people use 2
parallel ports. You can reassign one of the interrupts to a serial
device, and still happily use your parallel port. You will need the
'setserial' program to do this. In addition, you have to play with the
jumpers on your boards.
You will need to set things up so that there is one, and only one
interrupt for each serial device. Here is how I set mine up (in
/etc/rc.local - you should do it upon startup somewhere):
/etc/setserial /dev/cua0 irq 3 # mouse
/etc/setserial /dev/cua1 irq 4 # terminal
/etc/setserial /dev/cua2 irq 5 # modem
/etc/setserial /dev/cua3 irq 9 # modem
# my printer is hooked up on my parallel port IRQ 7 - no change
The problem is that all of the bus lines on the ISA bus are
electrically connected together, in parallel, and all of the bus lines
are driven by TTL gates. If there are two devices simultaneously
trying to drive an IRQ line, they end up "fighting" over that line.
You get undefined behavior when one of the TTL gates is trying to drive
the IRQ line low, and the other TTL gate is trying to drive the IRQ
line high. Usually one of the gates will consistently win, with the
net result that the computer will only see interrupts from one of the
serial devices --- but this is not guaranteed; there may be very
erratic behavior as a result.
Standard IRQ assignments:
IRQ 0 Timer channel 0
IRQ 1 Keyboard
IRQ 2 Cascade for controller 2
IRQ 3 Serial port 2
IRQ 4 Serial port 1
IRQ 5 Parallel port 2 (Reserved in PS/2)
IRQ 6 Floppy diskette
IRQ 7 Parallel port 1
IRQ 8 Real-time clock
IRQ 9 Redirected to IRQ2
IRQ 10 Reserved
IRQ 11 Reserved
IRQ 12 Reserved (Auxillary device in PS/2)
IRQ 13 Math coprocessor
IRQ 14 Hard disk controller
IRQ 15 Reserved
There is really no Right Thing to do when choosing interrupts. Just
make sure it isn't being used. 5 is a good choice. If 5 is also
taken, I suggest 2 (which is the same as 9).
8. Can Linux detect the serial devices automatically?
Yes. To get Linux to detect and set up the serial devices automatically
on startup, add the line:
#define CONFIG_AUTO_IRQ
to /usr/src/linux/chr_drv/serial.c (look for where the other #defines
are).
You'll have to recompile your kernel.
9. What numbers should my serial devices in /dev have?
The recommended convention is:
/dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64
/dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65
/dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66
/dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67
9.1 Creating devices with the 'mknod' command
If you don't have a device, you will have to create it with the 'mknod'
command.
Example, suppose you needed to create devices for cua0 (COM1):
yourbox# mknod /dev/cua0 c 5 64
yourbox# mknod /dev/ttyS0 c 4 64
Note that all distributions should come with the correct devices
already made.
10. How should I configure my modem?
Modems have several registers you can change to your liking.
You'll have to get your modem connected before you try to set registers.
Consult your modem manual for more detail on registers.
10.1 Dial out configuration
For dial out use only, configure it however you want.
I like to see result codes, so I set Q0. I also like to see what I'm
typing, so I set E1.
10.2 Dial in and out configuration
For dial in and dial out use, you have to set it up a certain way.
Here is what you have to set: (preceed each register with the AT
command - ie ATE0, etc...)
E0 Command echo OFF
Q1 NO result codes are reported
If you don't shut up the modem completely, it will talk to 'getty'.
'getty' will think someone is trying to log in, and will spawn 'login'.
This will cause all sorts of confusion. Not setting these correctly
will probably cause the dreaded "respawning to fast" message.
&C1 DCD is on after connect *only*
If DCD is always on, there will always be a connection, and 'getty'
will try to log people in. Not setting this can cause "device busy"
errors.
Other things you should set:
&S0 DSR is always on
&D3 DTR on/off resets modem
enable your data compression (setting depend on modem manufacturer,
consult your modem manual)
autobaud (same applies here)
11. How can I hook up a printer to my serial port?
The answer to this question can be found in the Printing-HOWTO. It is
available on both tsx-11.mit.edu, and sunsite.unc.edu. There
may be more than one of these around. Look for the one maintained by
Brian McCauley <b.a.mccauley@bhan.ac.uk>.
12. What are locks, and what are they for?
Locks are simply a file saying that a particular device is in use.
They are kept in /usr/spool/uucp. Locks are named LCK..<name>, where
<name> is either a device name, or a UUCP site name. Certain processes
create these locks so that they can have exclusive access to devices,
for instance if you dial out on your modem, a lock will appear telling
other processes that someone is using the modem already. Locks mainly
contain the PID of the process that has locked the device. Most
programs look at the lock, and try to determine if that lock is still
valid by checking the process table for the process that has locked
the device. If the lock is found to be valid, the program should exit.
If not, some programs remove the stale lock, and use the device,
creating their own lock in the process.
13. What are UARTs? How do they affect performance?
UARTs (Universal Asyncronous Receiver Transmitter) are chips inside
your communication devices (terminal, PC). There is one on each end.
Their purpose is to convert characters to bits, send it down the line,
and then rebuild characters again on the other end. The UARTs are
asyncronous devices, bacause the time interval between transmission of
characters is not fixed.
Say you have a terminal hooked up to your PC. When you type a
character, the terminal presents it to it's UART. The UART shifts
that character (a byte) out onto the serial line one bit at at time,
at a specific rate. Hence, we have the rates 110, 300, 1200, 2400,
... bits/sec (bps). This is simple a measure of how fast the UART is
sending bits. On the other end, the receiving UART takes all the bits
and rebuilds the character (byte).
There are several different types of UARTs. You have probably heard of
dumb UARTs - the 8250 and 16450, and smart or FIFO UARTs - the 16550A.
To understand their differences, first let's examine what happens when
a UART has received a character.
The UART itself can't do anything with the character, it just sends and
receives them. The CPU gets an interrupt ever time a character is done
(receiving or sending). The CPU then moves that character out of the
UART and into memory somewhere. The 8250 and 16450 UARTs only have a
1 character buffer. That means, that every time a character is done,
it interrupts the CPU. At low rates, this is OK. But, at high transfer
rates, the CPU get so busy dealing with the UART, that is doesn't have
time to tend to other tasks. In some cases, the CPU does not get
around to servicing the interrupt in time, and the character is
overwritten.
That's where the 16550A UARTs come in. These chips come with 16
character FIFOs. This means that it can receive or transmit up to 16
characters before it has to interrupt the CPU. Not only can it wait,
but the CPU then can transfer all 16 characters at a time. This is a
significant advantage over the other UARTs, which only have the 1
character buffer. The CPU receives significantly less interrupts, and
is free to do other things.
In general, the 8250 and 16450 UARTs should be fine for speeds up to
19200 bps. After 19200, you might start seeing character losses, and a
reduction in computing speed.
Keep in mind that these dumb UART types are not bad, or harmful, they
just aren't good for high speeds. You should have no problem connecting
a terminal, or a mouse to these UARTs. But, for a high speed modem,
the 16550A is definately a must.
You can buy serial cards with the FIFO UARTs for a little more money,
just ask your dealer what type of UART is on the card. Or if you want
to upgrade your existing card, you can simply purchase 16550A chips and
replace your existing 16450 UARTs. They are pin-to-pin compatible.
Some cards come with socketed UARTs for this purpose, if not you can
solder. Note, that you'll probably save yourself a lot of trouble by
just getting a new card :-).
14. 'kermit': a quick start.
'kermit' is one of the many communications programs available to you.
It has been ported to nearly ever platform imaginable.
If you are a beginning user, 'kermit' is a simple way to start using
your modem.
Fire up 'kermit' by typing "kermit". You'll need to set a few basic
things up before you can use your modem. You can keep these commands
in $HOME/.kermrc so you don't have to type them every time. Here is my
.kermrc as an example. You'll have to adjust things to fit your setup.
set line /dev/cua3 # serial device you want to use
set modem v42-telebit # which type of modem you are using
set speed 38400 # speed
At this point, you can just type "c" to connect to your modem, and dial
manually with "at" commands. Or, from the kermit> prompt, you can use
the "dial" command.
If you want to use the zmodem file transfer protocol, you can include:
define rz !rz </dev/cua3 >/dev/cua3
define sz !sz \%0 >/dev/cua3 </dev/cua3
in your .kermrc (be sure to put in your correct devices).
This has been a really quick intro, for more info on 'kermit', RTFM.
15. Troubleshooting:
15.1 I keep getting "line XXX of inittab invalid"
Make sure you are using the correct syntax for your version of 'init'.
The different 'init's that are out there use different syntax in the
/etc/inittab file. Make sure you are using the correct syntax for your
version of 'getty'.
15.2 When I try to dial out, it says "/dev/cuaX: Device or resource busy"
This is one of the most frequent errors people get. It can happen for
a variety of reasons. If you followed the instructions carefully, this
should not happen, so double check to make sure you did everything
right.
This problem usually arrises when DCD is not set correctly. DCD should
only be set when there is an actual connection (ie someone is dialed
in), not when 'getty' is watching the port. When 'getty' sees DCD get
set, it will lock the port and probably spawn 'login'. Check to make
sure that your modem is configured to only set DCD when there is a
connection. DTR and RTS should be set whenever something is using, or
watching the line, like 'getty', 'kermit', or some other comm program.
Another common cause of "device busy" errors, is that you set up your
serial port with an interrupt already taken by something else. As each
device initializes, it asks Linux for permission to use its hardware
interrupt.
Linux keeps track of which interrupt is assigned to whom, and if your
interrupt is already taken, your device won't be able to initialize
properly. The device really doesn't have much of any way to tell you
that this happened, except that when you try to use it, it will return
a device-busy error.
A fix for this may be to remake the kernel, after doing "make config",
and answering "no" to all the devices that you don't actually have.
If they're compiled in, the software for these devices may be grabbing
your interrupt, even though the physical device does not exist. Also,
you can search through the source and include files. For example,
"grep IRQ /usr/src/linux/include/linux/*" yields a
"#define MOUSE_IRQ 5" line in busmouse.h. Another good place to look
is in /usr/src/linux/net/tcp/Space.c.
You might experience problems when you use the WAITFOR or WAITCHAR
options in your /etc/defaults/getty.whatever file. Try taking them out.
15.3 I keep getting "respawning too fast, disableing for 5 minutes".
Make sure your modem is configured correctly. Look at registers E and
Q. This usually occurs when your modem is chatting with 'getty'.
15.4 I have a modem/terminal connected, but root can't login from the serial
device.
This is done on purpose for security reasons. Generally, you should
only have root logins enabled on the console. It is considered
dangerous to allow root logins on anything other than the console.
But, you asked... Edit /etc/login.defs, and find the line that says
CONSOLE. Add the name of the serial device to it. Say I have my
terminal on /dev/ttyS1. I would change the line:
CONSOLE tty1:tty2:tty3:tty4:tty5:tty6:tty8
to
CONSOLE tty1:tty2:tty3:tty4:tty5:tty6:tty8:ttyS1
15.5 I have my terminal connected to my PC, but after I type in a login name,
it just locks up.
You probably don't have CLOCAL in your /etc/gettydefs entry for the
terminal. You need CLOCAL. Here is what it should look like:
# 9600 baud Dumb Terminal entry
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login:
#DT9600
Next, "kill -HUP" the 'getty' process to make it read the entry again.
15.6 At high speeds, my modem looses characters, and my computer gets really
slow!
If you are trying to run your modem at > 19200 bps, and you don't have
16550A UARTs, you should upgrade them. See the section about UARTs.
16. Contributions
There was no possible way to write this HOWTO alone. Much of the
material is repeated verbatim from the original sources.
Contributions, ideas, suggestions, and material:
(in alphabetical order)
Brandon S. Allbery <bsa@kf8nh.wariat.org>
Karl Buck <kxb@cis.ksu.edu>
Bryan Curnutt <bryan%uhura1@uunet.uu.net>
Arthur Donkers <arthur%ptt-iat@nluug.nl>
Karlheinz Hagen <kalle@dg8lav.toppoint.de>
Michael Hamilton <hamilton@golem.wcc.govt.nz>
Wayne Hayes <wayne@csri.toronto.edu>
John Henders <jhenders@jonh.wimsey.bc.ca>
Ed Carp <erc@apple.com>
Cheng Chang Huang <huangch@cps.msu.edu>
Camillus Jayewardena <jayeward@abs.ascom.ch>
Jerry Kaidor <jkaidor@synoptics.com>
Juha Laiho <jlaiho@ichaos.nullnet.fi>
Bambang N. Prastowo <prastowo@qucis.queensu.ca>
Mark Schwabacher <schwabac@yoko.rutgers.edu>
Andrew Tefft <teffta@engr.dnet.ge.com>
Theodore Ts'o <tytso@Athena.MIT.EDU>
END OF SERIAL-HOWTO

View File

@@ -0,0 +1,635 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help
From: tranter@software.mitel.com (Jeff Tranter)
Subject: Linux Sound HOWTO
Keywords: Linux, HOWTO, sound, multimedia, hardware
Summary: Sound hardware and software for the Linux operating system
Organization: none
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/sound
Last-modified: 1 Feb 94
The Linux Sound HOWTO
by Jeff Tranter, <tranter@software.mitel.com>
v1.2, Last Modified 1 February 1994
---------------------------------------------------------------------------
INDEX
0 Introduction
0.1 Acknowledgments
0.2 New versions of this document
0.3 Feedback
0.4 Other sources of information
0.5 Version Information
1 Supported Sound Hardware
1.1 Sound Cards
1.2 PC Speaker
1.3 Parallel Port
2 Configuring Linux for Sound Support
2.1 Installing Sound Card
2.2 Configuring Kernel
2.4 Creating Device Files
2.4 Testing Configuration
3 Applications Supporting Sound
3.1 Tools and Utilities
3.2 Games
4 Answers To Frequently Asked Questions
------------------------------------------------------------------------
0 Introduction
This HOWTO document describes sound support for Linux -- how to
configure the kernel, what applications run under Linux that support
sound, and answers to frequently asked questions about sound
cards. The intent is to bring new users up to speed more quickly and
reduce the amount of traffic in the usenet news groups.
The scope is limited to the aspects of sound cards pertaining to
Linux. See the other documents listed in section 0.4 for more
general information on sound cards.
0.1 Acknowledgments
Much of this information came from the Readme files provided with the
sound driver source code, by Hannu Savolainen. Thanks go to Hannu and
the many other people who developed the Linux kernel sound drivers and
utilities.
0.2 New versions of this document
New versions of this document will be periodically posted to
comp.os.linux.announce. They will also be uploaded to the various
anonymous ftp sites that archive such information including
sunsite.unc.edu:/pub/Linux/docs/HOWTO.
0.3 Feedback
If you have and suggestions, corrections, or comments on the HOWTO,
please send them to the author and I will try to incorporate them in
the next release.
0.4 Other sources of information
The following FAQs are regularly posted to the usenet newsgroup
news.announce as well as being archived at the site rtfm.mit.edu in
the directory /pub/usenet/news.answers:
PCsoundcards/generic-faq Generic PC Soundcard FAQ
PCsoundcards/soundcard-faq comp.sys.ibm.pc.soundcard FAQ
PCsoundcards/gravis-ultrasound/faq Gravis Ultrasound FAQ
audio_fmts/part1 Audio file format descriptions
audio_fmts/part2 Audio file format descriptions
These FAQs also list several product specific mailing lists and
archive sites.
The following Usenet news groups discuss sound and/or music related
issues:
alt.binaries.sounds.misc Digitized sounds and software
alt.binaries.sounds.d Discussion and follow-up group
alt.binaries.multimedia Multimedia sounds and software
alt.sb.programmer Soundblaster programming topics
comp.multimedia Multimedia topics
comp.music Computer music theory and research
comp.sys.ibm.pc.soundcard IBM PC soundcard topics
The Linux Activists mailing list has a SOUND channel. To find out how
to join the mailing list, send mail to
"linux-activists-request@joker.cs.hut.fi".
The Readme files included with the kernel sound driver source code
contain useful information about the sound card drivers. These can
typically be found in the directory "/usr/src/linux/drivers/sound".
The Linux Software Map (LSM) is an invaluable reference for locating
Linux software. Searching the LSM for keywords such as "sound" is a
good way to identify applications related to sound hardware. The LSM
can be found on various anonymous FTP sites, including
sunsite.unc.edu:/pub/Linux/docs/LSM.gz
0.5 Version Information
At time of writing, the latest Linux sound driver was version 2.4,
and was included as part of the Linux kernel version 0.99 ALPHA-pl14t
and later.
------------------------------------------------------------------------
1 Supported Sound Hardware
1.1 Sound Cards
The following sound cards are supported by the Linux kernel:
- MPU-401 MIDI interface
- AdLib
- SoundBlaster (1.0-2.0) and compatibles, including ThunderBoard and Ati
Stereo F/X.
- SoundBlaster Pro and SoundBlaster Pro 2
- SoundBlaster 16 (this is a BETA test version)
- ProAudioSpectrum 16 (The original ProAudioSpectrum and the
ProAudioSpectrum+ are not supported and will probably remain
unsupported)
- Gravis UltraSound
The Linux kernel supports the SCSI port provided on some sound cards
(e.g. ProAudioSpectrum 16).
The Linux kernel version 0.99pl14x and later has support for CD-ROM
drives attached to the Soundblaster Pro and SoundBlaster 16 CD-ROM
port. The drivers can also be added to earlier kernels as a
patch. Check the Linux Software Map for "sbpcd".
A Kernel patch to support joystick ports, including those provided on
some sound cards, is also available. The latest version can be found
in tsx-11.mit.edu:/pub/linux/patches/joystick-0.5.tar.z (these patches
may not apply cleanly as they were written for the 0.99pl9 kernel).
1.2 PC Speaker
An alternate sound driver is available that requires no additional
sound hardware; it uses the internal PC speaker. It is mostly software
compatible with the sound card driver, but, as you might expect,
provides much lower quality output and has much more CPU overhead. The
results seem to vary, being dependent on the characteristics of the
loudspeaker.
For more information, see the documentation provided with the
release.
The current version is 0.4, and can be found at
ftp.informatik.hu-berlin.de:pub/os/linux/hu-sound/pcsndrv-0.4.tar.z as
well as many other Linux archive sites.
1.3 Parallel Port
Another option it to build a digital to analog converter using the
parallel port. This provides better sound quality but still has a lot
of CPU overhead. The PC sound driver package mentioned above supports
this, and includes instructions for building the necessary hardware.
------------------------------------------------------------------------
2 Configuring Linux for Sound Support
Configuring Linux to support sound involves the following steps:
- installing a sound card
- configuring and building the kernel for sound support
- creating the device files
- testing the installation
2.1 Installing Sound Card
Follow the instructions provided with your sound card. Be sure to note
down the jumper settings for IRQ, DMA channel, etc... If you are
unsure, use the factory defaults. Try to avoid conflicts with other
devices (e.g. ethernet cards) if possible.
2.2 Configuring Kernel
If you are using a recent kernel (0.99pl14 or later), the sound
drivers are included with the kernel release. Follow the usual
procedure for building the kernel. When you run "make config", a
configuration program will ask you what sound card options you want.
If you are upgrading from an older sound driver, remove any old copies
of /usr/include/sys/soundcard.h and /usr/include/sys/ultrasound.h (if
they exist). Then make sure that /usr/include/sys/soundcard.h is a
file containing just the line #include <linux/soundcard.h> and
/usr/include/sys/ultrasound.h is a file containing just the line
#include <linux/ultrasound.h>.
It's good idea to read the Readme* files in the kernel drivers/sound
directory since there could be some last minute information. The file
CHANGELOG contains a list of enhancements and new features since the
previous version.
2.4 Create Device Files
Once the kernel is configured, you need to create the sound device
files. The easiest way to do this is to cut the short shell script
from the end of the file /usr/src/linux/drivers/sound/Readme.linux,
and run it as root.
2.4 Testing Configuration
You can now follow these steps to verify the sound hardware and
software:
1. Reboot with the new kernel
Follow your usual procedure for installing and rebooting the new
kernel (keep the old kernel around in case of problems, of course).
2. Verify that sound card is recognized during kernel initialization
Check for a message such as the following on powerup:
<6>snd2 <SoundBlaster Pro 3.2> at 0x220 irq 5 drq 1
<6>snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0
This should match your sound card type and jumper settings.
The driver may also display some error messages and warnings during
boot. Watch for these when booting the first time after configuring
the sound driver.
If no sound card is detected when booting, there are two possible
reasons:
1) The configuration of the driver is incorrect and the driver was not
able to detect your card in the given I/O address, or
2) The sound driver was configured to be inactive or you booted with an
old kernel (a common error).
3. Check device file /dev/sndstat
Reading the sound driver status device file should provide additional
information on whether the sound card driver initialized
properly. Sample output should look something like this:
% cat /dev/sdndstat
Sound Driver:2.3b (Tue Jan 4 18:14:00 EST 1994 root@fizzbin.)
Config options: 1aa2
HW config:
Type 2: SoundBlaster at 0x220 irq 5 drq 1
Type 1: AdLib at 0x388 irq 0 drq 0
PCM devices:
0: SoundBlaster Pro 3.2
Synth devices:
0: Yamaha OPL-3
Midi devices:
0: SoundBlaster
Mixer(s) installed
If the cat command displays "No such device", the sound driver is not
active in the kernel.
If the printout contains no devices (PCM, Synth or MIDI), your
soundcard was not detected. Verify that the "HW config" section
contains correct information.
4. Play a simple sound file
Get hold of a sample sound file, and send it to the sound device as
a basic check of sound output, e.g.
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
Some sample sound files can be obtained from the file
snd-data-0.1.tar.Z
5. Verify sound recording
If you have sound input capability, you can do a quick test of this
using commands such as the following:
# record 4 seconds of audio from microphone
% dd bs=8k count=4 </dev/audio >sample.au
# play back sound
% cat sample.au >/dev/audio
If these tests pass, you can be reasonably confident that the sound
hardware and software are working. If you experience problems, read
section 4 of this document.
------------------------------------------------------------------------
3 Applications Supporting Sound
This section lists a sampling of some of the more important tools,
utilities, and games that run under Linux and support sound. The Linux
Software Map should be consulted for the latest version and archive
sites for these files.
3.1 Tools and Utilities
adagio
- adagio score file player ("ad")
- MIDI file player ("mp")
- includes XView GUI version ("xmp")
- "mp" also has limited ability to play Amiga mod files
aumix
- ncurses based (colour) utility for controlling volume and mixing of
sound sources
- also an experimental dB level meter
auplay
- a standalone program that allows playing Sun .au files through PC
speaker without any kernel support
- this was the precursor to the PC speaker sound driver package
(pcsndrv)
glib
- FM synthesizer library and patch editor ("glib")
- "xgl" is an OpenLook GUI version of "glib"
- contains some documentation on programming AdLib/SoundBlaster FM
music chips
lsox
- sound file conversion utility ("sox")
- read/writes many sound formats
- provides conversion and effects
- also supports playing sound files ("play")
ogi
- speech data manipulation tools
pcsndrv
- kernel sound driver that supports PC speaker
- mostly compatible with kernel sound card driver
- also supports printer parallel port D/A converter
- "pcsel" utility to select which sound device to use
- "vplay" and "vrec" for playing and recording sound files
- includes explanation of how PC sound driver works
rsynth
- speech synthesizer uses synthesized instead of sampled
phonemes
- good quality speech (with a British accent), but slow on a machine
without a math coprocessor (e.g. 3 minutes to generate 4 words)
snd-data-0.1
- various sound files (sampled sounds, mod files, patches, etc...)
snd-driv-2.0
- VoxWare kernel drivers for sound cards
- now included in Linux kernel distribution as of 0.99pl14
- only really needed if building for OS other than Linux
snd-util-2.3
- various sound utilities
- some of these are obsolete and replaced by Adagio, Tracker, etc...
speak
- speech synthesis program
- very crude (uses 42 fixed, sampled phonemes)
- somewhat entertaining
tracker
- Amiga mod file player ("tracker")
- command line interface only
wavplay
- plays .wav sound files ("play")
- Sox is probably better (supports more file types)
- also an X interface version ("xplay")
- to work with the latest sound driver, need to apply patch found in
wavplay021_patch.tar.gz
3.2 Games
The following games support sound:
b-dash
- a clone of B*ulderDash
- see sunsite:/pub/Linux/games/bdash021b.tgz
xboing
- "breakout" type arcade game
- see sunsite:/pub/Linux/X11/games/xboing-1.5-bin.tar.gz)
------------------------------------------------------------------------
4 Answers To Frequently Asked Questions
4.1 What are the various sound device files?
/dev/audio - Sun workstation compatible audio device (read/write)
(only a partial implementation, does not support Sun
ioctl interface, just u-law encoding)
/dev/dsp - digital sampling device (read/write)
/dev/mixer - sound mixer
/dev/sequencer - MIDI, FM, and GUS access
/dev/midi - MIDI device (not yet implemented in current sound driver)
/dev/sndstat - displays sound driver status when read
/dev/audio1 - for second sound card
/dev/dsp1 - for second sound card
The PC speaker driver provides the following devices:
/dev/pcaudio - equivalent to /dev/audio
/dev/pcsp - equivalent to /dev/dsp
/dev/pcmixer - equivalent to /dev/mixer
4.2 How can I play a sound sample?
Sun workstation (.au) sound files can be played by sending them to the
/dev/audio device. Raw samples can be send to /dev/dsp. Using a
program such as "play" is preferable, as it will recognize most file
types and set the sound card to the correct sampling rate, etc..
4.3 How can I record a sample?
Reading /dev/audio or /dev/dsp will return sampled data that can be
redirected to a file. A program such as "vrec" makes it easier to
control the sampling rate, duration, etc...
4.4 Can I have more than one sound card?
Up to two sound cards is supported. It's possible to install a
Gravis UltraSound or MPU-401 with a SoundBlaster, SoundBlaster Pro,
SoundBlaster16 or ProAudioSpectrum16. It's NOT possible to have a
ProAudioSpectrum16 and SoundBlaster at the same time (PAS16 has a SB
emulator in it). It's also not possible to have more than one card of
the same type at the same time -- for example, a GUS + GUS combination
is not possible.
You can change the sound card configuration parameters at boot time
using command line options from a boot loader such as LILO. See the
kernel sound driver file Readme.linux for details.
4.5 I get the error "/dev/???????: No such file or directory" when
accessing a sound device.
You need to create the sound driver device files. See section 2.4.
4.6 I get the error "/dev/???????: No such device" when accessing a
sound device.
You have not booted with a kernel containing the sound driver or the
I/O address configuration doesn't match your hardware.
4.7 A sound sample plays for a second and then stops completely and/or
reports an error message about missing IRQ or "DMA Timed out".
You have incorrect IRQ or DMA channel settings. Verify that the kernel
configuration matches the sound card jumper settings and that they do
not conflict with some other card.
4.8 There are pauses in the playback of the module player (str,
tracker)
Playing mod files requires considerable CPU power. You may have too
many processes running or your computer may be too slow to play in
real time. Your options are to:
- try playing with a lower sampling rate or in mono mode
- eliminate other processes
- buy a faster computer
- buy a more powerful sound card (e.g. Gravis Ultrasound)
Sometimes (very rarely) an IRQ conflict can cause similar problems
with SoundBlaster cards.
4.9 I get compile errors when compiling applications that support
sound.
The version 1.0c and earlier sound driver used a different and
incompatible ioctl() scheme. Obtain newer source code or make the
necessary changes to adapt it to the new sound driver. See the sound
driver Readme file for details.
Also ensure that you have used the latest version of soundcard.h (and
ultrasound.h) when compiling the application. See the installation
instructions at beginning of this text.
4.10 I get segmentation violations when running sound application
binaries that worked previously
This is probably the same problem described in section 4.8.
4.11 I have problems with Tracker 3.10
Version 3.10 of tracker contains some bugs. Try to obtain version 3.19
from an archive site, or wait until version 4.0 is out.
4.12 What known bugs or limitations are there in the sound driver?
See the Readme and CHANGELOG files included with the sound driver
kernel source.
4.13 What version of the sound driver I should use?
If you are using version 1.0c or earlier, you definitely need to
upgrade. Version 1.0c is not compatible with the applications written
for version 2.0 or later.
There have been no significant changes after version 2.0, so if you
don't have problems and that particular version fulfills your
requirements, there are no compelling reasons to move to a more recent
version (this should be true at least until September 1994).
The latest official version is in the latest Linux kernel
distribution. There may also be some test and prototype versions
lying around. If the version number is smaller than 2.9, the version
should be quite safe. Any driver release having a version number of
the form 2.99.XX is an incompletely implemented and experimental test
release.
If you are interested about development of the sound driver, join the
SOUND channel (see section 0.4).
4.14 What do all the sound driver configuration options mean?
During configuration of the sound driver, a "configure" program is
compiled and executed. This program asks you some questions and then
generates the header file "local.h" that defines the sound card
configuration.
The configuration file local.h defines (or undefines) the following
symbols:
Symbol Meaning
====== =======
KERNEL_SOUNDCARD enable/disable sound driver
CONFIGURE_SOUNDCARD enable/disable sound driver
EXCLUDE_PAS ProAudioSpectrum support
EXCLUDE_SB SoundBlaster support
EXCLUDE_ADLIB AdLib support
EXCLUDE_GUS GravisUltrasound support
EXCLUDE_MPU401 MPU-401 MIDI interface support
EXCLUDE_SBPRO SoundBlaster Pro support
EXCLUDE_SB16 SoundBlaster 16 support
EXCLUDE_AUDIO Digitized voice support
EXCLUDE_MIDI MIDI interface support
EXCLUDE_YM3812 FM synthesizer (YM3812/OPL-3) support
EXCLUDE_SEQUENCER MIDI sequencer support
EXCLUDE_PRO_MIDI SoundBlaster Pro MIDI support
EXCLUDE_CHIP_MIDI MIDI on CHIP support
SBC_IRQ SoundBlaster IRQ number
SBC_DMA SoundBlaster DMA channel
SB16_DMA SoundBlaster 16 DMA channel
SB16_MIDI_BASE base address of SoundBlaster 16 MIDI port
PAS_IRQ ProAudioSpectrum IRQ number
PAS_DMA ProAudioSpectrum DMA channel
GUS_IRQ Gravis Ultrasound IRQ number
GUS_DMA GravisUltrasound DMA channel
GUS_BASE base address of GravisUltrasound
MPU_IRQ MPU-401 IRQ number
MPU_BASE base address of MPU-401 port
DSP_BUFFSIZE 32768 DMA buffer size
Several other defines are also created, defining such things as the
sound driver revision level and the time and date when configure was
run.
There are other parameters that are not set by the configure program
(e.g. SoundBlaster i/o base address). If you need to change these,
edit the file sound_config.h
To disable the sound driver, run configure and answer "y" to the
question "Do you want to DISABLE the Sound Driver (n/y) ?"
4.15 What future enhancements are planned for the sound driver?
The sound driver is not just for Linux, it also supports, or will
support, other Intel-based Unix operating systems. The package is now
called "VoxWare".
Some of the enhancements being considered are:
- implementing MIDI support
- patch manager support
- document sound card driver (Hacker's Guide)
- support for ISC, SCO, BSD, SVR4 operating systems
- support for new sound cards
- miscellaneous bug fixes
4.16 Where are the sound driver ioctls() etc... documented?
The sound driver is not currently documented, other than the Readme
and source files in the kernel. The interface to the kernel sound
drivers is defined in <linux/soundcard.h>.
For now you'll have to look at the source code for the sound drivers,
and/or other applications that use the sound card.
Hannu Savolainen is planning to write a Hacker's Guide to the sound
driver.
4.17 What CPU resources are needed to play or record without pauses?
There is no easy answer to this, as it depends on:
- whether using PCM sampling or FM synthesis
- sampling rate and sample size
- which application is used to play or record
- Sound Card hardware
- disk I/O rate, CPU clock speed, cache size, etc...
In general, any 386 machine should be able to play samples or FM
synthesized music on an 8 bit soundcard with ease.
Playing mod files, however, requires considerable CPU resources. Some
experimental measurements have shown that playing at 44kHz requires
more than 40% of the speed of a 486/50 and a 386/25 can hardly play
faster than 22 kHz. These are with an 8 bit card sound such as a
SoundBlaster. A card such as the Gravis Ultrasound card performs more
functions in hardware, and will require less CPU resources.
These statements assume the computer is not performing any other CPU
intensive tasks.
Converting sound files or adding effects using a utility such as Sox
is also much faster if you have a math coprocessor. The kernel driver
itself does not do any floating point calculations, though.

View File

@@ -0,0 +1,491 @@
From: vince@victrola.wa.com (Vince Skahan)
Reply-To: vince@victrola.wa.com (Vince Skahan)
Followup-To: poster
Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers
Subject: Linux UUCP HOWTO
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/uucp
Last modified: 26 January 1994
The Linux UUCP HOWTO
by Vince Skahan, <vince@victrola.wa.com>
v1.5, Last Modified 26 January 1994
---------------------------------------------------------------------------
This document describes the setup and care+feeding of UUCP under Linux.
You need to read this if you plan to connect to remote sites via UUCP
via a modem, via a direct-connection, or via Internet.
You probably do *not* need to read this document if don't talk UUCP.
0. Introduction
The intent of this document is to answer some of the questions and
comments that appear to meet the definition of 'frequently asked
questions' about UUCP software under Linux in general, and the
version in the Linux SLS distribution in particular.
This document and the corresponding Mail and News 'HOWTO' documents
collectively supersede the UUCP-NEWS-MAIL-FAQ that has previously
been posted to comp.os.linux.announce.
0.1 New versions of this document
New versions of this document will be periodically posted to
comp.os.linux.announce, comp.answers, and news.answers. They will
also be added to the various anonymous ftp sites who archive such
information including sunsite.unc.edu:/pub/Linux/docs/HOWTO.
0.2 Feedback
I am interested in any feedback, positive or negative, regarding
the content of this document via e-mail. Definitely contact me if
you find errors or obvious omissions.
I read, but do not necessarily respond to, all e-mail I receive.
Requests for enhancements will be considered and acted upon based on
that day's combination of available time, merit of the request, and
daily blood pressure :-)
Flames will quietly go to /dev/null so don't bother.
Feedback concerning the actual format of the document should go to
the HOWTO coordinator - Matt Welsh (mdw@sunsite.unc.edu).
0.3 Copyright Information
The UUCP-HOWTO is copyrighted (c)1994 Vince Skahan.
A verbatim copy may be reproduced or distributed in any medium physical
or electronic without permission of the author. Translations are
similarly permitted without express permission if it includes a notice
on who translated it.
Short quotes may be used without prior consent by the author.
Derivative work and partial distributions of the UUCP-HOWTO must be
accompanied with either a verbatim copy of this file or a pointer to
the verbatim copy.
Commercial redistribution is allowed and encouraged; however, the
author would like to be notified of any such distributions.
In short, we wish to promote dissemination of this information through
as many channels as possible. However, we do wish to retain copyright
on the HOWTO documents, and would like to be notified of any plans to
redistribute the HOWTOs.
We further want that ALL information provided in the HOWTOS is
disseminated. If you have questions, please contact Matt Welsh, the
Linux HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
0.4 Standard Disclaimer
Of course, I disavow any potential liability for the contents of this
document. Use of the concepts, examples, and/or other content of this
document is entirely at your own risk.
0.5 Other sources of information
USENET:
=======
comp.mail.uucp can answer most of your UUCP questions
Mailing Lists:
==============
There is a Taylor UUCP mailing list.
To join (or get off) the list, send mail to
taylor-uucp-request@gnu.ai.mit.edu
This request goes to a person, not to a program, so please
make sure that you include the address at which you want to
receive mail in the text of the message.
To send a message to the list, send it to
taylor-uucp@gnu.ai.mit.edu.
Books:
======
HDB and V2 versions of UUCP are documented in about every vendor's
documentation as well as in almost all *nix communications books.
Taylor config files are currently only documented in the info files
provided with the sources (and in the SLS distribution hopefully).
To read them, you can grab the nice 'infosrc' program from the
SLS 's' disks and compile it.
The following is a non-inclusive set of books that will help...
'Managing UUCP and USENET' from O'Reilly and Associates is in my
opinion the best book out there for figuring out the
programs and protocols involved in being a USENET site.
'Unix Communications' from The Waite Group contains a nice
description of all the pieces (and more) and how they fit
together.
'Practical Unix Security' from O'Reilly and Associates has a nice
discussion of how to secure UUCP in general.
'The Internet Complete Reference' from Osborne is a fine reference
book that explains the various services available on Internet and
is a great "one-stop-shopping" source for information on news, mail,
and various other Internet resources.
0.6 Where *NOT* to look for help
There is nothing 'special' about configuring and running UUCP under
Linux (any more). Accordingly, you almost certainly do *NOT* want
to be posting generic UUCP-related questions to the comp.os.linux.*
newsgroups.
Unless your posting is truly Linux-specific (ie, "please tell me
what config file support is built into the binaries for Taylor
uucp v1.04 in SLS v1.02"), you should be asking your questions in
comp.mail.uucp or on the Taylor UUCP mailing list as indicated
above.
Let me repeat that.
There is virtually no reason to post anything uucp-related in the
comp.os.linux hierarchy any more. There are existing newsgroups in
the comp.mail.* hierarchy to handle *ALL* your questions.
1.0 Hardware Requirements
There are no specific hardware requirements for UUCP under Linux.
Basically any Hayes-compatible modem works painlessly with UUCP.
In most cases, you'll want the fastest modem you can afford. In
general, you want to have a 16550 UART on your serial board or
built into your modem to handle speeds of above 9600 baud.
If you don't know what that last sentence means, please consult the
comp.dcom.modems group or the various fine modem and serial
communications FAQs and periodic postings on USENET.
2.0 Getting UUCP
Taylor UUCP (current version 1.04) is available on prep.ai.mit.edu
in source form and in the Linux SLS distribution in binary form.
The newspak-2.0.tar.z distribution contains config files and readme
files related to building uucp, news, and mail software under Linux
from the various freely-available sources. It can usually be found
on sunsite.unc.edu in the directory /pub/Linux/system/Mail.
3.0 Installing the Software
[...much of this section is taken verbatim from the README file in
the Taylor UUCP v1.04 sources - it's provided here so I can
help you 'rtfm' instead of just telling you to do so...]
Detailed compilation instructions are in uucp.texi in the sources.
You can grab 'known good' conf.h and policy.h files for Linux
from the newspak distribution referred to in the 'other sources of
information' section above. In that case, you can probably go right
to typing 'make'.
To extract a gzip'd tar archive, I do the following:
gunzip -c filename.tar.z | tar xvf -
3.1 Edit Makefile.in to set installation directories.
Here, I set 'prefix' to "/usr" rather than the default
of "/usr/local"
3.2 Run 'configure'
Type ``sh configure''.
The configure script will compile a number of test programs to see
what is available on your system and will calculate many things.
The configure script will create conf.h from conf.h.in and
Makefile from Makefile.in. It will also create config.status,
which is a shell script which actually creates the files.
3.2 Configure the future setup of the software
Examine conf.h and Makefile to make sure they're right.
- I took the defaults
Edit policy.h for your local system.
- set the type of lockfiles you want (HAVE_HDB_LOCKFILES)
- set the type of config files you want built in
(HAVE_TAYLOR_CONFIG, HAVE_V2_CONFIG, HAVE_HDB_CONFIG)
- set the type of spool directory structure you want
(SPOOLDIR_HDB)
- set the type of logging you want (HAVE_HDB_LOGGING)
- set the default search path for commands
(I added /usr/local/bin to mine...)
3.3 Compile and install the software
Type "make".
Use "uuchk | more" to check configuration files. You can use
``uuconv'' to convert between configuration file formats.
Type "make install" to install.
3.4 Set up the config files
I'd recommend you start by taking the attached known-good
config files for HDB mode and installing them.
Make sure that the Permissions file indicates exactly where
rmail and rnews are to be found if you put them anywhere
other than in the path you specified in policy.h
Make sure that your Devices files matches the actual location
of your modem (cua1=COM2 in the examples)
Edit the Systems file to set up the system(s) you talk to
with their speed, phone number, username, and password.
*PROTECT THIS FILE AGAINST WORLD READ*
Set up the Permissions file and add a set of lines for each
site you talk to. For security reasons, it's recommended to
make sure they each have a separate account (if you allow dialin)
and home directory so you can track things.
3.5 Give it a try
/usr/lib/uucp/uucico -r 1 -x 9 -s remote_system_name
The -x 9 will have maximum debugging information written to
the /usr/spool/uucp/.Admin/audit.local file for help in initial
setup. I normally run -x 4 here since that level logs details
that help me with login problems. Obviously, this contains
cleartext information from your Systems file (account/password)
so protect it against world-read.
[...from Pierre.Beyssac@emeraude.syseca.fr ...]
Taylor has more logging levels. Use -x all to get the highest
level possible.
Also, do a 'tail -f /usr/spool/uucp/.Admin/audit.local' while
debugging to watch things happen on the fly.
3.6 It doesn't work - now what ?
In general, you can refer to the documentation mentioned above
if things don't work. You can also refer to your more experienced
UUCP neighbors for help. Usually, it's something like a typo
anyway.
4.0 Frequently Asked Questions about Linux UUCP
4.1 Why is SLS uucp configured in HDB rather than 'Taylor' mode?
[...religious mode on - I know some people are just as religious
about 'ease of use' as I am about 'being standard'. That's
why they make source code you can build your own from :-) ...]
Because IMHO it's the de-facto standard UUCP implementation at
this time. There are thousands of sites with experienced admins
and there are many places you can get incredibly good information
concerning the HDB setup.
The uucp-1.04 that's in SLS 1.02 and later has all three modes of
config files built in. While I can't test it, I did 'rtfm' and Ian
Taylor tells me that it should work.
The search order for config files is Taylor...then V2 (L.sys)... then
HDB. Use the uuconv utility in /usr/lib/uucp to convert config files
from one mode to another.
If you can't wait, grab the sources for uucp and specify
HAVE_BNU_CONFIG, HAVE_V2_CONFIG *and* HAVE_TAYLOR_CONFIG in the
policy.h file and type 'make'.
The following workaround is ugly, but it does work, if you want
to run Taylor configs from binaries that don't have it built in...
[... From mbravo@tctube.spb.su (Michael E. Bravo) ...]
- add '-I /usr/local/lib/uucp/config' to _every_ invocation of
whatever program in uucp package
4.1 Why do I get 'timeout' on connections when I upgraded to uucp-1.04 ?
[... from Ed Carp - erc@apple.com ...]
If you use a 'Direct' device in the Devices file, there's now a
10 second timeout compiled in. Make the name of the Device anything
other than 'Direct'. If you tweak the example /usr/lib/uucp files
provided with SLS, you won't have problems with this one.
[... from Greg Naber - greg@squally.halcyon.com ...]
If you get chat script timeouts, you can tweak the sources by
editing at line 323 in uuconf/syssub.c and changing the default
timeouts from 10 seconds to something larger.
[... from Ed Rodda - ed@orca.wimsey.bc.ca ...]
If you get chat script timeouts, typically connecting to other
Taylor sites, a pause after login can fix this.
feed Any ACU,ag 38400 5551212 ogin: \c\d "" yourname word: passwd
^^^^
[... from Dr. Eberhard W. Lisse - el@lisse.NA ...]
Some kernels experience modems hanging up after a couple of seconds.
The following patch sent by Ian Taylor might help...
*** conn.c.orig Mon Feb 22 20:25:24 1993
--- conn.c Mon Feb 22 20:33:10 1993
***************
*** 204,209 ****
--- 204,212 ----
/* Make sure any signal reporting has been done before we set
fLog_sighup back to TRUE. */
+ /* SMR: it seems to me if we don't care about SIGHUPS, we should clear
+ the flag before we return */
+ afSignal[INDEXSIG_SIGHUP] = FALSE;
ulog (LOG_ERROR, (const char *) NULL);
fLog_sighup = TRUE;
4.2 Why doesn't HDB anonymous uucp seem to work ?
The SLS anonymous uucp only works in Taylor mode because it's
compiled with HAVE_TAYLOR_CONFIG. If you want to do anon uucp in HDB
mode, you'll have to recompile the sources with just HDB defined.
Ian Taylor is considering which way to deal with this 'feature'...
Also, Taylor in HDB mode seems to be sensitive to white space and
blank lines. To be safe, make sure that there are no blank lines
or trailing spaces in the Permissions file.
Lastly, make sure that you have a file called remote.unknown in
/usr/lib/uucp and that it's *NOT* executable. See the O'Reilly+Assoc
book "Managing UUCP and USENET" for details regarding this file.
4.3 What does 'no matching ports found' mean ?
In all probability, you are attempting to use a device
(/usr/lib/uucp/Devices) that doesn't exist, or the device you've
specified in the /usr/lib/uucp/Systems file doesn't match up with
any valid devices in the Devices file.
Following this are *sanitized* versions of my working Taylor 1.04
HDB config files that you can plug in and use...
note the 'ACU' in the Systems ? That tells which 'port' to use in
Devices
see the 'scout' word in Systems ? That tells which dialer to use
in Dialers.
If you had a ACU port, but none that matched the specified dialer
on the same line in Systems, you'll get that message.
4.4 What are known good config files for HDB mode ?
The following are 'known-good' config files for Taylor 1.04 under
Linux in HoneyDanBer mode. They work on kernels of 0.99-8 or
later. All files should be in /usr/lib/uucp unless you've tweaked
the sources to put the uucp library elsewhere.
If you *HAVE* put things in non-standard places, be aware that
things like sendmail might get very confused. You need to ensure
that all communications-related programs agree on your idea
of 'standard' paths.
If you're running a kernel of 0.99-7 or earlier, change 'cua1' to
'ttyS1'.
#------------- Devices -------------
# make sure the device (cua1 here) matches your system
# cua1 = COM2
#
# here 'scout' is the Digicom Scout Plus 19.2 modem I use
# tbfast etc. is for a Telebit Trailblazer Plus modem's various speeds
#
ACU cua1 - 19200 scout
ACU cua1 - 9600 tbfast
ACU cua1 - 1200 tbslow
ACU cua1 - 2400 tbmed
#------------- dialers --------------
# note the setting of the Trailblazer registers 'on the fly'
# 'scout' is a Digicom Scout Plus (Hayes-like) modem I use here
#
scout =W-, "" ATM0DT\T CONNECT
tbfast =W-, "" A\pA\pA\pT OK ATS50=255DT\T CONNECT\sFAST
tbslow =W-, "" A\pA\pA\pT OK ATS50=2DT\T CONNECT\s1200
tbmed =W-, "" A\pA\pA\pT OK ATS50=3DT\T CONNECT\s2400
#-------------- Systems -------------
# this is a very generic entry that will work for most systems
#
# the Any;1 means that you can call once per minute with using -f (force)
# the ACU,g means force 'g' protocol rather than Taylor's default 'i'
#
fredsys Any;1 ACU,g 19200 scout5555555 "" \r ogin:--ogin: uanon word: uanon
#-------------------------------- Permissions -------------------------
# Taylor UUCP in HDB mode appears to be sensitive to blank lines.
# Make sure all Permissions lines are real or commented out.
#
# this is a anonymous uucp entry
#
LOGNAME=nuucp MACHINE=OTHER \
READ=/usr/spool/uucp/nuucp \
WRITE=/usr/spool/uucp/nuucp \
SENDFILES=yes REQUEST=yes \
COMMANDS=/bin/rmail
#
# this is a normal setup for a remote system that talks to us
# note the absolute path to rnews since this site puts things
# in locations that aren't "standard"
#
LOGNAME=fredsys MACHINE=fredsys \
READ=/usr/spool/uucp/fredsys:/usr/spool/uucp/uucppublic:/files \
WRITE=/usr/spool/uucp/fredsys:/usr/spool/uucppublic \
SENDFILES=yes REQUEST=yes \
COMMANDS=/bin/rmail:/usr/local/lib/news/bin/rnews
#----------------------------------------------------------------------
5.0 Acknowledgements
The following people have helped in the assembly of the information
(and experience) that helped make this document possible:
Ed Carp, Steve Robbins, Ian Taylor, Greg Naber, Matt Welsh,
Pierre Beyssac
If I forgot anybody, my apologies...

View File

@@ -0,0 +1,834 @@
Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,comp.windows.x.i386unix,comp.answers,news.answers
From: geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer)
Subject: Linux XFree86 HOWTO
Keywords: Linux, XWindows, XFree86
Summary: HOWTO on installation of XFree86 for Linux
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Archive-name: linux/howto/XFree86
Last-modified: 10 February 1994
$Id: XFree86-HOWTO,v 1.6 1994/02/08 00:00:00 geyer Rel geyer$
Comments or suggestions on this HOWTO are very welcome, i.e. if you feel that
something is missing or something is obsolete or wrong, please let me know.
The Linux XFree86 HOWTO, version 1.6
------------------------------------------------------------------------------
by Helmut Geyer (geyer@kalliope.iwr.uni-heidelberg.de)
with help from Dirk Hohndel (hohndel@informatik.uni-wuerzburg.de)
and David E. Wexelblat (dwex@aib.com)
This document describes how to obtain, install and configure XFree86[TM]
version 2.0 for Linux systems. XFree86 is an enhanced version of the X
Window System, version 11 release 5, with support for many versions of UN*X
running on Intel i386/486 platforms, including Linux. It support a great
amount of video hardware for these systems and includes many bugfixes beyond
the MIT standard release of X.
This document is intended to help Linux users install and configure XFree86
v2.0, which was released on 31 October 1993. It is furthermore intended to
answer some basic questions about X and programs using X.
Please read this file and the referenced documentation files BEFORE
installing and starting XFree86. IF YOU ARE NOT CAREFUL, YOU MIGHT DAMAGE
YOUR HARDWARE.
This file comes WITHOUT ANY WARRANTY OF FITNESS. If you damage anything
following these informations, you are on your own. For a complete
description of the features and the installation please look at the
documentation files and manuals that come with XFree86 (residing in
/usr/X386/lib/X11/etc and its subdirs as well as in /usr/X386/man). The
most important files will be pointed out to you in this HOWTO. Note that
this HOWTO gives not complete information on setting up XFree86, but that
you have to get the documentation files for XFree86 (from the file
xf86-doc-2.0.tar.gz).
Other man pages from the stock X11R5 distribution can be found in
xf86-man-2.0.tar.gz. These manfiles come as sources for the nroff program.
To read them you will need a working man program as well as the groff
package for formatting them. Note that it is often required to read
manpages, so you should install the groff package anyway. (I think it is no
good idea that in many distributions this package is considered optional).
New versions of this document will be posted to comp.os.linux.announce, as
well as archived on sunsite.unc.edu:/pub/Linux/HOWTO.
Contents:
0. Introduction - What are X11R5 and XFree86?
1. Supported Hardware
2. Where do I get XFree86 and what do I need to run it?
3. Configuring XFree86
4. tinyX - a package for systems with low memory
5. X related packages
6. Compiling programs that use X
7. Programming in X
8. Finding Information on X on the net
Appendix: Some Questions & Answers
Copying conditions & Trademarks
0. Introduction - What are X11R5 and XFree86?
X11R5 is a windowing system for UN*X like operating systems. The X
Windowing System is issued by the MIT Consortium (look at the X(1)
manpage for more information) and is put under a very liberal copyright,
that allows any use of source code provided that the original copyright
notices are included.
As X is THE standard windowing system for UN*X operating systems, there
are a lot of applications using it (both free and commercial).
XFree86 is a port of X11R5 that supports several versions of Intel-based
Unix and Unix-like operating systems. The XFree86 servers are partly
derived from X386 1.2, which was the X server distributed with X11R5,
but many of them are newly developed. The accelerated servers that are
the most important change since XFree86-1.3 are completely new. This
release consists of many new features and performance improvements as
well as many bug fixes. The release is available as source patches
against the MIT X11R5 code, as well as binary distributions for many
architectures.
Note that while the source and installation trees retain the name 'X386'
name (for simplicity of maintenance of the source tree), there is no
connection between XFree86 and the commercial X386 product sold by SGCS.
The XFree86 Core Team maintains technical contacts with SGCS in an
effort to keep user-affecting changes to the workings of the products
from diverging too radically. There is no direct involvement of either
group in the workings of the other.
You will find more information on the XFree86-2.0 release and the
XFree86 project in the file README from the documentation tarfile.
1. Supported Hardware
As this is the most often asked question, this will be the first
section. Currently XFree86 (Version 2.0) supports the following
chipsets in the XF86_SVGA server (note that it depends on the chipset
whether a card is working and not on the vendor, with Diamond notably
excluded, cf. the remark at the end of this paragraph):
nonaccelerated chipsets:
Tseng ET3000, ET4000AX, ET4000/W32
Western Digital/Paradise PVGA1
Western Digital WD90C00, WD90C10, WD90C11, WD90C30
Genoa GVGA
Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000
ATI 28800-4, 28800-5, 28800-a
NCR 77C22, 77C22E
Cirrus Logic GLGD5420, CLGD5422, CLGD5424, CLGD6205, CLGD6215,
CLGD6225, CLGD6235
Compaq AVGA (cf the question in the appendix)
OAK OTI067, OTI077
accelerated chipsets:
Cirrus CLGD5426, CLGD5428
Western Digital WD90C31
NOTE that the WD90C33 chipset does NOT work with XFree86-2.0.
These chipsets are all supported in 256 color (XF86_SVGA) and in
monochrome mode (XF86_Mono) with the exception of the ATI and Cirrus
chipsets, which are only supported in 256 color mode. Note that the
ET4000/W32 is only supported as a ET4000 clone and none of the
accelerated functions are used.
The monochrome server also supports generic VGA cards (using 64k of the
video memory as a single bank), the Hercules card and the Hyundai
HGC-1280. Note that these drivers are not part of the XF86_Mono server
by default. If you want to use these, you have to reconfigure your
XF86_Mono server using the LinkKit (or, of course, the source
distribution - but the LinkKit will need less disk space and less
compile time). See the Appendix for further information on using a
Hercules mono card.
There is an (experimental) additional server that works on generic VGA
hardware: XF86_VGA16, a 16 color server.
XFree86-2.0 supports the following accelerated chipsets with seperate
servers:
S3 86C911, 86C924, 86C801, 86C805, 86C928 supported by
the XF86_S3 server
ATI mach8 supported by the XF86_Mach8 server
ATI mach32 supported by the XF86_Mach32 server
IBM 8514/a and true clones supported by the XF86_8514 server
No other chipsets are supported; not Weitek P9000, not TIGA, not
IIT AGX, not Microfield, not the new MGA chipset (as in the
Matrox card), etc. Support for some of these will likely be
provided in future XFree86 releases. TIGA will never be
supported, as it requires licensing materials from TI (and may
disallow source distributions); Microfield boards will never be
supported, as they use proprietary and undocumented custom microcode
interfaces.
NOTE further: The following is a statement of the XFree86 Core Team
concerning graphic cards by Diamond:
All Diamond cards are NOT supported by XFree86 even if they
have a supported chipset (with the exception of the Cirrus
chipsets that have an internal clock generator). The reason
for this is that Diamond has changed the mechanism used to
select pixel clock frequencies, and will only release
programming information under non-disclosure. We are not
willing to do this (as it would mean that source cannot be
provided). We have had discussions with Diamond over this,
and they do not intend to change this policy. Hence we
will do nothing to support Diamond products going forward
(i.e. don't send us a program to run set their clocks).
XFree86 DOES NOT SUPPORT DIAMOND HARDWARE. It is possible
to make some of it work, but we will not assist in doing
this.
The author of this HOWTO does support this statement completely. If you
have read this and bought nevertheless a card from Diamond, you will
damage the idea of free software as Diamond does not support the efforts
of a free X11 server.
However, if you are stuck with a card from Diamond, there is a
compilation of the needed things to get XFree86 running on some of these
cards. It is called the Diamond-FAQ and can be obtained from tsx-11 or
sunsite in the docs directories.
Do not ask the XFree86 team about Diamond hardware. You will simply
annoy them, and get no information.
For some of these chipsets there are specific README files (to be found
in /usr/X386/lib/X11/etc). If there is one for the chipset you use, read
it!! In these READMEs the specific options that can be used to
configure the server are explained.
More information on the servers can be found in their manpages.
Later more on configuring the servers.
2. Where do I get XFree86 and what do I need to run it??
This section is dedicated to the Linux binary distribution so all file
names and site names are for Linux only. If you read this file and are
not using Linux, you should get your hands on the announcement of
XFree86-2.0 for you OS. In it you will find all necessary information on
obtaining it.
You can get the binary distribution of XFree86-2.0 for Linux via
anonymous FTP from
tsx-11.mit.edu:/pub/linux/packages/X11/XFree86-2.0
or
sunsite.unc.edu:/pub/Linux/X11/XFree86-2.0
and all MIRRORS of these two.
You can find an incomplete list of sites mirroring these in the
BBS-list that gets regularly posted to comp.os.linux.announce or can be
found on both sites in the docs directory.
The distribution consists of several gzipped tarfiles (some are too big
to fit on one floppy disk, you may have to split them):
XF86_8514.tar.gz An accelerated server for cards using IBM8514 chips
XF86_Mach32.tar.gz An accelerated server for cards using Mach32 chips
XF86_Mach8.tar.gz An accelerated server for cards using Mach8 chips
XF86_Mono.tar.gz A Monochrome server
XF86_S3.tar.gz An accelerated server for cards using S3 chips
XF86_SVGA.tar.gz An SVGA server (most chipsets use this)
XF86_VGA16.tar.gz A server for 16 colour graphics modes
xf86-svr-2.0.tar.gz All of the above servers
xf86-bin-2.0.tar.gz Client programs
xf86-cfg-2.0.tar.gz XDM configuration files and chooser
xf86-fnt-2.0.tar.gz Fonts (all of them)
xf86-kit-2.0.tar.gz Linkkit for building your own X servers
xf86-lib-2.0.tar.gz Dynamic libraries, bitmaps and minimal fonts
xf86-man-2.0.tar.gz Manual pages (both client + programmer)
xf86-pex-2.0.tar.gz PEX libraries and sample clients
xf86-prg-2.0.tar.gz Static libs, dynamic stubs, configs and
include files
xf86-doc-2.0.tar.gz Documentation and release notes for XFree86 2.0
xf86-doc2-2.0.tar.gz This file contains the manpage for Xconfig that
has mistakenly been left out of the -doc- file.
You will need libc 4.4.1 or newer to run XFree86-2.0. For the
accelerated servers you need Linux 0.99pl13 or newer (a working complete
mmap is needed for these).
The SVGA, VGA16 and Mono servers will work on Linux 0.99pl12 and newer.
Furthermore you will need to install David Engel's shared dynamic linker
ld.so version 1.3 or newer. You can find the most recent version on all
mirrors of tsx-11 in the /pub/linux/packages/GCC directory.
You will need a main memory of at least 8 MB and a virtual memory of at
least 16 MB (i.e. main memory + swap). It is possible to run X on a 4 MB
machine if you take some precautions on memory usage (look at section 4,
where a package for low memory systems is described). Note that you
should nevertheless have 16 MB of virtual memory. (So if you have 4 megs
of physical RAM, and 12 megs of swap, you're okay.) It is recommended
that you have *at least* 8 megs of physical RAM, as swap is very slow.
With only 4 megs of physical RAM, performance will suffer greatly.
If you want to run memory-hog programs from within X (as e.g. gcc) you
should at least have 16 MB of main memory and another 16MB of swap.
You will need about 17 MB of disk space for the complete installation
without LinkKit, 21 MB with LinkKit. By deleting those servers that you
don't need and removing the LinkKit after linking your own server, you
can save several MB of diskspace. A more concise listing on the needed
disk space and the contents of the distribution files can be found in the
release notes by Simon Cooper. These can be found in the 00README file
residing in the XFree86-2.0 directory.
Before installing XFree86, you should make a backup of all files that
you changed. They may not be usable, but they still hold a lot of
information you might want to preserve. (This includes your old XConfig
files.)
To install the binary distribution you have to do the following as root
in the / directory with all needed tarfiles from above. To get all
permission right you should use umask 022.
gzip -dc tarfilename | tar xvvof -
WARNING: This will overwrite all files from an older XFree86 version, of
course not the Xconfig file (if you did not link it to Xconfig.sample,
which you should NOT do). In other words, ionly if Xconfig.sample is
linked to your Xconfig, it will be overwritten.
After installing it, you will have to set it up correctly to match your
system. This is described in section 3.
2.1 What do I do if I want to compile it myself?
This is explained in the INSTALL, README and README.Linux files coming
with XFree86. You should do that, however, only if you want to have some
special changes to the standard distribution, as you will need a lot of
CPU time and disk space to do this. If you only want to change the
configuration of a server, you should use the Link Kit, as this is much
easier to handle and will not need that much resources by far.
For adding drivers to the SVGA server you will only need the Link Kit.
The Link Kit comes with documentation on writing drivers for SVGA. You
can find it in the directory /usr/X386/lib/Server/VGADriverDoc.
3. Configuring XFree86
From version 2.0 on all documentation files for XFree86 are combined in
one tarfile, xf86-doc-2.0.tar.gz. You have to get this file and look
through those files to configure XFree86 correctly. The following steps
are intended as a guide to these files.
There is a very good introduction to configuring XFree86 in the
README.Config coming with XFree86-2.0. Start there to configure XFree86
and follow the instructions step by step.
Furthermore you MUST read the manpages for Xconfig, XFree86 and the
server you want to set up (one of XF86_SVGA, XF86_Mono, XF86_VGA16,
XF86_S3, XF86_Mach8, XF86_Mach32 or XF86_8514). Just look in section 1,
which server supports the chipset of your graphic card and use this.
If you are not sure, which chipset your graphic card has (this should
only happen, if you do not have a manual for your card), you can try to
identify it by running SuperProbe, a graphic hardware detection program
that comes with XFree86-2.0. You should, however, rely on the
information of your manuals and not on that of SuperProbe (even if it is
in most cases correct).
Note that if SuperProbe does not detect your chipset correctly, the
XFree86 servers will neither. Note further that SuperProbe detects far
more hardware than XFree86 servers support.
There is a list of accelerated graphic cards that are reported to work
with XFree86-2.0 in the file AccelCards. Look through it to see, whether
your card is already in the database. While other boards not listed may
well work, The XFree86 team gives no assurances of that.
If you were running XS3, you should take a look at README.XS3, as some
things did change while incorporating the XS3 server into XFree86.
Several people reported problems with the XFree86 configuration that
could be solved by changing the BIOS configuration of shadowing and
cacheable areas. The reports which settings had to be changed in order
to get XFree86 working were partly contradicting, though.
Due to this fact, I only want to mention that there might be problems
arising from BIOS setup. If you cannot get it working in spite of
having followed all hints in the documentation, you might want to
fiddle with these settings.
For configuring you will need the following information on your system:
1. The specifications of your monitor (i.e. which vertical and horizontal
frequences can it handle and which video bandwidth has it). This is
the most important thing of all as you can toast your monitor using
incorrect video modes and you will need these specifications to check
the modes.
2. You need the name of the chipset (confer the remarks above). Note
that there are some companies using "s3" as a synonym for "accelerated"
chipset, so this is often not true. Please check it out in your
manuals.
3. Amount of video memory supplied by your card (this is usually detected
Correctly, but it is better to have the exact number and compare it
with the detected)
4. Which dot-clocks are available for your card, or is your dot-clock
programmable. This is the hardest part for the graphic card setup.
How to obtain these is described in the README.config.
NOTE: there is a problem with the clock probing code for the
WD90C3x chipsets. Please run the XFree86-1.3 server to probe
for the clocks and put these into your Xconfig file. Having
done that, you can use the XFree86-2.0 server.
NOTE: If your RAMDAC can handle pixel clocks higher than 110MHz,
it is probably one of the more recent high-end RAMDACs. As
all of these (as far as it is known) use special features to
make this possible, these RAMDACs should not be run at higher
clocks than 85 MHz. Support for such RAMDACs (at least for
some of them) will be in the next release of XFree86. If you
drive your RAMDAC too high with the current code, you will fry
it. So if you have such a card, do not use clocks higher than
85MHz (simply by not putting modes using clocks higher than
that into the Xconfig file).
5. The protocol your mouse uses and the device it is connected to. The
available mouse protocols are listed in the Xconfig manpage. You
have to use the keyword according to the protocol your mouse uses
and not the manufacturer,... The standard names of the mouse
devices for Linux are:
/dev/atibm for the ATI XL busmouse (NOTE: the ATI GU busmouse
is in fact a logitech busmouse)
/dev/logibm for the Logitech busmouse (NOTE: this uses the
busmouse protocol, NOT the Logitech protocol)
/dev/inportbm for the microsoft busmouse
/dev/psaux for a ps/2 or quickport mouse
NOTE: these are the new device names (as of MAKEDEV 1.2). Some
distributions and systems have different device names:
new old major minor device number
atibm: bmouseatixl 10 3
logibm: bmouselogitec 10 0
inportbm: bmousems 10 2
psaux: bmouseps2 or ps2aux 10 1
The other supported mice are serial mice and therefore connected
to one of the serial ports (named /dev/ttyS? or /dev/ttyS?? for Linux).
For busmice it is sometimes not easy to see which device they are using.
Simply put all drivers for busmice into the kernel you use and look
at the startup messages. These will tell you, which busmouse has been
detected. From these messages you can get the device name.
So now procede as in README.Config. If your Monitor is not listed in the
modeDB.txt file, you should try one of the generic modes. ENSURE THAT
THE SPECS OF THE MODES ARE WITHIN THE SPECS OF YOUR MONITOR. If you
want to tune these modes or to compute a mode of your own, you MUST read
VideoModes.doc and follow the instructions there. Before trying a mode,
compute the specs of this mode and again look if your monitor does
support it. Here is no further description of computing VideoModes,
as you should not do this without having read VideoModes.doc.
WARNING: Do NOT EVER share Xconfig files with people who do not have
EXACTLY the same Configuration (i.e. graphic card AND monitor). By
doing this you could toast your monitor. It isn't so hard to
figure out modes (that is, for multisync monitors) and you surely
shouldn't ever use a mode that you didn't check by yourself to be
within your monitor's specs. Even if you have exactly the same
setup you should check all modes yourself before trying
them. There are many people who run their hardware out of specs
which may not damage their hardware but could yours.
3.1 Configuring the keyboard for non-US-layout
If you do not change the standard settings, the server will start up
with an US-american keyboard layout regardless which keyboard layout was
configured for the kernel. If you want to have a different layout, look
at the xmodmap(1) manpage. There are example Xmodmaps available at
sunsite.unc.edu:/pub/Linux/X11/misc for several languages and keyboard
layouts.
Note that you might need to define a map for several special keys (as
e. g. Meta, Compose, ..) in the Xconfig file to make complete use of
these keymaps. For information on the keyboard capabilities of
XFree86 read the XFree86kbd(1) manpage. Furthermore you should
4. tinyX - a XFree86 based package for low memory systems
If you have not enough memory to run the stock XFree86 distribution, you
might try to get this package. It is based on XFree86, so the difficult
parts of the configuration (setting up the Xconfig file) are
identical. To run it you need at least 4 MB RAM and another 8 MB swap
space. There are now several tinyX versions, one for each of the
different servers supplied by XFree86-2.0. Please read the above
description of the servers to get the right version of tinyX. These
packages are named like
tinyX-YYY-2.0.tar.gz, where YYY denotes the server name (without
leading XF86_)
You can find tinyX on sunsite.unc.edu in the /pub/Linux/X11 hierarchy.
Please look in your neighbourhood for a Mirror of it (cf. the BBS-list
that can be found on most linux sites). You untar it as root from
/. After this you have to setup a Xconfig file as described in section
3. The documentation and READMEs for tinyX as well as most of the
XFree86-2.0 documentation files can be found in /readmes. Read the
XFree86 documentation files _before_ setting up a Xconfig file as they
are required for this.
The tinyX documentation includes a lot of useful information on memory
saving techniques. You should follow at least some of these suggestions,
as running X while swapping constantly is no fun at all :-(. If you are
running out of memory your system will lock up completely (in many cases
the only way out is to turn off power or to make a hard reset - both is
very dangerous for your filesystem). So read these files before starting
X so that this does not happen.
As tinyX does not include all documentation available with XFree86-2.0,
you might notice that you are pointed to a file that is not included.
In this case you must get the rest of the documentation files (and
perhaps the manpages, too) from any XFree86-2.0 site (cf. 2.). If you
have enough disk space for that, this is highly recommended anyway.
Note that XFree86 specific manpages (as the Server manpages,...)
are not in the *-man-* but in the *-doc* files.
5. X - related packages
There are a lot of packages that are related to X. I mention two here,
because they have a great influence on the look-and-feel of X.
- The xview3L5.1.tar.gz package
This package is a port of SUN(TM)'s xview3.2 package by Kenneth
Osterberg to Linux. It includes the xview toolkit, a set of extensions
to X. It will give you the look-and-feel of the Open Look(TM)
extension to X (many will know that from Open Windows(TM) from SUN).
To install it, untar the tarfile as root in some directory (e.g.
/usr/src), read the documentation that comes with it (most important
the README and run the INSTALL script. Note that you need about 25MB
free disk space to install it completely (with examples). This is
partly due to the fact, that for some time all files are twice on the
disk. After running the INSTALL script and removing the xview3L5.1
directory you will need about 11 MB (including all examples). If you
do not want to install the examples , you will need about 9 MB. If you
do not want to compile or program any program that uses xview, you can
spare another 2.5 MB.
For running Xview you will need at least 8 MB of RAM, better 16 MB. To
run xview with XFree86-2.0 you should get the ld.so package version
1.3 or newer.
- There is a port of Motif(TM) to Linux.
This is commercial software, so you will have to pay for it. You can
find an advertisement from Metrolink (the company that provided the
port to Linux) on tsx-11:/pub/linux/advertisements.
These packages provide different window managers than the standard twm
that comes with XFree86. There are several further window managers that
you can find on sunsite:/pub/Linux/X11/Window-managers. All these use
different setups, so you have to read the documentation on the window
managers to set them up correctly.
There are a lot of programs available for X. Look through the
/pub/Linux/X11 hierarchy at sunsite.unc.edu or at the usr.X11
directories of /pub/linux/binaries and /pub/linux/sources at
tsx-11.mit.edu for many of them.
6. Compiling Programs that use X
If you have the source code for a program that uses X11, usually it will
be shipped with an Imakefile instead of a Makefile. What to do now?
Run "xmkmf" in the directory that containes the Imakefile. If there is a
hierarchy of directories with Imakefiles, you usually only have to run
xmkmf in the root directory of that hierachy. You can configure the rest
by typing make Makefiles. This will build the Makefiles in all
directories in the hierachy. Then you should run "make depend". Don't be
afraid if include files like stddef.h, varargs.h, ... are not found,
they are gcc proprietary header files and therefore not in the standard
include directories (the Imakefiles use makedepend, not gcc -M). After
that you can make the program by running make and you can install it
(usually in /usr/X386/bin) by running "make install", installing of the
manpages is done by running make "install.man". Of course, before even
making xmkmf, you should have read the documentation that comes usually
with such packages.
7. Programming in X
If you want to write programs that use the X Window System, you should
get some books on the X Window System. Most Subroutines provided by X
are documented in a manpage (residing in /usr/X386/man/man3), but these
will not provide enough information on programming in X if you do not
know some generals about X.
There is a rather complete series on X by O'Reilly, called "The
definitive Guides to the X Window System", consisting of many volumes
(you will probably not need all of them). For more information check out
the O'Reilly and Associates Catalog from anonymous FTP on ftp.ora.com.
I suggest reading Volume 1, "Xlib Programming Manual", and Volume 4, "X
Toolkit Intrinsics Programming Manual", if you are serious about writing
X apps. As it turns out Xt (volume 4) is used for most X applications,
and you only need low-level Xlib stuff (volume 1) for certain things.
8. Finding information on X on the net.
For general X questions you should read the FAQ and the Xt-FAQ from the
comp.windows.x newsgroup (you can achieve them
from ftp.x.org in the directory /contrib or
from rtfm.mit.edu in /pub/usenet_by_hierarchy/comp/windows/x
by anonymous ftp).
This is the newsgroup for general X questions.
If you have questions on the XFree86 package and cannot find an answer
in the documentation files (XFree86, Xconfig, XF86_* manpages or the
README files in /usr/X386/lib/X11/etc) you may want to post a question
to a newsgroup. The appropriate newsgroup for that purpose is
comp.windows.x.i386unix, as this newsgroup is dedicated to the XFree86
system. If you have a problem with the server and want to post a
question to this newsgroup, you should provide enough information for
those that want to help you. It is no good idea telling: XFree86 is not
working, what do I have to do? Here some things that should be included
in all postings that are concerned with server problems:
- which Operating System and which release of it are you running
- which hardware do you have (at least bus type (ISA/EISA/VLB), graphic
card (including chipset, video RAM type (D/VRAM), size and speed))
- a concise decription of the problem
- a printout of the server startup (you can generate that by
redirecting the stderr output)
- the used parts of the Xconfig (It is NOT a good idea to include all
lines commented out by a leading #, as this then will be the largest
part of your post and most people will already know the copyright
statements :-)
Furthermore you should say what steps of trouble-shooting you already
did (there are some mentioned in the XFree86 documentation files and in
the Appendix).
There are some other newsgroups that cover X related topics:
comp.windows.x.apps - for X applications
comp.windows.x.intrinsics - for X intrinsic
comp.windows.x.motif - for the Motif(TM) extension to X
comp.windows.open-look - for OpenLook(TM) and the xview extensions to X
Note that some of these groups have FAQ lists that are posted regularly
to the groups. As always with regular postings these can be obtained
from rtfm.mit.edu via anonymous ftp.
Please do not post X related questions to _any_ newsgroup of the
comp.os.linux.* hierarchy. You will get better answers to your questions
in those newsgroups dedicated to those questions, as nearly all those
questions are not linux-specific.
Appendix: Some Questions & Answers
Q: I started X by running 'X'. I get the stippled background, but no window
at all. What am I doing wrong?
A: Running X starts only the server, no window-manager and no applications.
The usual way to start X is running 'startx'.
Q: I used XS3 up to now, what changed in XFree86-2.0
A: The most important things that changed, are described in the README.XS3
file coming with XFree86-2.0.
Q: Is there support for 16-bit or 24-bit colour modes?
A: No, there is only support for 1-bit, 4-bit and 8-bit colour in the moment.
The 4-bit server is in addition in an experimental stage, so there
are bugs and problems using it. Most of the known problems are
mentioned in the manpage.
Q: I have a Logitech serial mouse but it does not work with the Logitech
keyword.
A: The Logitech keyword is for older Logitech serial mice, more recent
Logitech serial mice use the MouseMan or MicroSoft keyword.
Logitech serial mice plugged into a ps/2 port use the ps/2 keyword.
Q: My server is unable to find some of the fonts.
A: First check that the directories in the font path in
/usr/X386/lib/X11/Xconfig are named correctly and contain fonts. If that
is the case, running mkfontdir in all of those directories may help you.
Q: I have the problem that the fonts are not restored correctly after
leaving X. My screen looks totally garbled.
A: This is not yet completely resolved. There are utilities called
runx , restoretext,... coming with svgalib (sunsite:/pub/Linux/libs)
that help sometimes.
Q: I had a normal SVGA card up to now with 1 MB of video RAM. With it
I could do a virtual resolution of 1152x900 or 1024x1024. Why does
it not work on my new s3 card?
A: All but the most recent revisions of the s3 chips cannot use a line
length of 1152, so a length of 1280 is used for this resolution.
Furthermore the s3 server needs 1k for the cursor, so a virtual
resolution using 1MB will not work.
NOTE, that you will need some memory on the graphics card for font
and pixmap caching if you want to get maximum performance from your
graphic card. So the memory is NOT wasted, but will get you a great
performance boost. Try running some font or pixmap specific
mode of x11perf with maximal allowed virtual resolution (e.g.
1024x1023) and with 1024x768 and compare the results!
Recommended resolutions are 1024x768 and 1152x800 for 1MB cards.
The latter resolution leaves not too much memory to the font cache,
so you will have a performance loss using large fonts.
For normal use with fonts <= 18 points it should be OK, though.
Q: I have a s3 card and it does not work properly. The screen gets
distorted when dragging windows and it frequently locks up.
A: First try to use options nomemaccess or nolinear. If both does not help
and you have a s3 928, try specifying chipset s3_generic in your
Xconfig. If nothing helps, it might be a incompatibility
problem between your graphic card and your motherboard. Try to see if the
card works in a different system, if you can get your hands.
Q: I have a s3 Localbus card and the server cannot find a high memory
area. Then it disables direct memory access. What should i do?
A: There are some strange problems with Localbus cards. It is being worked
upon. Put option "nolinear" _and_ option "memaccess" into your Xconfig
file. This will enable to use the 64k aperture that is supported
even for ISA cards. This will furthermore prevent the following problem:
Due to a bug in the linear frame buffer code, the s3 processor is
not reset correctly, once a large (i.e. >= 1024k) linear frame buffer
is found. Thus the server will not work after that if it fails to
find the high memory area until a hard reset is sent to the chip (i.e.
even a normal reboot will not reset the system).
Q: I have a WD90C3x based graphic card. XFree86 seems not to probe the
clocks correctly. What can I do?
A: Yup, there is a bug in the clock probing code in XFree86-2.0. It is
not in XFree86-1.3. So run the XF86_SVGA server from 1.3 just to probe
the clocks and put the probed clocks into your Xconfig file. After that
the XF86_SVGA server from 2.0 will get the right clocks. The XFree86-1.3
package can still be found on tsx-11 and sunsite.
Q: I have a Diamond Viper card. Why does it not work?
A: In addition to being a Diamond product, this card is based on the
P9000 chip by Weitek. This chip is not yet supported by XFree86, so
you have only a chance to get it working with one of the generic
servers (i.e. Mono or VGA16). You will have nevertheless the clock
setting problem that prevents the other diamond cards from working.
Q: I have a card with the Compaq AVGA chip. It does not work.
A: Yes, the AVGA support seems to be completely broken in 2.0. Please
get the SVGA server from the XFree86-1.3 distribution. This should
work.
Q: Are there some notes on tuning the performance of my X system?
A: Yes there are. They are posted monthly to the comp.windows.x
newsgroup and can also be found on rtfm.mit.edu in the
appropriate subdirectory.
Q: I want to reconfigure my XF86_S3 or XF86_VGA16 server using the LinkKit.
After editing sited.def and running mkmf, make will not work.
A: There is a little bug in the Imakefile for the LinkKit. You can either
change the line 326 in the Imakefile from
#if XF86SVGAServer || XF86MonoServer
to
#if XF86SVGAServer || XF86MonoServer || XF86VGA16Server || XF86S3Server
or you can configure the XF86_Mono or XF86_SVGA server additionally for
building. Then all will work.
Q: I have a SPEA/Video 7 Mercury card. It is 928 based but I cannot
get it working correctly.
A: The Mercury uses a clock chip that is not yet supported by XFree86.
So you cannot use it at the moment. This will (probably) be solved in
the next XFree86 release.
Q: I have a busmouse and am running selection. The server has problems with
recognizing the mouse.
A: Selection has some problems with busmice. XFree86 cannot open the mouse
device if selection is running on it. So kill selection before staring
XFree86.
Q: The server dies with the message "Cannot find a free VT".
A: XFree86 needs a free VT to run on. So if you have put a getty process on
every virtual console in you /etc/inittab, XFree86 will not be able
to start. I suggest to let /dev/tty8 (for kernel messages) and /dev/tty7
(for XFree86) free of a getty process.
Q: Why is the XF86_Mono server not working with my hercules card, I
thought this card was supported?
A: The hercules driver (as well as the BDM2 driver) is not part of
XF86_Mono by default. Get the LinkKit and you can include it.
You will need about 4 MB free disk space and about 5 minutes for
building the server (on a 486/30).
No version of XFree86 up to at least 2.0 properly sets a Hercules
mono display when switching to text mode (such as when you switch
VTs or exit from XFree86). You will therefore also want to make a
small change to the Linux kernel to work around this problem. If
you have a kernel version 0.99.15 or later, you can edit the file
"console.c" in the kernel source directory "linux/drivers/char/"
by adding the line:
#define CONFIG_HGA
near the top of the file. Alternatively, you can add the line:
bool 'Hercules monochrome display support' CONFIG_HGA y
to "linux/config.in" (then do a 'make config'). Re-make the kernel,
install it, and re-boot.
This change to the kernel ensures that the Hercules display is always
in text mode immediately after a VT switch. This feature is worth
having, even if future versions of XFree86 do not have the text-mode
switching problem.
Q: I cannot get a working 1280x1024 interlaced mode on my S3 card.
A: Yes, that's true. It does not work in the moment. Read README.late
to fix it.
Q: I have severe problems with getting a mode on my new (805 rev. D or
928 rev. E) S3 graphic card with pixel clocks higher than 65MHz.
A: There seems to be a problem with some undocumented S3 registers
that come with these new chips. It is worked upon and should be
fixed in the next release.
Q: When will be the next XFree86 release?
A: This cannot be said at the moment. If a new version is released,
you will hear early enough of it.
Q: The server tells me that I cannot use a higher clock frequency
than 80 MHZ (ATI Mach32) or 85MHz (S3 928). The docs of the card tell me
that it is possible to do far more.
A: This comes from problems with the RAMDAC code that does not support
some RAMDACs completely yet. These are the RAMDACs for the ATI Mach32
cards and the Bt485 and its clones for S3 cards. Therefore the pixel
clock gets restricted to sane settings. This will be fixed in the next
release.
There are other High-End RAMDACs that suffer from the same restriction.
In general you should not use any clock higher than 85MHz if your
RAMDAC can handle pixel clocks higher than 110MHz.
There are a lot strange phenomena reported that cannot be handeled here.
If your card has a switch for bus waitstates, it helps in many cases
to put this to the 1WS setting. You should also look at the remarks
above on setting some BIOS values. As many reports (especially on BIOS
setting) are contradicting, you should try several settings.
------------------------- Copying conditions ---------------------------------
Copyright Helmut Geyer 1994
A verbatim copy of the XFree86-HOWTO may be reproduced and distributed in
any medium physical or electronic without permission of the author.
Translations works are similarly permitted without express permission if it
includes a notice on who translated it. Commercial redistribution is allowed
and encouraged; however, the author would like to be notified of any such
distributions.
Short quotes may be used without prior consent by the author. Derivative work
and partial distributions of this HOWTO have to either include a verbatim
copy of this file or make a verbatim copy of this file available. If the
latter is the case, a pointer to the verbatim copy must be stated at a
clearly visible place. If you want to do either of the last possibilities,
you should contact the author.
In short, we wish to promote dissemination of this information through as
many channels as possible. However, we do wish to retain copyright on the
HOWTO documents, and would like to be notified of any plans to redistribute
the HOWTOs. We further want that ALL information provided in the HOWTOs is
disseminated. If you have questions, please contact Matt Welsh, the Linux
HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
--------------- Trademarks -------------------
XFree86 is a trademark of The XFree86 Project, Inc.
Motif is a trademark of the Open Software Foundation.
SUN and Open Windows is a trademark od SUN Microsystems.
Open Look is a trademark of AT&T.
------------------------------------------------------------------------------
Helmut Geyer geyer@kalliope.iwr.uni-heidelberg.de