add directory docs

This commit is contained in:
gohigh
2024-02-19 00:23:35 -05:00
parent b50063d9b3
commit 9912ec445d
12689 changed files with 3135349 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
This is the new Frequently Asked Questions with Answers list for
comp.os.linux.help; please read it for more information about Linux
and before posting any questions you may have.
It is available in this directory in the following formats:
linux-faq.ascii 7-bit ASCII text
linux-faq.info Emacs Info hypertext document
linux-faq.ps PostScript, generated by the Lout text formatter
It is also available on the World Wide Web at:
http://www.cl.cam.ac.uk/users/iwj10/linux-faq/index.html
The PostScript conforms to the Adobe Document Structuring Conventions,
and can therefore be run through programs like the psutils. I
recommend that you use psnup, from the psutils[*] package, to print it
2 pages to a printed page.
Also available is
linux-faq.source.tar.gz source files and scripts
This contains the Bizarre Format with No Name source for the FAQ, and
the Perl scripts which convert this to ASCII, Emacs Info and input for
Jeffrey Kingston's Lout typesetter, and the sh scripts which do the
posting and archiving for me. Please be careful not to post a copy of
FAQ with these - don't disable the user/hostname safety check !
[*] Psutils was posted to comp.sources.misc. You should
be able to find the source at any c.s.m archive site.
- Ian Jackson <ijackson@nyx.cs.du.edu> 17th September 1993
Here follows my PGP2 digital signature of the source file
linux-faq.source.tar (note that you must gunzip the file before
attempting to verify the signature):
-----BEGIN PGP MESSAGE-----
Version: 2.6
iQCVAgUALviWl8MWjroj9a3bAQGBiwQAp9p0l8HfGeGY30sMc9pbGlguXM5mVLju
HyF/VcEi2B/wlDbdvod9fhp9aVxgcoXqK082erG74sgrE0gGi0z4vXIhrWFtPRPT
d95Nb+sEP2JrQDzHr7ZUoNb/1B0nG8Teak3efbiiXPhr7bietlCKXNxxnbq8bbJp
Sm9+Z8B/W4k=
=RVEv
-----END PGP MESSAGE-----

2267
docs/FAQ/FAQ/linux-faq.ascii Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

10296
docs/FAQ/FAQ/linux-faq.ps Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

1618
docs/FAQ/NET-FAQ Normal file

File diff suppressed because it is too large Load Diff

BIN
docs/FAQ/faq_1.pdf Normal file

Binary file not shown.

10484
docs/FAQ/faq_1.ps Normal file

File diff suppressed because it is too large Load Diff

BIN
docs/FAQ/faq_2.pdf Normal file

Binary file not shown.

