Newsgroups: comp.os.linux,comp.os.linux.announce,comp.answers,news.answers
From: corsini@labri.u-bordeaux.fr
Subject: Linux Frequently Asked Questions 4/6 [monthly posted]
Message-ID: <PART4_743248318@geocub.greco-prog.fr>
Date: Wed, 21 Jul 1993 09:52:30 GMT
Approved: news-answers-request@MIT.Edu

Archive-name: linux-faq/part4

Last-Modified: 93/07/11
Version: 1.20

*********************************************************
*							*
*   Answers to Frequently asked questions about Linux   *
*							*
*********************************************************

This post contains Part 4 of the Linux FAQ (6 parts).
It must be read *after* the 3 first parts. 

===================================8<====>8============================
CONTENTS (of this part)

	VIII. 	FEATURES 			(part4)
	IX. 	GCC MISC INFORMATION		(part4)
	X.	SCSI SPECIAL			(part4)

===================================8<====>8============================


VIII. FEATURES 
==============

VIII.01)  I've read that linux has virtual consoles, what must I do to
get them?

ANSWER: Yes there are, you can access them with the left <alt>-key
together with <Fn>-key. With the Linux Images distribution, 4 consoles
are available, getty runs on them.  
Notice that they are NOT accessible when running X (contrary to some
commercial unices).

VIII.02)  When Linux boots, I get the following message "8 virtual
consoles"; how can I acess to the 5-8 vc's ?

ANSWER: If you want the getty to run on the 5-8, you should add the
corresponding entries in /etc/inittab. You can also just run sh on
them by using the doshell soft.
And then in either case, the ALT-F[5-8] will access the corresponding
vc.  

VIII.03)  What kind of shell is /bin/sh ?

ANSWER: It's the Bourne Again Shell, bash-1.12.3 
BTW There does exist different shells for Linux, these are:
bash, rc, zsh, tcsh and pdksh (a korn shell).


VIII.04)  Does there exist a man page for **** ?

ANSWER: Download man.tar.Z from your favorite linux ftp site, there is
most of the fileutils man page -- either **** or g****, example there
is nothing on ld, but there is for gld :) --, check the whatis
database provided. The files in the cat1 dir are pre-formatted man
pages that the man program can use. Quite recently the man pages for
section 2 have been written (thanks Drew) and can be found, at least
at tsx-11 in /pub/linux/docs/man/man2.tar.Z 

Also manpages are in the SLS on the b? disks.

BTW there is nroff and groff for Linux. Cawf 2.0 works just
fine for simple man pages, and a partial ms support too. 


Moreover Michael Johnson is the coordinator for man pages under Linux,
he is looking for volunteers, so contact the DOC Channel.

VIII.05)  Is there a simple man package (groff is too big):

ANSWER: "Cawf -man" also "fm -m" (Al Clark) tsx-11 in
	 /pub/linux/binaries/usr.bin/fm.tar.Z 


VIII.06)  What are the editors available in linux?

ANSWER: Right now there are uemacs-3.11, elvis-1.4 (1.5). 
Gnu Emacs is there, read the section devoted to it in the 5th part of
this FAQ. Also the port of mg (micro gnu) has been done and can be
found at least at athos.rutgers.edu (128.6.4.4) 
in pub/linux, mg is the binary and mg.tar.Z is the sources file. You
can also find a PD ed, and elvis has an ex mode. Also available is
Lucid Emacs (available on sunsite.unc.edu in
pub/Linux/apps/editors/lemacs), including binary and info and lisp
trees (it takes about 18MB of disk space). Finnally there are
joe, vile-3.11, elle (Elle Looks Like Emacs), Xedit and aXe.

VIII.07)  Does there exist a printer package for Linux?

ANSWER: Read the lpd-FAQ, also included in this FAQ (section XIV).

VIII.08)  Are uucp, mail, and/or USENET news available for Linux?

ANSWER:    Yes !!!  Read the section UUCP/NEWS/MAIL for LINUX in this
FAQ. Moreover if you are interested in the last uucp features, join
the UUCP channel (see  part1 of this FAQ for more details about the
multi channels list). 

VIII.09)  How do I make swapping work?