10528
docs/FAQ/faq_2.ps Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,256 @@
daemon@ATHENA.MIT.EDU (Robert Blum) Linux_Activists 12/19/91 01:39 (253 lines)
Subject: A FAQ is coming...
Date: Thu, 19 Dec 91 07:29:21 +0100
From: blum@cip-s01.informatik.rwth-aachen.de (Robert Blum)
To: linux-activists@joker.cs.hut.fi
Hi Linuxers!
Following is a FAQ-compilation (most credits to Linus) for Linux.
Mail me, if you like it, and mail me, if you dislike it or have
any ideas on changing this.
Thanks in advance,
Robert Blum
QUESTION: What is linux?
ANSWER: Linux is a small unix for 386-AT computers, that has the added
advantage of being free. It is still in beta-testing, but is slowly
getting useful even for somewhat real developement.
QUESTION: Does it run on my computer?
ANSWER: Linux has been written on a clone-386, with IDE drives and a VGA
screen. It should work on most similar setups. The harddisk should be
AT-standard (ie not SCSI, ESDI), and the system must be ISA. Otherwise
the requirements seem relatively small: a 386 (SX, DX or any 486). The
current version (0.10) needs a colour screen adapter, but this is not
the case with the next version.
It needs at least 2M to run, and 4M is definitely a plus. It can happily
use up to 16M (and more if you change some things).
QUESTION: Will linux run on a PC or 286-AT? If not, why?
ANSWER: Linux uses the 386 chip protected mode functions extensively,
and is a true 32-bit operating system. Thus x86 chips, x<3, will simply
not run it.
QUESTION: Does linux do paging? Can I have virtual memory on my small
machine?
ANSWER: Linux does use the 386 paging unit, but currently only for
memory management. No use of disks as expansion RAM. This is one of the
things that will be implemented sometime in the (far?) future. Linux
also uses the paging unit to share pages between several processes after
a fork: thus it needs less memory. However, almost all the user programs
available for linux are GNU software, which want gobs and gobs of
memory. This is the reason at least 4M is recommended: GNU cc (gcc)
simply won't run in less.
QUESTION: Can I have tasks spanning the full 4GB of addressable 386
memory? No more 64kB limits like in coherent or standard minix?
ANSWER: Linux does limit the task-size, but at a much more reasonable
64MB (MEGA-byte, not kilos), so bigger programs are no problem.
QUESTION: Does the bigger program sizes mean I can run X?
ANSWER: X is not ported to linux, and though I hope it will be some day,
I cannot guarantee it. It's big, and wants a lot from the system.
QUESTION: Where can I get linux? Is there a mailserver?
ANSWER: Linux can be gotten by anonymous ftp from
nic.funet.fi (128.214.6.100):
directory /pub/OS/Linux
Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
directory /pub/msdos/replace
tsx-11.mit.edu (18.172.1.2):
directory /pub/linux
ftp.eecs.umich.edu (141.212.99.7):
directory linux
You might want to check out which of these is the most up-to-date.
If you don't have ftp-capability, you are in trouble. You might try
mailing "mailserver@nic.funet.fi" with "help" in the body of the mail.
QUESTION: Is there a newsgroup or mailing-list about linux? Where can I
get my questions answered? How about bug-reports?
ANSWER: There is a mailing list set up at the address
'Linux-activists@niksula.hut.fi'. To join, mail a request to
'Linux-activists-request@niksula.hut.fi'. DO NOT mail "I want to
[un]subscribe" to the mailing-list, use the request-address.
Questions and bug-reports can be sent either to the mailing-list or to
"torvalds@kruuna.helsinki.fi", depending on which you find more
appropriate.
QUESTION: I got the minix-demo, but it won't boot. Linux boots from
floppy. What's wrong?
ANSWER: You probably wrote the minix demo to a 1.44M disk, which (for
some unfathomable reason) doesn't work. The minix demo wants a 720kB or
1.2M disk.
QUESTION: The minix-demo boots all right, but doesn't seem to recognize
my second harddisk. What's up?
ANSWER: The minix-demo does support a second harddisk, but there are no
special files made for it, and the minix demo doesn't include the
"mknod" command. Mount the linux root-floppy, and use the devices on
that.
QUESTION: How can I be sure I won't be writing over anything important?
I have to use DOS in on my machine, and I don't want to lose any files.
ANSWER: Back up everything. Just in case. Then, write some easily
recognizable pattern to the partition you have reserved for linux, using
some DOS tool. You can then use "cat /dev/hdX" under minix to examine
which of the partitions you used.
QUESTION: Minix mkfs doesn't accept the size I give the device, although
I double-checked with fdisk, and it's correct.
ANSWER: Be sure you give the size in BLOCKS, ie 1024 bytes, not sectors.
Also, make doubly certain that you have the correct partition.
QUESTION: I used the minix mkfs to make a filesystem on /dev/hd3 after
having checked that this was indeed the partition I had reserved. Minix
mounts the new partition ok, but linux doesn't. What gives?
ANSWER: In some cases partitions are numbered differently under minix
and linux. This seems to correlate to the FDISK version you have used.
/dev/hd3 under minix may be /dev/hd2 under linux etc.
There are a few rules about this: /dev/hd0 and /dev/hd5 are always the
same under linux and minix. DO NOT USE THEM, they are the whole raw
disk, not partitions. Also if a partition is on drive 1 under minix (ie
/dev/hd1-4), it is drive 1 under linux as well.
QUESTION: I mounted the linux filesystem, and copied the files from the
root-disk to the harddisk. Now I cannot find them any more, and
somethimes linux dies with a "panic: trying to free unused inode".
ANSWER: You have probably forgot to sync before rebooting. Linux, like
all unices, use a "buffer cache" to speed up reads and writes to disk.
On a machine that has enough memory, this buffer-cache is 1.5MB, and if
you forget to sync before exiting, it may not be fully written out to
disk. Re-mkfs and re-install (or try to use the preliminary fsck, but
remeber that although fsck tries to correct the faults it finds, it may
fail.)
QUESTION: the mtools package on the root-disk won't work. I get an
ENOENT error message for all devices.
ANSWER: mtools needs to be told which device to look for. Use 'ln' or
'mknod' to create a sepcial file called "/dev/dosX", where X is A, B or
C. This file should point to the device you want to read.
QUESTION: Turbo (Microsoft) Assembler won't compile the Linux boot code.
In fact, some of the opcodes in these files look completely unfamiliar. Why?
ANSWER: The Linux boot codes are written in Bruce Evans' minix assembler,
which has the same opcodes as the original minix assembler. There are a few
differences between these and normal DOS assemblers:
- No segments - everything is in the same segment (at least in the
bootsectors and setup, as they don't use the .data segments)
- mov[b|w|l] are shorter versions of mov ax,[byte|word|long] ptr [XXX].
This is how unix assemblers normally give the size (byte, word or long).
Gas has similar constructs.
- There is no "jmp short", the opcodes are "j" for a short jump and
"jmp" for a long one.
- "jmpi" is a jump with a segment:offset pair. I don't know how this is
written in DOS assembly.
QUESTION: While running du I get "Kernel panic: free_inode: bit already
cleared". Also, du produces a ENOENT error for all the files in certain
of my directories. What's going on?
ANSWER: These are both consistent with a bad file-system. That's relatively
easy to produce by not syncing before rebooting, as linux usually has 1.5MB
of buffer space held in memory (unless you have <=4M RAM, in which case
the buffers are only about 0.5MB). Also linux doesn't do anything
special about the bit-map blocks, and as they are used often, those are
the thing most likely to be in memory. If you reboot, and they haven't
been written to disk ...
I'm afraid that as long as there is no fsck for linux there is no way to
correct the matter (unless you have minix and can run minix fsck), and
the only thing to do is to reinstall the filesystem from scratch (ie do
a mkfs from the minix demodisk and reboot from the original
linux-floppy).
A sync is done only every 30 seconds normally (standard unix practice),
so do one by hand (some people think you should do 3 syncs after each
other, but that's superstition), or by logging out from the
startup-shell, which automatically syncs the system. Unmounting a
filesystem also syncs it (but of course you can never unmount root).
Another (sad) possibility is that you have bad blocks on your disk. Not
very probable, as they would have to be in the inode-tables, just a
couple of blocks in size. Again there aren't programs available to read
a disk for bad sectors and put them in some kind of "bad-sector-file".
On IDE drives this is no problem (bad sectors are automatically mapped
away).
QUESTION: What is the "em" binary?
ANSWER: Em is micro-EMacs (probably version 3.10).
QUESTION: I seem to be unable to compile anythong with gcc. Why?
ANSWER: If you have only 2 MB RAM, gcc will die silently without compiling
anything. You must have at least 4 MB to do compilations
QUESTION: I'm using a program that uses signal handlers which are installed
using sigaction() with the SA_NOMASK, and they get a general protection
error right after the signal handler tries to return. What's going
wrong?
ANSWER: You are using a libc.a that has an out-of-date signal.o and
sig_restore.o file, and they don't know how to deal with SA_NOMASK.
(The one in gccbin.tar.Z is out-of-date.) You can obtain the newer
signal.c from the unistd.tar.Z file, but don't use the associated
sig_restore.c from there; the FTP sites should have a separate
sig_restore.c which is up to date. While you're at it, you should also
get an updated crt0.c file as well, and install your new crt0.o and
libc.a in /usr/lib.
(This answer will likely change in the near future, since there are
plans to change the format of the signal trampoline code yet again....
but for now, this should be an accurate description of how things stand
now.)
QUESTION: gcc complains about not finding crt0.o and the system include files
What am i doing wrong ?
ANSWER: The include files normal place is in /usr/include. libc.a and *.a
should be in /usr/lib

7926
docs/FAQ/linux-FAQ1.17.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2197
docs/FAQ/linux-faq.ascii.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
docs/FAQ/linux-faq.pdf Normal file

Binary file not shown.

9962
docs/FAQ/linux-faq.ps Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,84 @@
This is my first attempt at a texinfo version of the
Linux FAQ. For now I am calling it version 0.00001 and will
release a new version sometime next week which may be worthy
to bear the version number 1.0.
The info format is Gnu's version of hypertext. Alas, I
have not had the time to properly add all the cross references
and index terms (they will be in v1.0). Also, the TeX (and
the info format) are not anywhere near as beautiful as they
should be (hopefully, this too will be rectified). I also
left off section 7 for now (this includes the LPD and UUCP
sections). The reason for all of the above is of course time.
I said I'd have this out by Friday and with the abridged
edition, it's out a day early.
I have uploaded two packages to sunsite and tsx-11.
You will be able to grab them from sunsite immediately from
the incoming directory and will have to figure out where
Ted might hide them on tsx-11 (I'd check under /pub/linux/docs/info).
The names you will want to look for are linux.info.faq.src.tgz
and linux.info.faq.tgz.
The first linux.info.faq.src.tgz contains 5 texinfo files
which you can use to create TeX or info (or ASCII) versions of
the FAQ, if you have the texinfo package (from prep.ai.mit.edu ).
The second linux.info.faq.tgz is for the benefit of
those without the texinfo package. It contains a stand alone
info browser (compiled with static libc4.4) and the info files
created from the above source (as well as info files on how to
use info).
If you have emacs, you can use the built in info viewer to
browse the FAQ. This has the advantage that the arrow keys
work under Linux, but it is not hard to use without.
----------
I am assuming that if you grabbed the texinfo sources you
know what you are doing, so the rest of this file will deal with
how to install the linux.info.faq.tgz package.
----------
To install you can:
1) run the install script (info.install)
2) install it by hand which involves putting the info
binary somehere in your path and issuing a 'rehash'
command and copying the *.info* and 'dir' files to
/usr/gnu/info.
To use info, just type 'info' (or if you haven't installed things yet
and just want to check out the FAQ use 'info -f linux-faq.info'). Once
you're in info, it's a lot like emacs. If you want to read the FAQ
straight through, just keep hitting space, otherwise, you'll need to
learn some keys.
? = key summary
h = tutorial (highly recommended)
SPACE = move forward a page
DEL = move backward a page
CTRL-P = previous line
CTRL-N = next line
CTRL-F = forward char
CTRL-b = backward char
RETURN = activate menu or cross reference when cursor is on the
line containing it
m = select menu items by name
g = goto node (In this FAQ, all the node numbers are
the old subsection numbers, so if you see a reference
to section XI, type g XI-00 (the first node in a
section with the menu is always 00)).
i = search index for term
For more useful keys, use the built in help.
Again, I'm sorry this isn't as beautiful as I think it should
be. V1.0 should be much better, but I've got other obligations. This
version is just to see what people think of it. Send flames, comments,
ideas, corrections, and large sums of cash to sdh@po.cwru.edu.
Scott
sdh@po.cwru.edu

View File

@@ -0,0 +1,37 @@
-*- Text -*-
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is (dir)Top.

File: dir Node: Top This is the top of the INFO tree
-------------------------------------------------------------------------------
This (the Directory node) gives a menu of major topics.
Typing "d" returns here, "q" exits, "?" lists all INFO commands, "h"
gives a primer for first-timers, "mInfo<Return>" visits Info topic, etc.
-------------------------------------------------------------------------------
* Menu:
* FAQ: (linux-faq) Linux FAQ
* CL: (cl). Partial Common Lisp support for Emacs Lisp.
* CPP: (cpp). Gnu's C Pre-Processor.
* Diff: (diff). Gnu's diff package.
* Dosemu: (dosemu). Linux Dos Emulator v0.49.
* Emacs: (emacs). The extensible self-documenting text editor.
* Forms: (forms). Forms mode is an Emacs package
that lets the user edit a data structure
by filling in a form.
* GCC: (gcc). Gnu's C/C++ Compiler.
* GDB: (gdb). Gnu's Debugger.
* Gzip: (gzip). Gnu's file compression utilities.
* Info: (info). Documentation browsing system.
* info: (info-stnd). Stand alone info program.
* ISpell: (ispell). Gnu's Spelling Checker.
* Makeinfo: (makeinfo). Make an info file from texinfo source.
* Perl:(perl). Perl Script Language
* Texinfo: (texinfo). How to write a TeXinfo file.
* Tar: (tar). Gnu's tape archive system.
* VIP: (vip). A VI-emulation for Emacs.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,777 @@
This is Info file info.info, produced by Makeinfo-1.55 from the input
file info.texi.
This file describes how to use Info, the on-line, menu-driven GNU
documentation system.
Copyright (C) 1989, 1992 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Free Software Foundation.

File: info.info, Node: Top, Next: Getting Started, Prev: (dir), Up: (dir)
Info: An Introduction
*********************
Info is a program for reading documentation, which you are using now.
To learn how to use Info, type the command `h'. It brings you to a
programmed instruction sequence.
To learn advanced Info commands, type `n' twice. This brings you to
`Info for Experts', skipping over the . `Getting Started' chapter.
* Menu:
* Getting Started::
* Advanced Info::
* Create an Info File::

File: info.info, Node: Getting Started, Next: Advanced Info, Prev: Top, Up: Top
Getting Started
***************
This first part of the Info manual describes how to get around inside
of Info. The second part of the manual describes various advanced Info
commands, and how to write an Info as distinct from a Texinfo file.
The third part is about how to generate Info files from Texinfo files.
* Menu:
* Help-Small-Screen:: Starting Info on a Small Screen
* Help:: How to use Info
* Help-P:: Returning to the Previous node
* Help-^L:: The Space, Rubout, B and ^L commands.
* Help-M:: Menus
* Help-Adv:: Some advanced Info commands
* Help-Q:: Quitting Info

File: info.info, Node: Help-Small-Screen, Next: Help, Up: Getting Started
Starting Info on a Small Screen
===============================
Since your terminal has an unusually small number of lines on its
screen, it is necessary to give you special advice at the beginning.
If you see the text `--All----' at near the bottom right corner of
the screen, it means the entire text you are looking at fits on the
screen. If you see `--Top----' instead, it means that there is more
text below that does not fit. To move forward through the text and see
another screen full, press the Space bar, SPC. To move back up, press
the key labeled `Rubout' or `Delete' or DEL.
Here are 40 lines of junk, so you can try SPC and DEL and see what
they do. At the end are instructions of what you should do next.
This is line 17
This is line 18
This is line 19
This is line 20
This is line 21
This is line 22
This is line 23
This is line 24
This is line 25
This is line 26
This is line 27
This is line 28
This is line 29
This is line 30
This is line 31
This is line 32
This is line 33
This is line 34
This is line 35
This is line 36
This is line 37
This is line 38
This is line 39
This is line 40
This is line 41
This is line 42
This is line 43
This is line 44
This is line 45
This is line 46
This is line 47
This is line 48
This is line 49
This is line 50
This is line 51
This is line 52
This is line 53
This is line 54
This is line 55
This is line 56
If you have managed to get here, go back to the beginning with DEL, and
come back here again, then you understand SPC and DEL. So now type an
`n'--just one character; do not type the quotes and do not type the
Return key, RET, afterward--to get to the normal start of the course.

File: info.info, Node: Help, Next: Help-P, Prev: Help-Small-Screen, Up: Getting Started
How to use Info
===============
You are talking to the program Info, for reading documentation.
Right now you are looking at one "Node" of Information. A node
contains text describing a specific topic at a specific level of
detail. This node's topic is "how to use Info".
The top line of a node is its "header". This node's header (look at
it now) says that it is the node named `Help' in the file `info'. It
says that the `Next' node after this one is the node called `Help-P'.
An advanced Info command lets you go to any node whose name you know.
Besides a `Next', a node can have a `Previous' or an `Up'. This
node has a `Previous' but no `Up', as you can see.
Now it is time to move on to the `Next' node, named `Help-P'.
>> Type `n' to move there. Type just one character; do not type
the quotes and do not type a RET afterward.
`>>' in the margin means it is really time to try a command.

File: info.info, Node: Help-P, Next: Help-^L, Prev: Help, Up: Getting Started
Returning to the Previous node
==============================
This node is called `Help-P'. The `Previous' node, as you see, is
`Help', which is the one you just came from using the `n' command.
Another `n' command now would take you to the next node, `Help-^L'.
>> But do not do that yet. First, try the `p' command, which takes
you to the `Previous' node. When you get there, you can do an `n'
again to return here.
This all probably seems insultingly simple so far, but *do not* be
led into skimming. Things will get more complicated soon. Also, do
not try a new command until you are told it is time to. Otherwise, you
may make Info skip past an important warning that was coming up.
>> Now do an `n' to get to the node `Help-^L' and learn more.

File: info.info, Node: Help-^L, Next: Help-M, Prev: Help-P, Up: Getting Started
The Space, Rubout, B and ^L commands.
=====================================
This node's header tells you that you are now at node `Help-^L', and
that `p' would get you back to `Help-P'. The node's title is
underlined; it says what the node is about (most nodes have titles).
This is a big node and it does not all fit on your display screen.
You can tell that there is more that is not visible because you can see
the string `--Top-----' rather than `--All----' near the bottom right
corner of the screen.
The SPC, DEL and `b' commands exist to allow you to "move around" in
a node that does not all fit on the screen at once. SPC moves forward,
to show what was below the bottom of the screen. DEL moves backward,
to show what was above the top of the screen (there is not anything
above the top until you have typed some spaces).
>> Now try typing a SPC (afterward, type a DEL to return here).
When you type the SPC, the two lines that were at the bottom of the
screen appear at the top, followed by more lines. DEL takes the two
lines from the top and moves them to the bottom, *usually*, but if
there are not a full screen's worth of lines above them they may not
make it all the way to the bottom.
If you type a SPC when there is no more to see, it rings the bell
and otherwise does nothing. The same goes for a DEL when the header of
the node is visible.
If your screen is ever garbaged, you can tell Info to print it out
again by typing `C-l' (`Control-L', that is--hold down "Control" and
type an L or `l').
>> Type `C-l' now.
To move back to the beginning of the node you are on, you can type a
lot of DELs. You can also type simply `b' for beginning.
>> Try that now. (I have put in enough verbiage to make sure you are
not on the first screenful now). Then come back, typing SPC
several times.
You have just learned a considerable number of commands. If you
want to use one but have trouble remembering which, you should type a ?
which prints out a brief list of commands. When you are finished
looking at the list, make it go away by typing a SPC.
>> Type a ? now. After it finishes, type a SPC.
(If you are using the standalone Info reader, type `l' to return
here.)
From now on, you will encounter large nodes without warning, and
will be expected to know how to use SPC and DEL to move around in them
without being told. Since not all terminals have the same size screen,
it would be impossible to warn you anyway.
>> Now type `n' to see the description of the `m' command.