ANSWER: Quite simply, you need the swapon and the mkswap binaries.
Then you can choose between a swap partition or a swap file.
The mkswap is used to write the "swap signature", whilst the swapon
binary is to activate the swapping. 

First of all you need a partition :), I assume it's the second of your
first disk namely /dev/hda2, and it's 10MB big
A) swap partition:
you have to indicate it's a swap area, this is done via mkswap
(instead of mkfs) which needs the name of the partition and the size
in blocks (a block is 1Ko big); the optional -c flag is for bad block
checking. So for our example you should perform:
mkswap [-c] /dev/hda2 10000
Then you need to indicate that you want linux to use the swap area,
this is done via swapon. In general it is set in the /etc/rc file,
just put the following entry:
/bin/swapon /dev/hda2
It can also be achieved via the /etc/fstab file
B) swap file:
The process is quite close; you need a partition, and a swap file.
Assume that I prefer a swap area of 4MB (I want to keep some place in
/dev/hda2). I need first to "dd" the file.
dd if=/dev/hda2 of=/swap_file bs=1024 count=4096
bs stands for block size, and count is the number of blocks
then I have to put the "swap signature" on that file:
mkswap /swap_file 4096
At this point, you should 'sync', just to be sure the signature is
effective. And finally add an entry in the rc file:
/bin/swapon /swap_file


VIII.10)  When I boot I get one of the following messages:
"Unable to find swap signature" or "Bad swap-space bitmap"

ANSWER: You probably forgot to make your swap-device, use the mkswap
command. 


VIII.11)  How do I know if it is swapping?

ANSWER: You will notice it :)) First of all, Linux tells you at boot
time, "Adding swap: XXX pages of swap space", and if you start running
out of memory, you will notice that the disk will work overtime, and
things slow down. Generally a 2Meg RAM will make the system swap
constantly while running gcc, 4 Meg will swap occasionnaly when
optimizing big files (and having other things active, such as make).
Also, the command 'free' (from the ps package) reports total enabled
swap space and current swap use.


VIII.12)  How is it possible to remove a swap file?

ANSWER: Simply perform a rm on that file, and remove the swapon of
your /etc/rc file.


VIII.13)  How is it possible to remove a swap device?

ANSWER: mkfs the device, and remove the swapon of your /etc/rc file.

VIII.14)  How much swap space do I need ?

ANSWER: Linux does not perform real swapping, it's rather paging (see
below for a more complete explanation). The swap area is *added* to
the memory and can be viewed as virtual memory, so choose the size you
need, example:

		8MB RAM + 6MB swap => 14MB virtual memory

VIII.15)  Could someone explain the swap process on Linux?, is it
swapping or paging ?

ANSWER: (Linus) Linux uses swap as /additional/ memory, one page of
the swap-space is used for the good-page bitmap and the swapspace
signature. 
In fact Linux does only paging, no swaping in the meaning "write out
one whole process to disk".
The reason it's called swapping is that Linux used paging for memory
management on a low level since the very beginning, but didn't page to
disk at all until 0.12. 

VIII.16)  Is there any way to tell how much swap space you are using
or have left? 

ANSWER: The free program provided with the ps package handles this.

 
VIII.17)  I have a 2Megs box, but "free" reports only 1Meg why?

ANSWER: (Linus:) "free" doesn't concern with the memory the kernel has
allocated for itself. In other words what you see is the *user* memory
available. The kernel has taken the low 1Meg for it's use (~250Ko for
it and the rest for buffer cache and kernel data structures); for big
memory machine it could be even 2Megs.

VIII.18)  What tape drives work with Linux ?

ANSWER: (24 sept. P. Riipinen)
- There is a working QIC-02 device driver for Linux, supporting (at
  least) Everex/Wangtek cards.
- There are additional patches for the QIC-02 to support Archive
  SC402/499R. You can find them in /pub/linux/alpha/qic-02 at tsx-11
  There are some bugs in the driver but you can backup.
- Newer drivers are all SCSI, so check the SCSI section in this FAQ.


VIII.19)  Is there a driver for my Colorado Jumbo tape drive ?

ANSWER: (Charlie Brady 93/06)
Not at this stage, although some are trying. The Colorado Memory
Systems tape drive connects to the standard floppy disk controller as
a third device on the cable. Similar drives are sold by Irwin,
Mountain, Wangtek and others and they are collectively known as QIC-40
and QIC-80 drives. The medium is a DC-2000 or DC-2120 minicartridge.
There is a pre-pre-alpha version of a driver, and appropriately
skilled volunteers are encouraged to try to finish it.  Be warned, the
timing constraints of the interface may be a significant problem.


VIII.20)  Does there exist shared libs ?

ANSWER: (H.J. Lu, hlu@eecs.wsu.edu, 09/01/92)

The shared library under Linux started at 0.12. Peter MacDonald
collaborating with Linus made the first generation of shared library,
which is the base of the classic shared library which is no longer widely
used.

The kernel support of shared library under Linux is system call

extern int uselib (const char *__filename);

which loads an executable image with fixed entry point into memory,
just like the ordinary executables.

In crt0.s, a function which can find out if and which shared images
are needed and loads them is invoked before `main ()' is called if
necessary. David Engel and I developed a way to tell the loader which
shared images have to be loaded, utilizing the similar technique used
in global constructor in g++ 2.x with the help from GNU binary
utilities.

In the classic Linux shared library, we build a big executable image 
for several libraries and make sure no external variables outside of
the participating libraries are referenced. Then we can get the
absolute addresses of all the global variables defined in the
libraries used to build that executable image. After that, we make a
stub library for each participating library which just has the
absolute addresses of all the global variable in it.

Starting with libc.4.3, a form of dynamic linking developed by Eric
Youngdale was introduced into the shared libraries.  As part of this,
the tools that were used to generate the sharable libraries were
completely redone which made the job of building the libraries much
easier, and thus the libX*.so.3.0 libraries were made as DLL jumptable
libraries.

VIII.21)  Does Linux work for SCSI drives?

ANSWER: Yes since v0.96. Read the section devoted to SCSI in this FAQ
(check the TOC file to find the section).


VIII.22)  Linux is supposed to work with ESDI drive. However I have
trouble with my Magtron MT-4115E (Joincom controler), any clue?

ANSWER: (Linus) Some harddisk don't like linux (even though they
should). Maybe not a bug but a deficiency.
(Mika) I had to remove the printk "unexpected hd interrupt" statement
in hd.c because I was getting so many of those messages. Be warned
that if there is any read error the system just hangs, even the
ctrl-alt-del won't work. You should be able to use your ESDI drives if
you could live with those nuisances.

VIII.23)  How does one go about applying a patch to Linux ?

ANSWER: (Drew Eckhardt) In the unix world most of distribution are in
source form. This includes the operating system. To apply a patch, you
apply it with the 'patch' program to the affected sources. The patch
program takes as input the differences between the old and the new
version. After patching you need to recompile the sources.

Assume I want to apply a patch enclosed in the file XXX. First of all
I will look at the top of XXX, where the file affected is identified.
This may have aleading path attached to it. Either cd out to the
"root" of the patch, ie if I see
linux/kernel/blk_drv/blk.h

I would cd into /usr/src 
(assuming it's the place where I can find linux/kernel...) 
and then patch as follows
patch -p0 < whatever_place/XXX

or, you can specify a number of path components to strip from the
path. If I am in the blk_drv directory patching would be
patch -p3 < whatever_place/XXX


VIII.24)  I got the patches on some ftp sites, and applied them to the
kernel and tried to compile. It didn't !!. Are the patches buggy?

ANSWER: Before remake, just do a make clean in the directories
involved by the patches. This will force a rebuild of the .o and .a
files. 
If you have a RCS running on your source tree, did you checked a
patched version of the files changed before /any/ CO either by you or
make

Finally, make sure the patches succeded. Normally, failed patches on a
file FILE will leave a FILE# file. Moreover you will get a "chunk
failed" message. It is possible to capture the output while patching,
with the following:

	patch -p0 < patchfile | 2>&1 patch.result | more


VIII.25)  What is VFS?

ANSWER: (Ted) Linux 0.96 already has Virtual FileSystem, which means
that it acts as a filesystem switch. It makes it easy for someone to
design another filesystem format and include it in the Linux kernel
along with the standard minix filesystem format. So it /enables/
someone to design a robust filesystem which would have some nice
properties (no 14 chars file name limitation, nor 64Meg limit), and
could be included in the kernel in such a way that both the Minix and
the new one could be mounted at the same time. This solves the
uncompability problem; since the root disk could still use the Minix
filesystem, while the hardisk could be using the new one.



VIII.26)  What's about Bus Mice ?

ANSWER: (Nathan I. Laredo) Since the Linux v0.96c-pl2 the kernel does
support LOGITECH and BUS MICE 
If you are unsure that you have a bus mouse or not, check to see if
your mouse card has a selection for a sample rate switchable between
30Hz and 60Hz (or possibly 25/50Hz), if it does not, then it is NOT a
true  bus mouse (InPort mice for example will not work with this
driver). 
To create a bus mouse device:
mknod /dev/mouse c 10 0


VIII.27)  What's about TeX ?

ANSWER: The primary site for Linux TeX is 129.78.66.1, this is 
P. Williams' site in Australia. The stuff at tsx-11 was posted by 
T. Dunbar  who does support/maintain the dvilj stuff.


VIII.28)  What's about MGR ?

ANSWER: (General Information grabbed from various sources)
There is a MGR channel available , contact the request adress with
help in the body: linux-activists-request@niksula.hut.fi 
The stuff can be found at tsx-11 in pub/linux/packages/MGR
In brief:

MGR provides:
	- multiple overlapping windows
	- multiple fonts
	- text and graphics in each windows
	- a simple popup menu package
	- a client/server model 'a la' X
	- independance from any peculiar networking technology

MGR consist of a server process and some clients. Each client has his
own window, and can create subwindows. Clients communicate with the
server via a bidirectionnal channel. A C library is provided.

When a new window starts, it is as a terminal emulator running the
shell; for more information you can grab the mgr-man.out from
bellcore.com 


A MGR-FAQ is underway, contact u31b3hs@POOL.Informatik.RWTH-Aachen.DE
for more information. 

VIII.29)  What's about X11 ?

ANSWER: See the section XII. devoted to X11 in this FAQ.



IX. GCC MISC INFORMATION
========================

**** Last update July 1993

  IX.01)  What C compiler should I use for Linux ?

ANSWER: The C compiler of Linux is GCC (from GNU). You can find it at
tsx-11.mit.edu in pub/linux/GCC. If you want to use the testing
release, first join the GCC channel on the Linux mailing list, and
then send a note to hlu@eecs.wsu.edu. Don't use gcc older than the one
on tsx-11.mit.edu. 

  IX.02)  Where can I found information about the C compiler ?

ANSWER: Have a look at tsx-11.mit.edu in pub/linux/GCC. There are
a README file, release notes and the GCC FAQ written by Hongjiu Lu.

  IX.03)  I seem to be unable to compile anything 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

BTW Since swapping is possible, I have heard that compilation works 
with only 2Meg and a lot disk traffic :) Isn't it great?

  IX.04)  How to compile programs which may be debugged with gdb?

ANSWER: There are different ways to handle this problem. If
you have the gcc2.2.2 or later it's simple, use the -g flag. Otherwise
there are different possibilities:


  IX.05)  When compiling some code, cc1 complains about some insn
code, what's that? 

ANSWER: An insn is an internal representation that gcc uses when
compiling. The main part of gcc is to take ordinary c (or c++) code,
and compile it, while ding optimizations in insn part, which is
soft/hard independant. Then another part which is hard/Os dependant
takes the insns and translate it in assembly language. The fix is only
to turn off the optimization flag (-O). 

  IX.06)  How can I write codes suitable for building shared library ?

ANSWER: (Eric Youngdale, eric@tantalus.nrl.navy.mil, 3/1/93)
  
In general there are very few restrictions as long as you are using the
new tools for building sharable libraries.  Before the DLL libraries were
available there were all kinds of things you had to watch out for, but
currently you can more or less build a sharable library out of the box
without making any source code modifications.  See the README in the
tools-m-n.tar.z distribution for more information on how to build a
sharable library.  


X. SCSI SPECIAL
===============
*** This section is written by Drew Eckhardt, mail him for
*** information, questions related to this section.
*** Last update July 1993.

   X.01)  What hardware is supported?

ANSWER: The Adaptec 154x, Adaptec 174x, Adaptec 1540 compatable boards like 
the Bustek, DTC3290 and DTC3292, Future Domain 850, 885, 950,
and probably other boards in that series but NOT the 880 board unless
you make the appropriate patch,  16x0,  Seagate ST0x, Ultrastor 14F (Some 
of the new ALPHA code makes attempts to deal with the 34F) and Western 
Digital 7000 are supported (revision 5 only, revision 3 boards don't work).  
Various Adaptec clones from Bustek and Future Domain are known to work, in 
both ISA and EISA flavors.

There is an alpha driver for the Ultrastor 24F, that also works 
for the 14F and 34F : 

tsx-11.mit.edu:/pub/alpha/scsi/u24f-driver.tar.z

There is also an alpha driver for the ALWAYS IN-2000, 
in his News posting <C6x7FK.IIr@ra.nrl.navy.mil> Eric said that people 
could contact the author through him - 

"Eric Youngdale" <eric@tantalus.nrl.navy.mil>

Some of the SCSI drivers will not autodetect your SCSI host if the 
BIOS is disabled, and there may be IRQ, DRQ, address restrictions 
compiled into the distribution kernel.

Virtually all SCSI disks, CD ROMS, and tapes should work.

SCSI-I, SCSI-I CCS, and SCSI-II devices will work, all though
beyond a few CD-ROM ioctl()'s no attempt is made to use SCSI-II
specific features.
  
   X.02)  What hardware is not supported?

ANSWER: The Adaptec 152x, 151x, and AIC-6260, non-Adaptec compatable DTC, 
Mylex, PS/2 SCSI boards, all SCSI ports on sound boards, the trantor 
parallel->SCSI adapter, Rancho SCSI boards, Grass Roots SCSI boards, 
Trantor SCSI boards (although a T128/T128F/T228 driver is being written) 

If you want to run Linux on one of the other boards, you'll have to 
get technical docs on it, and write a driver yourself or bribe someone 
to do it.

   X.03)  How do I get SCSI information?

ANSWER: Subscribe to the SCSI channel of the linux-activists mailing list.
mail linux-activists@joker.cs.hut.fi 
And put in the header.
       X-MN-Admin: join SCSI

   X.04)  Where is the latest version maintained?

ANSWER: It's in the .99.10 kernel, if we release anything newer it will
appear in 

tsx-11.mit.edu:/pub/linux/ALPHA/scsi

Please join the SCSI channel of linux-activists@joker.cs.hut.fi before you 
grab anything there.

   X.05)  I've found one of the following bugs :

- I can't swap to a SCSI disk, or mount one as /

- I get a READ CAPACITY FAILED message on bootup.

- I have a removeable disk (ie Sysquest) and have problems when I change
	media.

- I have a Seagate / Future Domain TMC-88x and the kernel panics with a 
	kernel paging message.

- I have an Adaptec 1742 and am experiencing data corruption

- I have an Insite floptical drive and it won't work.

- I have a TANDBERG TDC 3600 revision U07, SONYCD-ROM CDU-541 revision
	4.3d, DENON DRD-25X revision V, or a SEAGATE ST296 revision
	921 and the system hangs or reports multiple devices.

- My Adaptec 1542C isn't recognized.

ANSWER: All of these bugs have been fixed, so UPGRADE.  

   X.06)  What do I do if I find a bug that still looks like a 
bug after I've read the FAQ?

ANSWER: Your best bet is to send it to the SCSI channel of the mailing list,
where it will be seen by all of the people who've contributed to the 
SCSI drivers. 

In your bug report, please provide as much information as possible
regarding your hardware configuration, and all of the messages that 
Linux prints when it boots.  Your chances of getting the bug fixed increase 
exponentially with the amount of information provided.  

The bottom line is that if we can't reproduce your bug, and you can't 
point at us what's broken, it won't get fixed.

   X.07)  What SCSI disks are supported? 

ANSWER: 

Flopticals, Bernoulis, Sysquests, and other removeable media devices 
are supported by the normal SCSI disk driver.  

   X.08)  What about CD ROMS?

ANSWER: CD ROMS are supported. The ISO-9660 file system with Rockridge
extensions is supported.  You will have to make sure that you have 
configured the kernel to include the isofs filesystem or otherwise you 
will not be able to use the cdrom.

   X.09)  What about SCSI tapes ? 

ANSWER: Tapes are supported.  You may wish to obtain the utility program mt,
which is usually available from tsx-11.mit.edu in pub/linux/ALPHA/scsi.

   X.10)  How do I partition the disk?

ANSWER: Use fdisk, efdisk, pfdisk or the DOS parititioning program of 
your choice.

   X.11)  The linux partitioning programs don't work.

ANSWER: Some of these default to /dev/hd*, which are disks on 
WD-1003 compatable controllers (IDE, MFM, RLL, ESDI, etc), rather
than /dev/sd* (SCSI disks).   Your solutions are to 

1.  Call the partitioning program with a device name, ie 
	pfdisk /dev/sda

2.  Make links from /dev/hd* to /dev/sd*.  

   X.12)  My partitioning program can't figure out the disk geoemetry

The problem with partitioning SCSI disks and Linux is that Linux talks
directly to the SCSI interface.  Each disk is viewed as the SCSI host
sees it : N blocks, numbered from 0 to N-1, all error free.  There is
no portable way to get disk geometry.  

However, DOS doesn't like things like this, it demmands that BIOS
present it with a normal Cylinder / Head / Sector coordinates.  So,
BIOS does, and it comes up with some fabrication that fits what DOS
wants to see.  You don't want to disagree with what BIOS thinks when
you write the partition table. 

The newest SCSI code will return the mapped geometry for some host 
adapter / disk combinations.  Kernel release 0.99 and later should have
this capability.

QUESTION :  I can't make a filesystem on /dev/hd*

ANSWER : /dev/hd* aren't your SCSI disks.  /dev/sd* are. 
See below for approproate major / minor numbers if they 
do not exist on your root diskette.

   X.13)  What are the major / minor numbers for SCSI drives?

ANSWER: Because of the large number of devices that can be hung off of 
a SCSI bus (as many as 56 if you use SCSI fanouts or bridge boards), 
and the possibility of 16 partitions on a SCSI disk, we'd run out of 
minor numbers if they were statically allocated - so a dynamic 
numbering scheme is used.

Block device major 8 is used for SCSI drives, 11 for CD-ROMs.  
Character device major 9 is used for SCSI tapes.
        
Minors are assigned in increments of 16 to SCSI disks as they are
found, scaning from host 0, ID 0 to host n, ID 7, excluding the host
ID.  Most hosts use ID 7 for themselves.

A minor where minor mod 16 = 0 is the whole drive, where minor mod 16
is between 1 and 4, that partition, extended partitions dynamically
assigned from 5 to 15 inclusive.  Note that the gendisk.c module
prints partition tables on initialization - you should be able to see
them there.

Example : I have three SCSI disks, set up as follows 
        Seagate ST02, ID=0
        Seagate ST02, ID = 5
        Adaptec 1542, ID = 0

The first disk on the seagate at ID 0 will become minors 0-15
inclusive, the second at ID5 16-31 inclusive, the disk on the
Adaptec 48-63.

   X.14)  My tape drive or other removeable media device isn't recognized
at boot time.

ANSWER: Try booting with a tape in the drive.

   X.15)  How do I reduce kernel bloat and eliminate the drivers I
don't want?

ANSWER: For kernel release 0.99 and later, just go to the to directory
in the kernel source tree, and type ``make config'', and answer the
questions.  For older kernel distributions, simply #undef
CONFIG_DISTRIBUTION in include/linux/config.h, and define the macros
for the SCSI hosts you want enabled.

   X.16)  I get SCSI timeouts.

ANSWER: Make sure your board has interrupts enabled correctly, and 
that there are no conflicts with other devices (Sound boards 
and serial boards sometimes try to use IRQ5).

   X.17)  My Seagate / Future Domain TMC-88x board is not detected.

ANSWER: The Seagate and Future Domain boards have memory mapped 
registers.  To detect them, Linux scans for a signature in the 
ROM BIOS (typically, a copyright message) and sets the register
addresses relative to that.  

This can fail for two reasons
1) If the BIOS is disabled.  

In this case, you should edit kernel/blk_drv/scsi/Makefile and 
add -DOVERIDE=x -DCONTROLLER=y where x is the base address of your 
controller (the factory default setting is 0xc8000) - note that 
this is *not* the segment (ie, 0xc800), and y is the controller 
type, either SEAGATE or FD.

2) If we don't know about your BIOS yet


Please use DOS and DEBUG to find us a signature that will detect 
your board - 

Ie, if your board lives at 0xc800 do

debug
d c800:0
q

and send me (drew@cs.colorado.edu) the nearest convienient
ASCII message, with the length and offset from c800:0 or 
whereever.

   X.18)  The Seagate / Future Domain TMC-88x driver doesn't work.

ANSWER: There are several possibilities
1) Is the board jumpered for IRQ5 ? 

The factory settings are for MSDOS, and have interrupts disabled.  

On the Seagate, Interrupts are controlled by the W3 (ST01) or JP3 (ST02) 
jumper.  Shorting pins F-G selects IRQ5.

2) Cached machines will not have problems if the Seagate's address
space (typically C8000 - CAFFFF) is not marked "non cacheable."
This applies to the i486 internal cache as well as i386/i486 
external caches.

This can be set in the XCMOS of most machines.  If you can't disable
cache for the Seagate's area (16K in size, starting at the base
address), then you must disable the cache entirely, otherwise
it won't work.

3) If you've defined -DFAST or -DFAST32 in the kernel, blind transfers 
will be used.  This works fine with most disks, but some won't respond 
fast enough, the read/write will timeout and things will get out 
of sync, resulting in timeouts.  Try recompiling your kernel without 
-DFAST or -DFAST32.

   X.19)  The Adaptec driver doesn't work.

ANSWER: A common source of difficulty is a conflict between two different
boards for an IRQ level, a DMA channel, or an I/O address.  Check the
settings for the boards you have in your system (music boards are
known to use similar IRQ or I/O addresses as the Adaptec.  In the new
scsi code the Adaptec can use any of the IRQ levels that it can be
strapped for, it can use I/O address 0x330 or 0x334, and it can use
DMA channels 5, 6 or 7.

   X.20)  The WD-7000FASST driver doesn't work

ANSWER: There are at least two different revisions of the WD7000/FASST,
built arround different chip revisions with different firmware.  Revision
5 boards work, Revision 3 boards do not.

   X.21)  My Ultrastor 14F or 34F isn't detected 

ANSWER: The Ultrastor 14F driver won't probe for an Adapter at address
0x310.  Either move it do a different address, or recompile the kernel, 
adding a rule to kernel/blk_drv/scsi/Makefile

ultrastor.o: ultrastor.c
	$(CC) $(CFLAGS) -DOVERIDE_PORT=0x310 -c ultrastor.c


 
   X.22)  When using a Seagate / Future Domain TMC-88x, why does my system 
hang when syncing to disk?

ANSWER: The Seagate boards are an incredibly brain dead piece of hardware.
They can only generate an interrupt when a target raises the SEL signal.
So, as long as a target is connected, the Seagate driver must spin its 
wheels waiting for the actual data transfer.  Some devices agravate the 
situation by connecting for long periods of time while not doing anything.

   X.23)  My system is dog slow (ie, 60k/sec)

ANSWER: SCSI commands have an incredible amount of overhead.  For 
every command, you need to arbitrate for the bus, select the target,
establish an I_T_L nexus, and send the command.  Processing of that
command may take as much as 1ms on older devices.  Add this overhead
to what you already have coming through the file system, buffer 
cache, etc, and you have a real problem.

To work around this, we needed to maximize the amount of data that 
could be transfered in a single command.  So, we implemented 
scatter-gather, which allows reads/writes from/to contiguous 
disk sectors to non-contiguous buffers.  

This typically gets you a 3-5 fold improvement in performance.

The current kernel has scatter-gather support for the Adaptec, Western 
Digital, Ultrastor, Future Domain 16xx, Future Domain 8xx and Seagate 
boards.

	   ===================8<==========>8================


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#	LaBRI 			 |					    #
#  351 cours de la Liberation    |  e-mail:  corsini@geocub.greco-prog.fr   #
#  33405 Talence Cedex		 |  e-mail:  corsini@labri.u-bordeaux.fr    #
#  				 |					    #
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
	 There will be a sig when our local net is reliable.
	       For now, I would rather stay anonymous.