File: info.info, Node: Help-M, Next: Help-Adv, Prev: Help-^L, Up: Getting Started
Menus
=====
Menus and the `m' command
With only the `n' and `p' commands for moving between nodes, nodes
are restricted to a linear sequence. Menus allow a branching
structure. A menu is a list of other nodes you can move to. It is
actually just part of the text of the node formatted specially so that
Info can interpret it. The beginning of a menu is always identified by
a line which starts with `* Menu:'. A node contains a menu if and only
if it has a line in it which starts that way. The only menu you can
use at any moment is the one in the node you are in. To use a menu in
any other node, you must move to that node first.
After the start of the menu, each line that starts with a `*'
identifies one subtopic. The line usually contains a brief name for
the subtopic (followed by a `:'), the name of the node that talks about
that subtopic, and optionally some further description of the subtopic.
Lines in the menu that do not start with a `*' have no special
meaning--they are only for the human reader's benefit and do not define
additional subtopics. Here is an example:
* Foo: FOO's Node This tells about FOO
The subtopic name is Foo, and the node describing it is `FOO's Node'.
The rest of the line is just for the reader's Information. [[ But this
line is not a real menu item, simply because there is no line above it
which starts with `* Menu:'.]]
When you use a menu to go to another node (in a way that will be
described soon), what you specify is the subtopic name, the first thing
in the menu line. Info uses it to find the menu line, extracts the
node name from it, and goes to that node. The reason that there is
both a subtopic name and a node name is that the node name must be
meaningful to the computer and may therefore have to be ugly looking.
The subtopic name can be chosen just to be convenient for the user to
specify. Often the node name is convenient for the user to specify and
so both it and the subtopic name are the same. There is an
abbreviation for this:
* Foo:: This tells about FOO
This means that the subtopic name and node name are the same; they are
both `Foo'.
>> Now use SPCs to find the menu in this node, then come back to
the front with a `b'. As you see, a menu is actually visible in its
node. If you cannot find a menu in a node by looking at it, then
the node does not have a menu and the `m' command is not available.
The command to go to one of the subnodes is `m'--but *do not do it
yet!* Before you use `m', you must understand the difference between
commands and arguments. So far, you have learned several commands that
do not need arguments. When you type one, Info processes it and is
instantly ready for another command. The `m' command is different: it
is incomplete without the "name of the subtopic". Once you have typed
`m', Info tries to read the subtopic name.
Now look for the line containing many dashes near the bottom of the
screen. There is one more line beneath that one, but usually it is
blank If it is empty, Info is ready for a command, such as `n' or `b'
or SPC or `m'. If that line contains text ending in a colon, it mean
Info is trying to read the "argument" to a command. At such times,
commands do not work, because Info tries to use them as the argument.
You must either type the argument and finish the command you started,
or type `Control-g' to cancel the command. When you have done one of
those things, the line becomes blank again.
The command to go to a subnode via a menu is `m'. After you type
the `m', the line at the bottom of the screen says `Menu item: '. You
must then type the name of the subtopic you want, and end it with a RET.
You can abbreviate the subtopic name. If the abbreviation is not
unique, the first matching subtopic is chosen. Some menus put the
shortest possible abbreviation for each subtopic name in capital
letters, so you can see how much you need to type. It does not matter
whether you use upper case or lower case when you type the subtopic.
You should not put any spaces at the end, or inside of the item name,
except for one space where a space appears in the item in the menu.
Here is a menu to give you a chance to practice.
* Menu: The menu starts here.
This menu givs you three ways of going to one place, Help-FOO.
* Foo: Help-FOO. A node you can visit for fun.
* Bar: Help-FOO. Strange! two ways to get to the same place.
* Help-FOO:: And yet another!
>> Now type just an `m' and see what happens:
Now you are "inside" an `m' command. Commands cannot be used now;
the next thing you will type must be the name of a subtopic.
You can change your mind about doing the `m' by typing Control-g.
>> Try that now; notice the bottom line clear.
>> Then type another `m'.
>> Now type `BAR' item name. Do not type RET yet.
While you are typing the item name, you can use the DEL character to
cancel one character at a time if you make a mistake.
>> Type one to cancel the `R'. You could type another `R' to
replace it. You do not have to, since `BA' is a valid abbreviation.
>> Now you are ready to go. Type a RET.
After visiting Help-FOO, you should return here.
>> Type `n' to see more commands.
Here is another way to get to Help-FOO, a menu. You can ignore this
if you want, or else try it (but then please come back to here).
* Menu:
* Help-FOO::

File: info.info, Node: Help-FOO, Up: Help-M
The `u' command
---------------
Congratulations! This is the node `Help-FOO'. Unlike the other
nodes you have seen, this one has an `Up': `Help-M', the node you just
came from via the `m' command. This is the usual convention--the nodes
you reach from a menu have `Up' nodes that lead back to the menu.
Menus move Down in the tree, and `Up' moves Up. `Previous', on the
other hand, is usually used to "stay on the same level but go backwards"
You can go back to the node `Help-M' by typing the command `u' for
"Up". That puts you at the *front* of the node--to get back to where
you were reading you have to type some SPCs.
>> Now type `u' to move back up to `Help-M'.

File: info.info, Node: Help-Adv, Next: Help-Q, Prev: Help-M, Up: Getting Started
Some advanced Info commands
===========================
The course is almost over, so please stick with it to the end.
If you have been moving around to different nodes and wish to
retrace your steps, the `l' command (`l' for "last") will do that, one
node at a time. If you have been following directions, an `l' command
now will get you back to `Help-M'. Another `l' command would undo the
`u' and get you back to `Help-FOO'. Another `l' would undo the `m' and
get you back to `Help-M'.
>> Try typing three `l''s, pausing in between to see what each
`l' does.
Then follow directions again and you will end up back here.
Note the difference between `l' and `p': `l' moves to where *you*
last were, whereas `p' always moves to the node which the header says
is the `Previous' node (from this node, to `Help-M').
The `d' command gets you instantly to the Directory node. This
node, which is the first one you saw when you entered Info, has a menu
which leads (directly, or indirectly through other menus), to all the
nodes that exist.
>> Try doing a `d', then do an `l' to return here (yes, *do*
return).
Sometimes, in Info documentation, you will see a cross reference.
Cross references look like this: *Note Cross: Help-Cross. That is a
real, live cross reference which is named `Cross' and points at the
node named `Help-Cross'.
If you wish to follow a cross reference, you must use the `f'
command. The `f' must be followed by the cross reference name (in this
case, `Cross'). You can use DEL to edit the name, and if you change
your mind about following any reference you can use `Control-g' to
cancel the command.
Completion is available in the `f' command; you can complete among
all the cross reference names in the current node.
>> Type `f', followed by `Cross', and a RET.
To get a list of all the cross references in the current node, you
can type `?' after an `f'. The `f' continues to await a cross
reference name even after printing the list, so if you do not actually
want to follow a reference you should type a `Control-g' to cancel the
`f'.
>> Type "f?" to get a list of the footnotes in this node. Then type
a `Control-g' and see how the `f' gives up.
>> Now type `n' to see the last node of the course.

File: info.info, Node: Help-Cross, Up: Help-Adv
The node reached by the cross reference in Info
-----------------------------------------------
This is the node reached by the cross reference named `Cross'.
While this node is specifically intended to be reached by a cross
reference, most cross references lead to nodes that "belong" someplace
else far away in the structure of Info. So you cannot expect the
footnote to have a `Next', `Previous' or `Up' pointing back to where
you came from. In general, the `l' (el) command is the only way to get
back there.
>> Type `l' to return to the node where the cross reference was.

File: info.info, Node: Help-Q, Prev: Help-Adv, Up: Getting Started
Quitting Info
=============
To get out of Info, back to what you were doing before, type `q' for
"Quit".
This is the end of the course on using Info. There are some other
commands that are not essential or are meant for experienced users;
they are useful, and you can find them by looking in the directory for
documentation on Info. Finding them will be a good exercise in using
Info in the usual manner.
>> Type `d' to go to the Info directory node; then type `mInfo'
and RET, to get to the node about Info and see what other help is
available.

File: info.info, Node: Advanced Info, Next: Create an Info File, Prev: Getting Started, Up: Top
Info for Experts
****************
This chapter describes various advanced Info commands, and how to
write an Info as distinct from a Texinfo file. (However, in most
cases, writing a Texinfo file is better, since you can use it *both* to
generate an Info file and to make a printed manual. *Note Overview of
Texinfo: (texinfo)Top.)
* Menu:
* Expert:: Advanced Info commands: g, s, e, and 1 - 5.
* Add:: Describes how to add new nodes to the hierarchy.
Also tells what nodes look like.
* Menus:: How to add to or create menus in Info nodes.
* Cross-refs:: How to add cross-references to Info nodes.
* Tags:: How to make tag tables for Info files.
* Checking:: Checking an Info File

File: info.info, Node: Expert, Next: Add, Up: Advanced Info
Advanced Info Commands
======================
`g', `s', `1', - `5', and `e'
If you know a node's name, you can go there by typing `g', the name,
and RET. Thus, `gTopRET' would go to the node called `Top' in this
file (its directory node). `gExpertRET' would come back here.
Unlike `m', `g' does not allow the use of abbreviations.
To go to a node in another file, you can include the filename in the
node name by putting it at the front, in parentheses. Thus,
`g(dir)TopRET' would go to the Info Directory node, which is node `Top'
in the file `dir'.
The node name `*' specifies the whole file. So you can look at all
of the current file by typing `g*RET' or all of any other file with
`g(FILENAME)RET'.
The `s' command allows you to search a whole file for a string. It
switches to the next node if and when that is necessary. You type `s'
followed by the string to search for, terminated by RET. To search for
the same string again, just `s' followed by RET will do. The file's
nodes are scanned in the order they are in in the file, which has no
necessary relationship to the order that they may be in in the tree
structure of menus and `next' pointers. But normally the two orders
are not very different. In any case, you can always do a `b' to find
out what node you have reached, if the header is not visible (this can
happen, because `s' puts your cursor at the occurrence of the string,
not at the beginning of the node).
If you grudge the system each character of type-in it requires, you
might like to use the commands `1', `2', `3', `4', and `5'. They are
short for the `m' command together with an argument. "1", "2", "3",
"4", and "5". `1' goes through the first item in the current node's
menu; `2' goes through the second item, etc. Note that numbers larger
than 5 are not allowed. If the item you want is that far down, you are
better off using an abbreviation for its name than counting.
The Info command `e' changes from Info mode to an ordinary Emacs
editing mode, so that you can edit the text of the current node. Type
`C-c C-c' to switch back to Info. The `e' command is allowed only if
the variable `Info-enable-edit' is non-`nil'.

File: info.info, Node: Add, Next: Menus, Prev: Expert, Up: Advanced Info
Adding a new node to Info
=========================
To add a new topic to the list in the directory, you must:
1. Create a node, in some file, to document that topic.
2. Put that topic in the menu in the directory. *Note Menu: Menus.
The new node can live in an existing documentation file, or in a new
one. It must have a ^_ character before it (invisible to the user;
this node has one but you cannot see it), and it ends with either a ^_,
a ^L, or the end of file. Note: If you put in a ^L to end a new node,
be sure that there is a ^_ after it to start the next one, since ^L
cannot *start* a node. Also, a nicer way to make a node boundary be a
page boundary as well is to put a ^L *right after* the ^_.
The ^_ starting a node must be followed by a newline or a ^L
newline, after which comes the node's header line. The header line
must give the node's name (by which Info finds it), and state the names
of the `Next', `Previous', and `Up' nodes (if there are any). As you
can see, this node's `Up' node is the node `Top', which points at all
the documentation for Info. The `Next' node is `Menus'.
The keywords "Node", "Previous", "Up" and "Next", may appear in any
order, anywhere in the header line, but the recommended order is the
one in this sentence. Each keyword must be followed by a colon, spaces
and tabs, and then the appropriate name. The name may be terminated
with a tab, a comma, or a newline. A space does not end it; node names
may contain spaces. The case of letters in the names is insignificant.
A node name has two forms. A node in the current file is named by
what appears after the `Node: ' in that node's first line. For
example, this node's name is `Add'. A node in another file is named by
`(FILENAME)NODE-WITHIN-FILE', as in `(info)Add' for this node. If the
file name is relative, it is taken starting from the standard Info file
directory of your site. The name `(FILENAME)Top' can be abbreviated to
just `(FILENAME)'. By convention, the name `Top' is used for the
"highest" node in any single file--the node whose `Up' points out of
the file. The Directory node is `(dir)'. The `Top' node of a document
file listed in the Directory should have an `Up: (dir)' in it.
The node name `*' is special: it refers to the entire file. Thus,
`g*' shows you the whole current file. The use of the node `*' is to
make it possible to make old-fashioned, unstructured files into nodes
of the tree.
The `Node:' name, in which a node states its own name, must not
contain a filename, since Info when searching for a node does not
expect one to be there. The `Next', `Previous' and `Up' names may
contain them. In this node, since the `Up' node is in the same file,
it was not necessary to use one.
Note that the nodes in this file have a file name in the header
line. The file names are ignored by Info, but they serve as comments
to help identify the node for the user.

File: info.info, Node: Menus, Next: Cross-refs, Prev: Add, Up: Advanced Info
How to Create Menus
===================
Any node in the Info hierarchy may have a "menu"--a list of subnodes.
The `m' command searches the current node's menu for the topic which it
reads from the terminal.
A menu begins with a line starting with `* Menu:'. The rest of the
line is a comment. After the starting line, every line that begins
with a `* ' lists a single topic. The name of the topic-the argument
that the user must give to the `m' command to select this topic--comes
right after the star and space, and is followed by a colon, spaces and
tabs, and the name of the node which discusses that topic. The node
name, like node names following `Next', `Previous' and `Up', may be
terminated with a tab, comma, or newline; it may also be terminated
with a period.
If the node name and topic name are the same, than rather than
giving the name twice, the abbreviation `* NAME::' may be used (and
should be used, whenever possible, as it reduces the visual clutter in
the menu).
It is considerate to choose the topic names so that they differ from
each other very near the beginning--this allows the user to type short
abbreviations. In a long menu, it is a good idea to capitalize the
beginning of each item name which is the minimum acceptable
abbreviation for it (a long menu is more than 5 or so entries).
The nodes listed in a node's menu are called its "subnodes", and it
is their "superior". They should each have an `Up:' pointing at the
superior. It is often useful to arrange all or most of the subnodes in
a sequence of `Next' and `Previous' pointers so that someone who wants
to see them all need not keep revisiting the Menu.
The Info Directory is simply the menu of the node `(dir)Top'--that
is, node `Top' in file `.../info/dir'. You can put new entries in that
menu just like any other menu. The Info Directory is *not* the same as
the file directory called `info'. It happens that many of Info's files
live on that file directory, but they do not have to; and files on that
directory are not automatically listed in the Info Directory node.
Also, although the Info node graph is claimed to be a "hierarchy",
in fact it can be *any* directed graph. Shared structures and pointer
cycles are perfectly possible, and can be used if they are appropriate
to the meaning to be expressed. There is no need for all the nodes in
a file to form a connected structure. In fact, this file has two
connected components. You are in one of them, which is under the node
`Top'; the other contains the node `Help' which the `h' command goes
to. In fact, since there is no garbage collector, nothing terrible
happens if a substructure is not pointed to, but such a substructure is
rather useless since nobody can ever find out that it exists.

File: info.info, Node: Cross-refs, Next: Tags, Prev: Menus, Up: Advanced Info
Creating Cross References
=========================
A cross reference can be placed anywhere in the text, unlike a menu
item which must go at the front of a line. A cross reference looks
like a menu item except that it has `*note' instead of `*'. It
*cannot* be terminated by a `)', because `)''s are so often part of
node names. If you wish to enclose a cross reference in parentheses,
terminate it with a period first. Here are two examples of cross
references pointers:
*Note details: commands. (See *note 3: Full Proof.)
They are just examples. The places they "lead to" do not really
exist!

File: info.info, Node: Tags, Next: Checking, Prev: Cross-refs, Up: Advanced Info
Tag Tables for Info Files
=========================
You can speed up the access to nodes of a large Info file by giving
it a tag table. Unlike the tag table for a program, the tag table for
an Info file lives inside the file itself and is used automatically
whenever Info reads in the file.
To make a tag table, go to a node in the file using Emacs Info mode
and type `M-x Info-tagify'. Then you must use `C-x C-s' to save the
file.
Once the Info file has a tag table, you must make certain it is up
to date. If, as a result of deletion of text, any node moves back more
than a thousand characters in the file from the position recorded in
the tag table, Info will no longer be able to find that node. To
update the tag table, use the `Info-tagify' command again.
An Info file tag table appears at the end of the file and looks like
this:
^_
Tag Table:
File: info, Node: Cross-refs^?21419
File: info, Node: Tags^?22145
^_
End Tag Table
Note that it contains one line per node, and this line contains the
beginning of the node's header (ending just after the node name), a DEL
character, and the character position in the file of the beginning of
the node.

File: info.info, Node: Checking, Prev: Tags, Up: Advanced Info
Checking an Info File
=====================
When creating an Info file, it is easy to forget the name of a node
when you are making a pointer to it from another node. If you put in
the wrong name for a node, this is not detected until someone tries to
go through the pointer using Info. Verification of the Info file is an
automatic process which checks all pointers to nodes and reports any
pointers which are invalid. Every `Next', `Previous', and `Up' is
checked, as is every menu item and every cross reference. In addition,
any `Next' which does not have a `Previous' pointing back is reported.
Only pointers within the file are checked, because checking pointers to
other files would be terribly slow. But those are usually few.
To check an Info file, do `M-x Info-validate' while looking at any
node of the file with Emacs Info mode.

File: info.info, Node: Create an Info File, Prev: Advanced Info, Up: Top
Creating an Info File from a Makeinfo file
******************************************
`makeinfo' is a utility that converts a Texinfo file into an Info
file; `texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs
functions that do the same.
*Note Creating an Info File: (texinfo)Create an Info File, to learn
how to create an Info file from a Texinfo file.
*Note Overview of Texinfo: (texinfo)Top, to learn how to write a
Texinfo file.

Tag Table:
Node: Top913
Node: Getting Started1431
Node: Help-Small-Screen2179
Node: Help3921
Node: Help-P4949
Node: Help-^L5811
Node: Help-M8462
Node: Help-FOO14030
Node: Help-Adv14766
Node: Help-Cross17148
Node: Help-Q17794
Node: Advanced Info18434
Node: Expert19330
Node: Add21601
Node: Menus24635
Node: Cross-refs27509
Node: Tags28211
Node: Checking29510
Node: Create an Info File30434

End Tag Table

View File

@@ -0,0 +1,10 @@
#!/bin/sh
OWNER=root.system
chown $OWNER info
chmod 755 info
cp info /usr/bin
mkdir /usr/gnu
mkdir /usr/gnu/info
chown $OWNER *.info* dir
chmod 644 *.info* dir
cp *.info* dir /usr/gun/info

View File

@@ -0,0 +1,362 @@
This is Info file linux-faq.info, produced by Makeinfo-1.55 from the
input file faq.texi.
Answers to Frequently asked questions about Linux (v1.19) Last
Modified 93/06/11 v1.19

Indirect:
linux-faq.info-1: 182
linux-faq.info-2: 49795
linux-faq.info-3: 96261
linux-faq.info-4: 146221
linux-faq.info-5: 196205
linux-faq.info-6: 245758
linux-faq.info-7: 295314

Tag Table:
(Indirect)
Node: Top182
Node: 0-001645
Node: Authors1990
Node: FAQ Introduction3961
Node: Other Help6361
Node: Books6701
Node: 0-017277
Node: I-0010836
Node: I-0112745
Node: I-0213898
Node: I-0314857
Node: I-0415331
Node: I-0516432
Node: I-0617771
Node: I-0718629
Node: I-0820812
Node: I-0921238
Node: I-1021583
Node: I-1121791
Node: I-1222281
Node: I-1322803
Node: I-1423583
Node: I-1524056
Node: I-1625100
Node: I-1725557
Node: I-1826255
Node: I-1926469
Node: I-2026937
Node: I-2127305
Node: I-2227737
Node: I-2327985
Node: I-2428862
Node: I-2529749
Node: II-0032036
Node: IIA-0032290
Node: II-0133117
Node: II-0235654
Node: II-0336992
Node: II-0438054
Node: II-0543219
Node: II-0644326
Node: II-0744909
Node: II-0845316
Node: II-0947563
Node: IIB-0048477
Node: II-1049521
Node: II-1149795
Node: II-1250386
Node: II-1350948
Node: II-1451452
Node: II-1551890
Node: II-1654205
Node: II-1755753
Node: II-1873821
Node: III-0074241
Node: IIIA-0074876
Node: III-0175193
Node: III-0277564
Node: IIIB-0078232
Node: III-0378858
Node: III-0482504
Node: III-0582999
Node: III-0685571
Node: III-0788287
Node: III-0891062
Node: IIIC-0091941
Node: III-0994583
Node: III-1096261
Node: III-11102651
Node: III-12103148
Node: III-13104140
Node: III-14104938
Node: III-15105987
Node: III-16106741
Node: III-17107390
Node: III-18108388
Node: III-19110185
Node: III-20110900
Node: III-21111295
Node: III-22114986
Node: III-23116779
Node: III-24117778
Node: III-25118690
Node: III-26121313
Node: III-27122414
Node: III-28122947
Node: III-29123860
Node: III-30124694
Node: III-31125378
Node: IV-00125784
Node: IV-01127064
Node: IV-02128873
Node: IV-03129122
Node: IV-04129601
Node: IV-05129930
Node: IV-06130309
Node: IV-07130782
Node: IV-08131238
Node: IV-09132229
Node: IV-10132583
Node: IV-11134378
Node: IV-12135139
Node: IV-13135341
Node: V-00135817
Node: V-01137476
Node: V-02138078
Node: V-03138734
Node: V-04139644
Node: V-05140827
Node: V-06141242
Node: V-07142123
Node: V-08142794
Node: V-09143371
Node: V-10143662
Node: V-11144029
Node: V-12144639
Node: V-13144991
Node: V-14145603
Node: V-15146221
Node: V-16146608
Node: VI-00146941
Node: VIA-00147501
Node: VI-01147949
Node: VI-02149457
Node: VI-03150883
Node: VI-04151940
Node: VIB-00152405
Node: VI-05153904
Node: VI-06166233
Node: VIC-00167256
Node: VI-07169313
Node: VI-08170045
Node: VI-09170526
Node: VI-10170948
Node: VI-11172510
Node: VI-12172917
Node: VI-13174393
Node: VI-14175302
Node: VII-00177536
Node: VII-01180366
Node: VII-02181129
Node: VII-03181665
Node: VII-04183187
Node: VII-05183700
Node: VII-06184026
Node: VII-07185425
Node: VII-08185936
Node: VII-09186238
Node: VII-10186927
Node: VII-11187340
Node: VII-12187821
Node: VII-13188281
Node: VII-14189009
Node: VII-15189964
Node: VII-16190552
Node: VII-17191044
Node: VII-18191576
Node: VII-19192529
Node: VII-20193376
Node: VII-21193960
Node: VII-22194427
Node: VII-23195572
Node: VII-24196205
Node: VII-25196628
Node: VII-26197096
Node: VII-27197565
Node: VII-28198111
Node: VIII-00201082
Node: VIII-01203861
Node: VIII-02204382
Node: VIII-03204944
Node: VIII-04205348
Node: VIII-05206294
Node: VIII-06206598
Node: VIII-07207408
Node: VIII-08207979
Node: VIII-09208432
Node: VIII-10210088
Node: VIII-11210495
Node: VIII-12211183
Node: VIII-13211466
Node: VIII-14211736
Node: VIII-15212185
Node: VIII-16212866
Node: VIII-17214358
Node: VIII-18214685
Node: VIII-19215227
Node: VIII-20215830
Node: VIII-21216619
Node: VIII-22217031
Node: VIII-23217679
Node: VIII-24220905
Node: VIII-25223001
Node: VIII-26225435
Node: VIII-27225726
Node: VIII-28226504
Node: VIII-29227637
Node: VIII-30228789
Node: VIII-31229732
Node: VIII-32230535
Node: VIII-33231145
Node: VIII-34231479
Node: VIII-35232998
Node: VIII-36235460
Node: VIII-37236052
Node: VIII-38236534
Node: IX-00236740
Node: IXA-00236961
Node: IX-01238949
Node: IX-02240576
Node: IX-03241027
Node: IX-04241554
Node: IX-05241861
Node: IX-06242097
Node: IX-07242284
Node: IX-08242529
Node: IX-09243171
Node: IX-10243804
Node: IX-11243987
Node: IX-12244134
Node: IX-13244462
Node: IX-14244796
Node: IX-15245051
Node: IX-16245315
Node: IX-17245563
Node: IX-18245758
Node: IX-19246671
Node: IX-20246904
Node: IX-21247429
Node: IX-22249305
Node: IX-23249503
Node: IX-24250855
Node: IXB-00254941
Node: IX-25255711
Node: IX-26256185
Node: IX-27256585
Node: IX-28257065
Node: IX-29258124
Node: IX-30258753
Node: IX-31259191
Node: X-00259921
Node: X-01261520
Node: X-02262343
Node: X-03262920
Node: X-04263248
Node: X-05263562
Node: X-06264441
Node: X-07265251
Node: X-08265642
Node: X-09266021
Node: X-10266313
Node: X-11266549
Node: X-12267035
Node: X-13268173
Node: X-14269540
Node: X-15269837
Node: X-16270381
Node: X-17270692
Node: X-18271806
Node: X-19273010
Node: X-20273609
Node: X-21274114
Node: X-22274572
Node: X-23275219
Node: XI-00276217
Node: XIA-00276517
Node: XIB-00277068
Node: XI-01278249
Node: XI-02278637
Node: XI-03279210
Node: XI-04279426
Node: XI-05279969
Node: XI-06280404
Node: XI-07280737
Node: XI-08281349
Node: XI-09281935
Node: XI-10282530
Node: XI-11283424
Node: XI-12283738
Node: XI-13284052
Node: XI-14284588
Node: XI-15285053
Node: XI-16285519
Node: XII-00285931
Node: XIIA-00287196
Node: XII-01287539
Node: XII-02288095
Node: XII-03288732
Node: XII-04289070
Node: XIIB-00289489
Node: XII-05290221
Node: XII-06293624
Node: XII-07293919
Node: XII-08295314
Node: XIIC-00296307
Node: XII-09296601
Node: XII-10296951
Node: XII-11297869
Node: XIID-00299214
Node: XII-12299676
Node: XII-13300203
Node: XII-14300841
Node: XII-15302074
Node: XII-16302929
Node: XIIE-00304032
Node: XII-17304678
Node: XII-18304947
Node: XII-19306287
Node: XII-20306778
Node: XII-21307748
Node: XII-22308142
Node: XII-23308695
Node: XII-24309523
Node: XIIF-00310625
Node: XII-25311421
Node: XII-26312010
Node: XII-27312650
Node: XII-28313895
Node: XII-29314897
Node: XII-30315672
Node: XII-31317338
Node: XII-32318057
Node: XIIG-00318530
Node: XII-33319398
Node: XII-34319861
Node: XII-35320229
Node: XII-36320518
Node: XII-37320896
Node: XII-38321255
Node: XII-39321724
Node: XII-40322402
Node: XIIH-00324625
Node: XII-41325178
Node: XII-42325822
Node: XII-43326340
Node: XII-44327571
Node: XII-45329330
Node: XII-46331927
Node: XII-47333684
Node: XII-I-00334531
Node: XIII-00335312
Node: Concept Index336233

End Tag Table

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

740
docs/FAQ/serialFAQ1.1.txt Normal file
View File

@@ -0,0 +1,740 @@
Serial FAQ version 1.1 Wed Sep 8 21:40:31 EDT 1993
maintained by Greg Hankins <gregh@cc.gatech.edu>.
This FAQ attempts to provide answers to a variety of serial type problems.
There is a surprising complexity in getting things to work, and a broad
range of topics.
(1). How are serial devices named?
(2). What is all this about 'getty_ps 2.0.7b'?
(3). How do I dial out with my modem?
(4). How do I dial in and out with my modem?
(5). How do I set up a terminal connected to my PC?
(6). Can I use more than 2 serial ports? What are these interrupts all about?
(7). How can I get Linux to automagically configure the serial devices?
(8). What kind of serial boards does Linux support?
(9). What major and minor numbers should my serial devices in /dev have?
(10). How should I configure my modem?
(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' quick start
(A). Troubleshooting
1. I keep getting "line XXX of inittab invalid"
2. When I try to dial out, it says "/dev/cuaX: Device or resource busy"
3. I keep getting "respawning too fast, disableing for 5 minutes".
4. I have a modem/terminal connected, but root can't login from the
serial device.
5. I have my terminal connected to my PC, but after I type in a login
name, it just locks up.
6. At high speeds, my modem looses characters, and my computer gets
really slow!
(B). Linux FTP sites
(C). Recommended Reading
(D). Contributions
===============================================================================
(1). How are serial devices named?
There are 4 basic 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.
Furthermore, when you install from SLS 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* port 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 recommend 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.
A program like 'kermit' for instance uses the /dev/modem device if there is
no .kermrc file present in your $HOME which contains the settings for kermit.
===============================================================================
(2). What is 'getty_ps 2.0.7b'? What's so great about it?
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.
Please make sure you use 'getty_ps 2.0.7b' only if you're running on a pl6
or higher kernel. Previous versions of 'getty_ps' will not work with these.
Furthermore, 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. Remove all the old 'getty's.
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.
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.ttySX 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
===============================================================================
(3). How do I dial out with my modem?
- First, make sure you have the right hardware. You probably want to hook
the modem to COM2, the DB25 pin port on your PC. This requires a straight
through cable, with no pins crossed. (The 9 pin COM1 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. You may have trouble
if you are using Rockwell chipsets claiming to emulate 16550A UARTs.
Ted T'so is currently working on the problem.
Most internal modems try to emulate a 8250, 16450, 16550A UART. It all depends
on the quality of this emulation if it will work under Linux too. (DOS
is too simple about these things).
Many people prefer an external modem over an internal one, because
it allows you to check the little lights which tell you what is going on.
Furthermore in case of some real trouble, you can switch off the modem
without switching of the complete PC. Lastly, an external modem has its
own power supply, which means it doesn't draw power from your PC. It doesn't
dissipate heat inside your PC, either.
- 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/cua1, 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'.
===============================================================================
(4). 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 FAQ (2).
Update /etc/gettydefs to include entries for modems:
(note that the entries point to each other, these are not for fixed baud)
# 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 baud or higher modem with flow control, you can lock
your serial port at 19200 or 38400 and let the modem handle the
translation to other baud 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
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. Party.
- 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.
===============================================================================
(5). How do I set up a terminal connected to my PC.
- 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:
(If none of these work, please tell me what works for you!)
2 - 3 This works for me on a
3 - 2 Wyse terminal.
7 - 7 You milage may vary.
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.
- Replace the stock 'getty' with 'getty_ps' as described in FAQ (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
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. Login on your terminal and PC. 'talk' to yourself from accross
the room.
===============================================================================
(6). 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 hardly anyone uses 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
(or you can play with the jumpers on your boards - 'setserial' is *much*
easier!). As far as I know, 'setserial' will work with Linux >= 0.99pl9.
It is pretty much mandatory for Linux 0.99pl10, since this version of Linux
does not do much auto detection of serial devices.
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 5 # my mouse
/etc/setserial /dev/cua1 irq 4 # my terminal
/etc/setserial /dev/cua3 irq 3 # my modem
# my printer is hooked up on my parallel port IRQ 7 - no change necessary
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.
===============================================================================
(7). 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.
===============================================================================
(8). What kind of serial boards does linux support?
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 multiport 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
===============================================================================
(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
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 /dev/cua0:
yourbox# mknod /dev/cua0 c 5 64
yourbox# mknod /dev/ttyS0 c 4 64
===============================================================================
(10). How should I configure my modem?
- You'll have to get you modem connected before you try to set registers.
- 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.
- For dial in and dial out use, you have to set it up a certain way.
Here is what you have to set:
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
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 FAQ. 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 programs 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. 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.
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. It's
kinda like the famous cream pie/conveyor belt setup. When the belt is going
slow, the person on the end has enough time to remove each pie, and safely
store it. But, when the belt is going fast, the person doesn't have time
to get each pie, and things wind up getting messy.
That's where the 16550 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 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 16550 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
16550 chips and replace your existing UARTs. They are pin-to-pin compatible.
===============================================================================
(14). 'kermit': a quick start.
'kermit' is one of the many communications programs available to you. 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 command 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 # tell 'kermit' which 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 protocol, you can include:
define rz !rz </dev/cua3 >/dev/cua3
define sz !sz \%0 >/dev/cua3 </dev/cua3
in your .kermrc.
This has been a really quick intro, for more info on 'kermit', RTFM.
===============================================================================
(A). Troubleshooting:
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'.
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 you 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.
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'.
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.
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
There are a lot of other interesting options to set in login.defs, too.
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
You might have to reboot for the changes to take effect.
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 16550
UARTs, you should upgrade them. See the section about UARTs.
===============================================================================
(B). Linux ftp sites: (please choose the site nearest to you)
tsx-11.mit.edu:/pub/linux (MA, USA)
sunsite.unc.edu:/pub/Linux (NC, USA)
nic.funet.fi (Finland)
===============================================================================
(C). Recommended Reading:
init(1), getty(1), login(1)
gettydefs(4)
setserial(8)
Your modem manual
"The UNIX System Administration Handbook" by Nemeth, Snyder and Seebass
"Managing UUCP and Usenet" by Tom O'Reilly and Grace Todino,
O'Reilly Associates, Inc ISBN 0-937175-93-5
(highly recommended by nearly everyone)
===============================================================================
(D). There was no possible way to write this FAQ alone. Much of the material
is repeated verbatim from the original sources.
Contributions, ideas, suggestions, and material:
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>
And also thanks to Ian Kluft <ikluft@uts.amdahl.com> for his cool AUTO-FAQ
software.
Please send me any comments, suggestions, or additional material you have.
I'm always eager to hear about what you thing about the FAQ. 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.
- Greg <gregh@cc.gatech.edu>
===============================================================================
Some things still to be answered:
- More detail on internal modems.
- More info on using multiport cards. Should 'setserial' be used with them?

BIN
docs/FAQ/serialFAQ_1.0.z Normal file

Binary file not shown.