home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / how_to.zip / SCSI.HOW < prev    next >
Text File  |  1994-04-29  |  44KB  |  1,298 lines

  1. Archive-name: linux/howto/scsi
  2. Version: 2.00
  3. Last-modified: 15 Apr 94
  4.  
  5. Copyright 1994, Drew Eckhardt
  6.  
  7. The SCSI-HOWTO is copyrighted by Drew Eckhardt. A verbatim copy may be 
  8. reproduced and distributed in any medium physical or electronic without 
  9. permission of the author. Translations are similarly permitted without 
  10. express permission if it includes a notice on who translated it. Commercial 
  11. redistribution is allowed and encouraged; however, the author would like to 
  12. be notified of any such distributions. 
  13.  
  14. Short quotes may be used without prior consent by the author. Derivative work
  15. and partial distributions of the SCSI-HOWTO have to either include a verbatim
  16. copy of this file or make a verbatim copy of this file available. If the 
  17. latter is the case, a pointer to the verbatim copy must be stated at a 
  18. clearly visible place.
  19.  
  20. In short, we wish to promote dissemination of this information through as
  21. many channels as possible. However, we do wish to retain copyright on the
  22. HOWTO documents, and would like to be notified of any plans to redistribute
  23. the HOWTOs. We further want that ALL information provided in the HOWTOS is 
  24. disseminated. If you have questions, please contact Matt Welsh, the Linux
  25. HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
  26.  
  27. IMPORTANT :
  28. This HOWTO covers the Linux SCSI subsystem, as implemented in Linux
  29. kernel revision .99.14 and newer alpha code.
  30.  
  31. Earlier revisions of the SCSI code are UNSUPPORTED, and may differ
  32. significantly in terms of the drivers implemented, performance, 
  33. and options available.
  34.  
  35. For additional information, you may wish to join the SCSI channel of the
  36. Linux activists list - mail to linux-activists-request@joker.cs.hut.fi 
  37. with the line 
  38.  
  39. X-MN-Admin: join SCSI
  40.  
  41. in the header.
  42.  
  43. I'm aware that this document isn't the most user-friendly, if 
  44. you have constructive comments on how to rectify the situation
  45. you're free to mail me about it.
  46.  
  47. Table of contents 
  48. Section 1    Common Problems 
  49.  
  50. Section 2   Reporting Bugs
  51.  
  52. Section 3   Hosts
  53.  Subsection A  Supported and Unsupported Hardware
  54.  Subsection B  Common Problems
  55.  Subsection C  Adaptec 152x, 151x, Sound Blaster 16 SCSI,
  56.         AIC 6260/6360 chips (Standard)
  57.  Subsection D  Adaptec 154x, AMI FastDisk VLB,
  58.          Buslogic, DTC 329x (Standard)  
  59.  Subsection E  Adaptec 174x (Standard)
  60.  Subsection F  Allways IN2000 (ALPHA)
  61.  Subsection G  Future Domain 16x0 with TMC-1800 or 
  62.     TMC-18C50 chip (Standard)
  63.  Subsection H  Generic NCR5380 / T130B (Standard)
  64.  Subsection I  Seagate ST0x/Future Domain TMC-8xx/TMC-9xx 
  65.      (Standard)
  66.  Subsection J   PAS16 (Standard)
  67.  Subsection K  Trantor T128/T128F/T228 (Standard)
  68.  Subsection L  Ultrastor 14f, 24f,  34f (Standard)
  69.  Subsection M  Western Digital 7000 (Standard)
  70.  
  71. Section 4   Disks
  72.  Subsection A   Supported and Unsupported Hardware 
  73.  Subsection B   Common Problems 
  74.  Subsection C  Device Files
  75.  Subsection D  Disk Geometry
  76.  Subsection E   Partitioning 
  77.  
  78. Section 5    CD ROMs
  79.  Subsection A  Supported and Unsupported Hardware 
  80.  Subsection B  Common Problems
  81.  Subsection C  Device Files 
  82.  
  83. Section 6   Tapes
  84.  Subsection A  Supported and Unsupported Hardware
  85.  Subsection B  Common Problems
  86.  Subsection C  Device Files
  87.  
  88. Section 7   Generic 
  89.  Subsection A  Supported and Unsupported Hardware
  90.  Subsection B  Common Problems
  91.  Subsection C  Device Files
  92.  
  93.  
  94. Section 1 : Common Problems 
  95. 1.  Other parts of the documentation refer to a "kernel command line".  
  96.     How do I use it?
  97.  
  98.     References to the kernel command line refer to the options you
  99.     may specify from the LILO : prompt.
  100.  
  101.     Boot your system with LILO, and hit one of the alt, control, or 
  102.     shift keys when it first comes up to get a prompt.  LILO 
  103.     should respond with 
  104.  
  105.      :
  106.  
  107.     At this prompt, you can select a kernel image to boot, or list
  108.     them with ?.  Ie
  109.  
  110.      :?
  111.  
  112.      linux
  113.  
  114.     To boot that kernel with the command line options you have 
  115.     selected, simply enter the name followed by a white space delimited
  116.     list of options, terminating with a return.  
  117.  
  118.     Options take the form of 
  119.  
  120.      variable=valuelist
  121.  
  122.     Where valuelist may be a single value or comma delimited list
  123.     of values with no whitespace.  With the exception of root device,
  124.     individual values are numbers, and may be specified in either 
  125.     decimal or hexadecimal.
  126.  
  127.     Ie, to boot linux with an Adaptec 1520 clone not recognized 
  128.     at bootup, you might type 
  129.  
  130.  :linux aha152x=0x340,11,7,1
  131.  
  132.     If you don't care to type all of this at boot time, it is also
  133.     possible to use the LILO configuration file "append" option 
  134.     with LILO .13 and newer.
  135.  
  136.  
  137. 2.  A SCSI device shows up at all possible IDs 
  138.  
  139.  If this is the case, you've strapped the device at the same 
  140.  address as the controller (typically, 7, although some boards
  141.  use other addresses).  Please change the jumper settings.
  142.  
  143. 3.  You get sense errors when you know the devices are error free
  144.  
  145.  Sometimes this is caused by bad cables or impropper termination.
  146.  
  147.  Your SCSI bus must be terminated at both ends (using external
  148.  terminators, or onboard terminators on the host adapter or 
  149.  devices) and not in the middle.
  150.  
  151. 4.  A kernel configured with networking does not work.
  152.  
  153.  The auto-probe routines for many of the network drivers 
  154.  are not passive, and will interfere with operation with some
  155.  of the SCSI drivers.
  156.  
  157. 5.  A SCSI device is detected by the kernel, but you are unable to
  158.  access it - ie mkfs /dev/sdc, tar xvf /dev/rst2, etc fails.
  159.  
  160.  You don't have a special file in /dev for the device.
  161.  
  162.  Unix devices are identified as either block or character (block 
  163.  devices go through the buffer cache, character devices do not) devices,
  164.  a major number (ie which driver is used - block major 8 corresponds
  165.  to SCSI disks) and a minor number (ie which unit is being accessed 
  166.  through a given driver - ie character major 4, minor 0 is the first 
  167.  virtual console, minor 1 the next, etc).  However, accessing devices through
  168.  this separate namespace would break the unix/Linux metaphor of 
  169.  "everything is a file," so character and block device special files 
  170.  are created under /dev.  This lets you access the raw third SCSI disk
  171.  device as /dev/sdc, the first serial port as /dev/ttyS0, etc.  
  172.  
  173.  The preferred method for creating a file is using the MAKDEV script -
  174.  cd /dev
  175.  
  176.  and run MAKEDEV (as root) for the devices you want to create - ie
  177.  
  178.  ./MAKEDEV sdc
  179.  
  180.  wildcards "should" work - ie
  181.  
  182.  ./MAKEDEV sd\*
  183.  
  184.  "should" create entries for all SCSI disk devices (doing this should create
  185.  /dev/sda through /dev/sdp, with fifteen partition entries for each)
  186.  
  187.  ./MAKEDEV sdc\*
  188.  
  189.  "should" create entries for /dev/sdc and all fifteen permissible partitions
  190.  on /dev/sdc, etc.
  191.  
  192.  I say "should" because this is the standard unix behavior - the MAKEDEV
  193.  script in your installation may not conform to this behavior, or may have
  194.  restricted the number of devices it will create.
  195.  
  196.  If MAKEDEV won't do the right magic for you, you'll have to create the
  197.  device entries by hand with the mknod command.
  198.  
  199.  The block/character type, major, and minor numbers are specified for the
  200.  various SCSI devices in Subsection C : Device Files in the appropriate 
  201.  section.  
  202.  
  203.  Take those numbers, and use (as root)
  204.  
  205.  mknod /dev/device b|c major minor
  206.  
  207.  ie - 
  208.  
  209.  mknod /dev/sdc b 8 32
  210.  mknod /dev/rst0 c 9 0
  211.  
  212. Section 2 : Reporting Bugs
  213.  
  214. The Linux SCSI developers don't necessarily maintain old revisions
  215. of the code due to space constraints.  So, if you are not running the
  216. latest publically released Linux kernel (note that many of the Linux
  217. distributions, such as MCC, SLS, Yggdrasil, etc. often lag one or more 
  218. revisions behind this) chances are we will be unable to solve your 
  219. problem.  So, before reporting a bug, please check to see if it exists
  220. with the latest publically available kernel.
  221.  
  222. If after upgrading, and reading this document thoroughly, you still
  223. believe that you have a bug, please mail a bug report to the SCSI channel
  224. of the mailing list where it will be seen by many of the people who've 
  225. contributed to the Linux SCSI drivers.
  226.  
  227. In your bug report, please provide as much information as possible
  228. regarding your hardware configuration, and the exact text of 
  229. all of the messages that Linux prints when it boots and when the 
  230. error condition occurs.  Failure to provide the exact text of any and
  231. all messages may result in misdiagnosis of your problem.
  232.  
  233. The bottom line is that if we can't reproduce your bug, and you can't 
  234. point at us what's broken, it won't get fixed.
  235.  
  236. Assuming you don't yet have Linux up and running, a good way to provide
  237. the information we need would be to perform the following procedure :
  238.  
  239. Format a floppy diskette under DOS.  Note that if you have a distribution
  240. which mounts the root diskette off of floppy rather than RAM drive, you'll
  241. have to format a diskette readable in the drive not being used to mount
  242. root.
  243.  
  244. Boot Linux, and login as root
  245.  
  246.  mkdir /tmp/dos
  247.  
  248. Insert the diskette in a drive not being used to mount root, and
  249. mount it.  Ie
  250.  
  251.  mount -t msdos /dev/fd0 /tmp/dos
  252.  
  253.  or 
  254.  
  255.  mount -t msdos /dev/fd1 /tmp/dos
  256.  
  257. Insure that the /proc filesystem is mounted.
  258.  
  259.  grep proc /etc/mtab
  260.  
  261. If the /proc filesystem is not mounted, mount it 
  262.  
  263.  mkdir /proc
  264.  chmod 755 /proc
  265.  mount -t proc /proc /proc
  266.  
  267. Copy the kernel revision and messages into a log file
  268.  
  269.  cat /proc/version > /tmp/dos/log
  270.  cat /proc/kmsg >> /tmp/dos/log
  271.  
  272. Type CNTRL-C after a second or two.
  273.  
  274. Unmount the DOS floppy
  275.  
  276.  umount /tmp/dos
  277.  
  278. And shutdown Linux
  279.  
  280.  shutdown
  281.  
  282. Reboot into DOS, and using your favorite communications software include
  283. the log file in your trouble mail.
  284.  
  285. Section 3 : Hosts
  286.  
  287. Subsection A : Supported and Unsupported Hardware
  288. Drivers in the distribution kernel :
  289.  
  290. Adaptec 152x, Adaptec 154x (including clones from Bustek and DTC 329x 
  291. boards), Adaptec 174x, Future Domain 850, 885, 950, and other boards 
  292. in that series (but not the 880 board unless you make the appropriate 
  293. patch), Future Domain 16x0 with TMC-1800 or TMC-18C50 chip, PAS16 
  294. SCSI ports, Seagate ST0x, Trantor T128 boards, Ultrastor 14F, 24F, and 34F, 
  295. and Western Digital 7000. 
  296.  
  297. Alpha drivers :
  298. Allways IN2000
  299. Bustek : (native mode)
  300. Richoh GSI-8  
  301.  dplatt@ntg.com (Dave Platt) 
  302.  
  303. Drivers that are being developed, but aren't publically available yet.
  304.  
  305. Announcements WILL be made when drivers are available for public 
  306. alpha testing.  Until then, please don't use up the developers' 
  307. valuable time with mail asking for release dates, etc.
  308.  
  309. Adaptec 2742 / 2842 / AIC 7770
  310. DPT EATA 
  311. NCR53c8x0/7x0
  312. Qlogic 
  313. Trantor T130B (interrupt driven, using pseudo-DMA)
  314.  
  315. SCSI hosts that will not work :
  316.  
  317. All parallel->SCSI adapters, Rancho SCSI boards, and Grass Roots SCSI
  318. boards.
  319.  
  320. SCSI hosts that will NEVER work :
  321.  
  322. Non Adaptec compatable DTC boards (including the 3270 and 3280).
  323.  
  324. Aquiring programming information requires a non-disclosure agreement
  325. with DTC.  This means that it would be impossible to distribute a 
  326. Linux driver if one were written, since complying with the NDA would
  327. mean distributing no source, in violation of the GPL, and complying 
  328. with the GPL would mean distributing source, in violation of the NDA.
  329.  
  330. If you want to run Linux on an unsupported piece of hardware, your 
  331. options are to either write a driver yourself (Eric Youngdale and I are 
  332. usually willing to answer technical questions concerning the Linux
  333. SCSI drivers) or to commision a driver.
  334.  
  335. Subsection B : Common Problems 
  336. 1.  SCSI timeouts 
  337.  Make sure interrupts are enabled correctly, and there are no 
  338.  IRQ, DMA, or address conflicts with other boards.
  339.  
  340. 2.  Boards with a driver that uses the BIOS for autoprobe are not detected 
  341.  (This includes the Adaptec 152x, Future Domain 1680, Trantor T128, 
  342.  Seagate, and Western Digital 7000 drivers, but not the Adaptec 
  343.  154x, 174x, Generic NCR5380, PAS16, and Ultrastor drivers).
  344.  
  345.  Autodetection will fail for drivers using the BIOS for autodetection
  346.  if the BIOS is disabled, or the board's "signature" and/or BIOS address
  347.  don't match known ones.
  348.  
  349.  If the BIOS is installed, please use DOS and DEBUG to 
  350.  find a signature that will detect your board -
  351.  
  352.  Ie, if your board lives at 0xc8000, under DOS do
  353.  
  354.  debug
  355.  d c800:0
  356.  q
  357.  
  358.  and send a message to the SCSI channel of the mailing list with
  359.  the ASCII message, with the length and offset from the base 
  360.  address (ie, 0xc8000).  Note that the EXACT text is required.
  361.  
  362.  If no BIOS is installed, and you are using an Adaptec 152x,
  363.  Trantor T128, or Seagate driver, you can use command line 
  364.  or compile time overrides to force detection.
  365.  
  366.  Please consult the appropriate subsection for your SCSI board.
  367.  
  368.  
  369. 3.  Boards using memory mapped IO, (This include the Trantor T128 and 
  370.  Seagate boards, but not the Adaptec, Generic NCR5380, PAS16,
  371.  and Ultrastor drivers)
  372.  
  373.  This is often caused when the memory mapped I/O ports 
  374.  are incorrectly cached.  You should have the board's 
  375.  address space marked as uncachable in the XCMOS settings.
  376.  
  377.  If this is not possible, you will have to disable cache 
  378.  entirely.
  379.  
  380. 4.  The bootable kernel for an ALPHA driver does not work,
  381.  resulting in a "kernel panic : cannot mount root device"
  382.  message, or it does not work with your Linux distribution.
  383.  
  384.  You'll need to edit the binary image of the kernel (before
  385.  or after writing it out to disk), and modify a few two byte 
  386.  fields (little endian) to gurantee that it will work on your 
  387.  system.  
  388.  
  389.  1.  default swap device at offset 502, this should be set to 0
  390.  
  391.  2.  ram disk size at offset 504, this should be set to the size
  392.   of the boot floppy in K - ie, 5.25" = 1200, 3.5" = 1440.
  393.  
  394.   This means the bytes are 
  395.  
  396.   3.5" : 0xA0 0x05 
  397.   5.25" : 0xB0  0x04
  398.  
  399.  3.  root device offset at 508, this should be 0, ie the boot
  400.   device. 
  401.  
  402.  dd or rawrite the file to a disk.  Insert the disk in the
  403.  first floppy drive, wait until it prompts you to insert
  404.  the root disk, and insert the root floppy from your 
  405.  distribution.
  406.  
  407.  
  408. 5.  Installing a device driver not bundled with the distribution kernel
  409.  You need to start with the version of the kernel used by the 
  410.  driver author.  This revision may be alluded to in the documentation
  411.  included with the driver.
  412.  
  413.  Various recent kernel revisions can be found at 
  414.   nic.funet.fi:/pub/OS/Linux/PEOPLE/Linus
  415.  
  416.  as linux-version.tar.gz
  417.  
  418.  They are also mirrored at tsx-11.mit.edu and various other sites.
  419.  
  420.  cd to /usr/src.
  421.  
  422.  Remove your old Linux sources, if you want to keep a backup copy
  423.  of them
  424.  
  425.  mv linux linux-old
  426.  
  427.  Untar the archive
  428.  
  429.  gunzip < linux-0.99.12.tar.gz | tar xvfp -
  430.  
  431.  Apply the patches.  The patches will be relative to some directory
  432.  in the filesystem.  By examining the output file lines in the patch
  433.  file (grep for ^---), you can tell where this is - ie patches with 
  434.  these lines
  435.  
  436.  --- ./kernel/blk_drv/scsi/Makefile
  437.  
  438.  --- ./config.in Wed Sep  1 16:19:33 1993
  439.  
  440.  
  441.  would have the files relative to /usr/src/linux.
  442.  
  443.  Untar the driver sources at an appropriate place - you
  444.  can type
  445.  
  446.  tar tfv patches.tar 
  447.  
  448.  to get a listing, and move files as necessary (The SCSI driver files 
  449.  should live in /usr/src/linux/kernel/drivers/scsi)
  450.  
  451.  Either cd to the directory they are relative to and type
  452.  
  453.  patch -p0 < patch_file
  454.  
  455.  or tell patch to strip off leading path components.  Ie,
  456.  if the files started with
  457.  
  458.  --- linux-new/kernel/blk_drv/scsi/Makefile 
  459.  
  460.  and you wanted to apply them while in /usr/src/linux, you 
  461.  could cd to /usr/src/linux and type
  462.  
  463.  patch -p1 <  patches 
  464.  
  465.  to strip off the "linux-new" component.
  466.  
  467.  After you have applied the patches, look for any patch rejects,
  468.  which will be the name of the rejected file with a # suffix appended.
  469.  
  470.  find /usr/src/linux/ -name "*#" -print 
  471.  
  472.  If any of these exist, look at them.  In some cases, the 
  473.  differences will be in RCS identifiers and will be harmless,
  474.  in other cases, you'll have to manually apply important 
  475.  parts.  Documentation on diffs files and patch is beyond the
  476.  scope of this document.
  477.  
  478.  Next, cd to /usr/src/linux and do a 
  479.  
  480.  make config
  481.  
  482.  to choose the options you want
  483.  
  484.  If you are installing off of floppy disk, you'll also have to 
  485.  edit the Makefile to set the ROOT device to ramdisk.
  486.  
  487.  do a make depend
  488.  
  489.  followed by 
  490.  
  491.  make
  492.  
  493.  You should end up with a file "zImage".  Write this out to a floppy
  494.  disk -
  495.  
  496.  cat zImage > /dev/fd0
  497.  
  498.  and use that to boot your system.  When it comes up, it should prompt
  499.  for the root floppy, use a1 from SLS or whatever and you'll be fine.
  500.  
  501. Subsection C : Adaptec 152x, 151x, Sound Blaster 16 SCSI, 
  502.  AIC 6260 chips (Standard)
  503. Supported Configurations : 
  504. BIOS addresses : 0xd8000, 0xdc000, 0xd0000, 0xd4000, 0xc8000, 0xcc000, 0xe0000,
  505.  0xe4000.
  506. Ports : 0x140, 0x340
  507. IRQs : 9, 10, 11, 12
  508. DMA is not used
  509. IO : port mapped
  510.  
  511. IMPORTANT : VLB and motherboard 6360 implementations should be treated
  512.     as unsupported, since there appears to be a timing problem in 
  513.     these systems.
  514.  
  515. Autoprobe : works with many 152x boards with an installed BIOS.  All
  516.     other boards must use a kernel command line or compile time override.
  517.  
  518. Autoprobe Override : 
  519. Compile time : 
  520. Define PORTBASE, IRQ, SCSI_ID, RECONNECT as appropriate, see Defines
  521.  
  522. kernel command line : aha152x=<PORTBASE>,<IRQ>,<SCSI-ID>,<RECONNECT>
  523.  
  524. Defines : 
  525. AUTOCONF      : use configuration the controller reports (only 152x)
  526. IRQ           : override interrupt channel (9,10,11 or 12) (default 11)
  527. SCSI_ID       : override scsiid of AIC-6260 (0-7) (default 7)
  528. RECONNECT     : override target dis-/reconnection/multiple 
  529.  outstanding command - set to non-zero to enable, zero to
  530.  disable.
  531. DONT_SNARF     : Don't register ports (pl12 and below)
  532. SKIP_BIOSTEST  : Don't test for BIOS signature (AHA-1510 or disabled BIOS)
  533. PORTBASE       : Force port base. Don't try to probe
  534.  
  535. Subsection D : Adaptec 154x, AMI FastDisk VLB, Buslogic, DTC 329x (Standard)  
  536. Supported Configurations :
  537. Ports : 0x330 and 0x334 
  538. IRQs : 9, 10, 11, 12, 14, 15
  539. DMA channels : 5, 6, 7
  540. IO : port mapped, bus master
  541.  
  542. Autoprobe : works with all supported configurations, does not 
  543.  require an installed BIOS.
  544.  
  545. Autoprobe override : none
  546.  
  547. Antiquity Problems, fix by upgrading : 
  548.  
  549. 1.  Linux kernel revisions prior to .99.10 don't support the 'C' 
  550.  revision.
  551.  
  552. 2.  Linux kernel revisions prior to .99.14k don't support the 'C'
  553.  revision options for 
  554.  
  555.  - BIOS support for the extended mapping for disks > 1G
  556.  
  557.  - BIOS support for > 2 drives
  558.  
  559.  - BIOS support for autoscanning the SCSI bus
  560.  
  561. Common problems :
  562.  
  563. 1.  There are unexpected errors with a revision C board. 
  564.  Early examples of the 154xC boards have a high slew rate on 
  565.  one of the SCSI signals, which results in signal reflections 
  566.  when cables with the wrong impedance are used.
  567.  
  568.  Try changing cables, especially if you are using external devices.
  569.  
  570. 2.  There are error messages (ie, interrupt received, no mail) during
  571.  initialization with the C revision boards.
  572.  
  573.  These may result from the use of one of the unsupported BIOS
  574.  options.  Turn it off.
  575.  
  576.  
  577. 3.  An "Interrupt received, but no mail" message is printed on bootup
  578.  and your SCSI devices are not detected.
  579.  
  580.  Disable the BIOS options to support the extended mapping for 
  581.  disks > 1G, support for > 2 drives, and for autoscanning the 
  582.  bus.  Or, upgrade to Linux .99.14k or newer.
  583.  
  584.  
  585. Subsection E : Adaptec 174x
  586. Supported Configurations : 
  587. Slots : 1-8
  588. Ports : EISA board, not applicable
  589. IRQs : 9, 10, 11, 12, 14, 15
  590. DMA Channels : EISA board, not applicable
  591. IO : port mapped, bus master
  592.  
  593. Autoprobe : works with all supported configurations
  594.  
  595. Autoprobe override : none
  596.  
  597. Common Problems : 
  598. 1. If the Adaptec 1740 driver prints the message 
  599.  "aha1740: Board detected, but EBCNTRL = %x, so disabled it."
  600.  
  601.  your board was disabled because it was not running in enhanced 
  602.      mode.  Boards running in standard 1542 mode are not supported.
  603.  
  604. Subsection F : Allways IN2000 
  605. ALPHA available via ftp tsx-11.mit.edu/pub/linux/ALPHA/SCSI/in2000
  606.  driver is in2000.tar.z, bootable kernel zImage
  607. Ports : 0x100, 0x110, 0x200, 0x220
  608. IRQs : 10, 11, 14, 15
  609. DMA is not used
  610. IO : port mapped
  611.  
  612. Autoprobe : BIOS not required
  613.  
  614. Autoprobe override : none
  615.  
  616. Common Problems : 
  617.  
  618. 1.  There are known problems in systems with IDE drives and with 
  619.  swapping.
  620.  
  621. Subsection G : Future Domain 16x0 with TMC-1800 or TMC-18C50 chip
  622. Supported Configurations :
  623. BIOSs :  2.0, 3.0, 3.2
  624. BIOS Addresses :    0xc8000, 0xca000, 0xce000, 0xde000
  625. Ports : 0x140, 0x150, 0x160, 0x170
  626. IRQs : 3, 5, 10, 11, 12, 14, 15
  627. DMA is not used
  628. IO : port mapped
  629.  
  630. Autoprobe : works with all supported configurations, requires 
  631.  installed BIOS
  632.  
  633. Autoprobe Override : none
  634.  
  635. Antiquity Problems, fix by upgrading : 
  636.  
  637. 1.  Old versions do not support the TMC-18C50 chip, and will fail with
  638.  newer boards. 
  639.  
  640. 2.  Old versions will not have the most current BIOS signatures for 
  641.  autodetection.
  642.  
  643. Subsection H : Generic NCR5380 / T130B
  644. Supported and Unsupported Configurations : 
  645. Ports : all
  646. IRQs : all
  647. DMA channels - DMA is not used
  648. IO : port mapped
  649.  
  650. Autoprobe : none
  651.  
  652. Autoprobe Override :
  653. Compile time : Define GENERIC_NCR5380_OVERRIDE to be an array of tupples 
  654. with port, irq - ie 
  655. #define GENERIC_NCR5380_OVERRIDE {{0x330, 5,}} 
  656.  
  657. for a board at port 330, IRQ 5.
  658.  
  659. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  660.     
  661. kernel command line : ncr5380=port,irq
  662.  
  663. 255 may be used for no irq, 254 for irq autoprobe.
  664.  
  665. Common Problems : 
  666.  
  667. 1. Using the T130B board with the generic NCR5380 driver
  668.  
  669.  The NCR5380 compatable registers are offset eight from
  670.  the base address.  So, if your address is 0x350, use 
  671.  
  672.  ncr53480=0x358,254
  673.  
  674.  on the kernel command line.
  675.  
  676. Notes : the generic driver doesn't support DMA yet, and pseudo-DMA 
  677.  isn't supported in the generic driver.
  678.  
  679. Subsection I : Seagate ST0x/Future Domain TMC-8xx/TMC-9xx 
  680. Supported and Unsupported Configurations : 
  681. Base addresses : 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000 
  682. IRQs : 3, 5
  683. DMA channels : DMA is not used
  684. IO : memory mapped
  685.  
  686. Autoprobe : probes for address only, IRQ is assumed to be 5,
  687.  requires installed BIOS.
  688.  
  689. Autoprobe Override :
  690. Compile time : Define OVERRIDE to be the base address, CONTROLLER to 
  691. FD or SEAGATE as appropriate, and IRQ to the IRQ.
  692.  
  693. kernel command line : st0x=address,irq or fd8xx=address,irq (only works 
  694.  for .99.13b and newer)
  695.  
  696. Antiquity Problems, fix by upgrading :
  697.  
  698. 1.  Versions prior to the one in the Linux .99.12 kernel had a problem
  699.  handshaking with some slow devices, where
  700.  
  701.  This is what happens when you write data out to the bus
  702.  
  703.  1.  Write byte to data register, data register is asserted to bus
  704.  2.  time_remaining = 12us
  705.  3.  wait while time_remaining > 0 and REQ is not asserted
  706.  4.  if time_remaining > 0, assert ACK
  707.  5.  wait while time remaining > 0  and REQ is asserted
  708.  6.  deassert ACK
  709.  
  710.  The problem was encountered in slow devices that do the command
  711.  processing as they read the command, where the REQ/ACK handshake
  712.  takes over 12us - REQ didn't go false when the driver expected it
  713.  to, so the driver ended up sending multiple bytes of data for
  714.  each REQ pulse.
  715.  
  716. 2.  With Linux .99.12, a bug was introduced when I fixed the arbitration
  717.  code, resulting in failed selections on some systems.  This was
  718.  fixed in .99.13.
  719.  
  720. Common Problems : 
  721.  
  722. 1.  There are command timeouts when Linux attempts to read the partition
  723.     table or do other disk access.
  724.  
  725.     The board ships with the defaults set up for MSDOS, ie interrupts
  726.     are disabled.  To jumper the board for interrupts, on the Seagate
  727.     use jumper W3 (ST01) or JP3 (ST02) and short pins F-G to select 
  728.     IRQ 5.
  729.  
  730. 2.  The driver can't handle some devices, particularly cheap SCSI 
  731.     tapes and CDROMs.
  732.  
  733.     The Seagate ties the SCSI bus REQ/ACK handshaking into the PC bus
  734.     IO CHANNEL READY and (optionally) 0WS signals.  Unfortunately, it 
  735.     doesn't tell you when the watchdog timer runs out, and you have 
  736.     no way of knowing for certain that REQ went low, and may end up
  737.     seeing one REQ pulse as multiple REQ pulses.
  738.  
  739.     Dealing with this means using a tight loop to look for REQ to 
  740.     go low, with a timeout incase you don't catch the transition due
  741.     to an interrupt, etc.  This results in a performance decrease, so it
  742.     would be undesireable to apply this to all SCSI devices.  Instead, 
  743.     it is selected on a per-device basis with the "borken" field for 
  744.     the given SCSI device in the scsi_devices array.  If you run into
  745.     problems, you should try adding your device to the list of 
  746.     devices for which borken is not reset to zero (currently, 
  747.     only the TENEX CDROM drives).
  748.  
  749. 3.  A future domain board (most notably the 880) doesn't work.
  750.  
  751.  A few of the Future domain boards use the Seagate 
  752.  register mapping, and have the MSG and CD bits of the 
  753.  status register flipped.
  754.  
  755.  You should edit seagate.h, swapping the definitions for 
  756.  STAT_MSG and STAT_CD, and recompile the kernel with 
  757.  CONTROLLER defined to SEAGATE and an appropriate 
  758.  IRQ and OVERRIDE specified.
  759.  
  760. Defines : 
  761.  
  762. FAST or FAST32 will use blind transfers where possible
  763.  
  764. ARBITRATE will cause the host adapter to arbitrate for the 
  765.  bus for better SCSI-II compatability, rather than just 
  766.         waiting for BUS FREE and then doing its thing.  Should
  767.  let us do one command per Lun when I integrate my 
  768.  reorganization changes into the distribution sources.
  769.  
  770. SLOW_HANDSHAKE will allow compatability with broken devices that don't 
  771.  handshake fast enough (ie, some CD ROM's) for the Seagate
  772.  code.
  773.  
  774. SLOW_RATE=x, x some number will let you specify a default 
  775.  transfer rate if handshaking isn't working correctly.
  776.  
  777. Subsection J : PAS16 SCSI
  778. Supported and Unsupported Configurations : 
  779. Ports : 0x388, 0x384, 0x38x, 0x288
  780. IRQs : 10, 12, 14, 15
  781.     IMPORTANT : IRQ MUST be different from the IRQ used for the sound
  782.  portion of the board. 
  783. DMA is not used for the SCSI portion of the board
  784. IO : port mapped
  785.  
  786. Autoprobe : does not require BIOS
  787.  
  788. Autoprobe Override : 
  789. Compile time : Define PAS16_OVERRIDE to be an array of port, irq 
  790. tupples.  Ie 
  791.  
  792. #define PAS16_OVERRIDE {{0x388, 10}} 
  793.  
  794. for a board at port 0x388, IRQ 10.
  795.  
  796. kernel command line : 
  797. pas16=port,irq 
  798.  
  799. Defines :
  800. AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
  801. for commands that return with a CHECK CONDITION status. 
  802.  
  803. PSEUDO_DMA - enables PSEUDO-DMA hardware, should give a 3-4X performance
  804. increase compared to polled I/O.
  805.  
  806. PARITY - enable parity checking.  Not supported
  807.  
  808. SCSI2 - enable support for SCSI-II tagged queueing.  Untested
  809.  
  810.  
  811. UNSAFE - leave interrupts enabled during pseudo-DMA transfers.  You
  812.          only really want to use this if you're having a problem with
  813.          dropped characters during high speed communications, and even
  814.          then, you're going to be better off twiddling with transfersize.
  815.  
  816. USLEEP - enable support for devices that don't disconnect.  Untested.
  817.  
  818.  
  819. Common problems : 
  820.  
  821. 1.  Command timeouts, aborts, etc.
  822.  
  823.     You should install the NCR5380 patches that I posted to the net 
  824.     some time ago, which should be integrated into some future alpha
  825.     release.  These patches fix a race condition in earlier NCR5380
  826.     driver cores, as well as fixing support for multiple devices on 
  827.     NCR5380 based boards.
  828.  
  829.     If that fails, you should disable the PSEUDO_DMA option by 
  830.     changing the #define PSEUDO_DMA line in drivers/scsi/pas16.c to #undef
  831.     PSEUDO_DMA.
  832.  
  833.     Note that the later should be considered a last resort, because
  834.     there will be a severe performance degradation.
  835.  
  836.  
  837.  
  838. Subsection K : Trantor T128/T128F/T228 
  839. Supported and Unsupported Configurations : 
  840. Base addresses :  0xcc000, 00xc8000, 0xdc000, 0xd8000
  841. IRQs : none, 3, 5, 7 (all boards)
  842.  10, 12, 14, 15 (T128F only)
  843. DMA is not used.
  844. IO : memory mapped
  845.  
  846. Autoprobe : works for all supported configurations, requires 
  847.  installed BIOS.
  848.  
  849. Autoprobe Override :
  850. Compile time : Define T128_OVERRIDE to be an array of address, irq 
  851. tupples.  Ie 
  852.  
  853. #define T128_OVERRIDE {{0xcc000, 5}} 
  854.  
  855. for a board at address 0xcc000, IRQ 5.
  856.  
  857. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  858.  
  859. kernel command line : t128=address,irq
  860.  
  861. -1 may be used for no irq, -2 for irq autoprobe.
  862.  
  863. Defines : 
  864. AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
  865. for commands that return with a CHECK CONDITION status. 
  866.  
  867. PSEUDO_DMA - enables PSEUDO-DMA hardware, should give a 3-4X performance
  868. increase compared to polled I/O.
  869.  
  870. PARITY - enable parity checking.  Not supported
  871.  
  872. SCSI2 - enable support for SCSI-II tagged queueing.  Untested
  873.  
  874.  
  875. UNSAFE - leave interrupts enabled during pseudo-DMA transfers.  You
  876.          only really want to use this if you're having a problem with
  877.          dropped characters during high speed communications, and even
  878.          then, you're going to be better off twiddling with transfersize.
  879.  
  880. USLEEP - enable support for devices that don't disconnect.  Untested.
  881.  
  882. Common Problems :
  883. 1.  Command timeouts, aborts, etc.
  884.  
  885.     You should install the NCR5380 patches that I posted to the net 
  886.     some time ago, which should be integrated into some future alpha
  887.     release.  These patches fix a race condition in earlier NCR5380
  888.     driver cores, as well as fixing support for multiple devices on 
  889.     NCR5380 based boards.
  890.  
  891.     If that fails, you should disable the PSEUDO_DMA option by 
  892.     changing the #define PSEUDO_DMA line in drivers/scsi/pas16.c to #undef
  893.     PSEUDO_DMA.
  894.  
  895.     Note that the later should be considered a last resort, because
  896.     there will be a severe performance degradation.
  897.  
  898. Subsection L : Ultrastor 14f, 24f, 34f
  899. Ports : 0x130, 0x140, 0x210, 0x230, 0x240, 0x310, 0x330, 0x340
  900. IRQs : 10, 11, 14, 15
  901. DMA channels : 5, 6, 7
  902. IO : port mapped, bus master
  903.  
  904. Autoprobe : does not work for boards at port 0x310, BIOS not required.  
  905.  
  906. Autoprobe override : compile time only, define PORT_OVERRIDE
  907.  
  908. Common Problems :
  909. 1.  The address 0x310 is not supported by the autoprobe code, and may 
  910.         cause conflicts if networking is enabled.
  911.  
  912.         Please use a different address.
  913.  
  914. 2.  Using an Ultrastor at address 0x330 may cause the system to hang
  915.         when the sound drivers are autoprobing.
  916.  
  917.         Please use a different address.
  918.  
  919. 3.  Various other drivers do unsafe probes at various addresses, if you
  920.         are having problems with detection or the system is hanging at 
  921.         boot time, please try a different address.
  922.  
  923.         0x340 is recommended as an address that is known to work.
  924.  
  925. 4.  Linux detects no SCSI devices, but detects your SCSI hard disk
  926.  on an Ultrastor SCSI board as a normal hard disk, and the
  927.  hard disk driver refuses to support it.  Note that when this 
  928.  occurs, you will probably also get a message
  929.  
  930.  hd.c: ST-506 interface disk with more than 16 heads detected,
  931.    probably due to non-standard sector translation.  Giving up.
  932.    (disk %d: cyl=%d, sect=63, head=64)
  933.  
  934.  If this is the case, you are running the Ultrastor board in
  935.  WD1003 emulation mode.  You have 
  936.  
  937.  1.  Switch the ultrastor into native mode.  This is the 
  938.      recommended action, since the SCSI driver can be 
  939.      significantly faster than the IDE driver, especially with
  940.      the clustered read/write patches installed.  Some users have 
  941.      sustained in excess of 2M/sec through the file system using 
  942.      these patches.
  943.  
  944.      Note that this will be necessary if you wish to use any non-
  945.      hard disk, or more than two hard disk devices on the Ultrastor.
  946.  
  947.  2.  Use the kernel command line switch 
  948.  
  949.      hd=cylinders,heads,sectors
  950.  
  951.      to override the default setting to bootstrap yourself,
  952.      keeping number of cylinders <= 2048, number of heads <= 16,
  953.      and number of sectors <= 255 such that cylinders * heads * sectors
  954.      is the same for both mappings.
  955.  
  956.      You'll also have to manually specify the disk geometry when
  957.      running fdisk under Linux.  Failure to do so will result in 
  958.      incorrect partition entries being written, which will work
  959.      correctly with Linux but fail under MSDOS which looks at 
  960.      the cylinder/head/sector entries in the table.
  961.  
  962.      Once Linux is up, you can avoid the inconvience of having 
  963.      to boot by hand by recompiling the kernel with an appropriately
  964.      defined HD_TYPE macro in include/linux/config.h.
  965.  
  966. Subsection M : Western Digital 7000
  967. Supported Configurations :
  968. BIOS Addresses : 0xce000
  969. Ports : 0x350
  970. IRQs : 15
  971. DMA Channels : 6
  972. IO : port mapped, bus master
  973.  
  974. Autoprobe :  requires installed BIOS 
  975.  
  976. Common Problems : 
  977.  
  978. 1.  There are several revisisions of the chip and firmware.  Supposedly,
  979.  revision 3 boards do not work, revision 5 boards do, 
  980.  chips with no suffix do not work, chips with an 'A' suffix do.
  981.  
  982. 2.  The board supports a few BIOS addresses which aren't on the list 
  983.  of supported addresses.  If you run into this situation,
  984.  please use one of the supported addresses and submit a bug 
  985.  report as outlined in Section 2, "Bug Reports"
  986.  
  987. Section 4 : Disks 
  988. Subsection A : Supported and Unsupported Hardware
  989.  
  990. All direct access SCSI devices with a block size of 256, 512, or 
  991. 1024 bytes should work.  Other block sizes will not work (Note
  992. that this can often be fixed by changing the block and/or 
  993. sector sizes using the MODE SELECT SCSI command)
  994.  
  995. Sector size refers to the number of data bytes allocated per sector 
  996. on a device, ie CDROMs use a 2048 byte sector size.  
  997.  
  998. Block size refers to the size of the logical blocks used to interface
  999. with the device.  Although this is usually identical to sector size,
  1000. some devices map multiple smaller physical sectors (ie, 256 bytes
  1001. in the case of 55M Syquest drives) to larger logical blocks or 
  1002. vice versa (ie, 512 byte blocks on SUN compatable CDROM drives).
  1003.  
  1004. Removeable media devices, including Bernoulis, flopticals, and MO drives 
  1005. work.  
  1006.  
  1007. Subsection B: Common Problems 
  1008.  
  1009. 1.  When partitioning, you get a warning message about "cylinder > 1024"
  1010.  or you are unable to boot from a partition including a logical
  1011.  cylinder past logical cylinder 1024.
  1012.  
  1013.  This is a BIOS limitation.
  1014.  
  1015.  See Subsection D, Disk Geometry, for an explanation.
  1016.  
  1017. 2.  You are unable to partition /dev/hd*
  1018.  
  1019.  /dev/hd* aren't SCSI devices, /dev/sd* are.  
  1020.  
  1021.  See Subsection C, Device files, and Subsection E, partitioning
  1022.  for the correct device names and partitioning procedure.
  1023.  
  1024. 3.  You are unable to eject media from a removeable media drive
  1025.  
  1026.  Linux attempts to lock the drive door when a piece of 
  1027.  media is mounted to prevent filesystem corruption due to
  1028.  an inadvertant media change.
  1029.  
  1030.  Please unmount your disks before ejecting them.
  1031.  
  1032. 4.  You are using a busmastering controller and are getting 
  1033.  poor performance.
  1034.  
  1035.  
  1036.  
  1037. Subsection C : Device Files
  1038.  
  1039. SCSI disks use block device major 8, and there are no "raw" devices
  1040. ala BSD.
  1041.  
  1042. 16 minor numbers are allocated to each SCSI disk, with minor % 16 == 0 
  1043. being the whole disk, minors  1 <= (minor % 16) <= 4 the four primary 
  1044. partitions, minors 5 <= (minor % 16) <= 15 any extended partitions.
  1045.  
  1046. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  1047. only eight bits allocated to the minor number, the SCSI disk minor 
  1048. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  1049.  
  1050. Ie, a configuration may work out like this (with one host adapter)
  1051. Device   Target, Lun  SCSI disk
  1052. 84M Seagate   0 0  /dev/sda
  1053. SCSI->SMD bridge disk 0 3 0  /dev/sdb 
  1054. SCSI->SMD bridge disk 1 3 1  /dev/sdc
  1055. Wangtek tape  4 0  none
  1056. 213M Maxtor  6 0  /dev/sdd
  1057.  
  1058. Etc.  
  1059.  
  1060. The standard naming convention is 
  1061.  
  1062. /dev/sd{letter} for the entire disk device ((minor % 16) == 0)
  1063. /dev/sd{letter}{partition} for the partitions on that device 
  1064.  (1 <= (minor % 16) <= 15)
  1065.  
  1066. Ie
  1067.  
  1068. /dev/sda block device major 8 minor 0
  1069. /dev/sda1 block device major 8 minor 1
  1070. /dev/sda2 block device major 8 minor 2
  1071. /dev/sdb block device major 8 minor 16
  1072.  
  1073. etc.
  1074.  
  1075. Subsection D: Disk Geometry
  1076.  
  1077. The problem with partitioning SCSI disks and Linux is that Linux talks
  1078. directly to the SCSI interface.  Each disk is viewed as the SCSI host
  1079. sees it : N blocks, numbered from 0 to N-1, all error free.  There is
  1080. no portable way to get disk geometry.  Conversly, DOS predates 
  1081. intelligent disks, and requires a head / cylinder / sector mapping.
  1082.  
  1083. If you don't care about using DOS, create a translation such that 
  1084. H * C * S * 512 < size of your drive in bytes (a megabyte is
  1085. defined as 2^20 bytes).
  1086.  
  1087. Otherwise, you'll have to use the BIOS mapping.  In some cases, this
  1088. will mean reconfiguring the disk so that it is at SCSI ID 0, and 
  1089. disabling the second IDE drive (if you have one).
  1090.  
  1091. You can either use a program like NU, or you can use the following 
  1092. program :
  1093.  
  1094. begin 664 dparam.com
  1095. MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U
  1096. M1(I7`H#J,(#Z`7<Y@,*`M`C-$PCD=3-14HC()#\PY.@R`.@J`%J(\/[`,.3H
  1097. M)0#H'0!8AL2Q!M+L0.@7`+K"`;0)S2'#NIP!ZR"ZQ0'K&[K5`>L6N]T!,=*Y
  1098. M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O
  1099. L<B`@9'!A<F%M(#!X.#$-"B1);G9A;&ED(&1R:79E#0HD("`D```````D``!O
  1100. `
  1101. end
  1102.  
  1103. When run it prints the heads, sectors and cylinders of the first
  1104. BIOS-recognised disk.  
  1105.  
  1106. The BIOS imposed limits on the mapped disk geometry are  
  1107.  
  1108. 1 <= # of heads <= 256
  1109. 1 <= # of cylinders <= 1024
  1110. 1 <= # of sectors <= 63
  1111.  
  1112. So, if you create a partition that includes logical cylinders at or 
  1113. past logical cylinder 1024, it will be inaccessable to the BIOS and 
  1114. you will be unable to boot kernels from it.  Since Linux uses the 
  1115. relative sector and length fields in the partition table, and not 
  1116. the head, cylinder, sector tuples, it is not bound by this restriction
  1117. and you will have no problems accessing the partition once Linux is 
  1118. booted.
  1119.  
  1120. You can partition your SCSI disks using the partitioning program
  1121. of your choice, under DOS, OS/2, Linux or any other operating 
  1122. system supporting the standard partitioning scheme.
  1123.  
  1124. The correct way to run the Linux fdisk program is by specifying the
  1125. device on the command line. Ie, to partition the first SCSI disk,
  1126.  
  1127. fdisk /dev/sda
  1128.  
  1129. If you don't explicitly specify the device, the partitioning program
  1130. may default to /dev/hda, which isn't a SCSI disk.
  1131.  
  1132. In some cases, you will get a warning message about a partition ending
  1133. past cylinder 1024, see Subsection D, Disk Geometry for an explanation.
  1134.  
  1135. Section 5 : CD ROMs
  1136.  
  1137. Subsection A: Supported and Unsupported Hardware
  1138.  
  1139. SCSI CDs with a block size of 512 or 2048 bytes should work.  Other
  1140. block sizes will not work.
  1141.  
  1142. Subsection B: Common Problems
  1143.  
  1144. 1.  You can't mount a CDROM
  1145.         The correct syntax to mount an ISO-9660 CDROM is
  1146.  
  1147.         mount -t iso9660 /dev/sr0 /mount_point
  1148.  
  1149.         Note that for this to work, you must have the kernel
  1150.         configured with support for SCSI, your host adapter,
  1151.         the SCSI CDROM driver, and the iso9660 filesystem.
  1152.  
  1153. 2.  You can't eject a CDROM
  1154.  
  1155.  Linux attempts to lock the drive door when a piece of 
  1156.  media is mounted to prevent filesystem corruption due to
  1157.  an inadvertant media change.
  1158.  
  1159. Subsection C: Device Files
  1160.  
  1161. SCSI CD ROMs use major 11.
  1162.  
  1163. Minors are allocated dynamically (See Section 4, Disks, Subsection C,
  1164. Device Files for an example) with the first CDROM found being minor 0,
  1165. the second minor 1, etc.
  1166.  
  1167. The standard naming convention is 
  1168.  
  1169. /dev/sr{digit} ie 
  1170.  
  1171. /dev/sr0
  1172. /dev/sr1
  1173.  
  1174. etc.
  1175.  
  1176. Section 6 : Tapes
  1177. Subsection A : Supported and Unsupported Hardware
  1178.  
  1179. Drives using both fixed and variable length blocks smaller than the
  1180. the driver buffer length (set to 32K in the distribution sources) are
  1181. supported.
  1182.  
  1183. Parameters (block size, buffering, density) are set with ioctls
  1184. (usually with the mt program), and remain in effect after the 
  1185. device is closed and reopened.
  1186.  
  1187. Virtually all drives should work, including :
  1188.  Archive Viper QIC drives, including the 150M and 525M models
  1189.  Exabyte 8mm drives
  1190.  Wangtek 5150S drives
  1191.  Wangdat DAT drives
  1192.  
  1193. Subsection B : Common Problems
  1194. 1. The tape drive is not recognized at boot time.
  1195.  
  1196.  Try booting with a tape in the drive.
  1197.  
  1198. 2.  When reading a tape with multiple files, the first tar 
  1199.  is successful, a second tar fails silently, and retrying 
  1200.  the second tar is successful.
  1201.  
  1202.  User level programs, such as tar, don't understand file marks.
  1203.  The first tar reads up until the end of the file.  The second 
  1204.  tar attempts to read at the file mark, gets nothing, but the 
  1205.  tape spaces over the file mark.  The third tar is successful
  1206.  since the tape is at the start of the next file.
  1207.  
  1208.  Use mt on the no-rewind device to space forward to the next file.
  1209.  
  1210.  
  1211. 3.  Decompressing programs cannot handle the zeros padding the 
  1212.  last block of the file. 
  1213.  
  1214.  To prevent warnings and errors, wrap your compressed files 
  1215.  in a .tar file - ie, rather than doing 
  1216.  
  1217.  tar cfvz /dev/nrst0 file.1 file.2 ...
  1218.  
  1219.  do 
  1220.  
  1221.  tar cfvz tmp.tar.z file.1 file.2 ...
  1222.  
  1223.  tar cf /dev/nrst0 tmp.tar.z
  1224.  
  1225. 5.  You can't read a tape made with another operating system or
  1226.  another operating system can't read a tape written in Linux.
  1227.  
  1228.  Different systems often use different block sizes.  On a
  1229.  tape device using a fixed blocksize, you will get errors 
  1230.  when reading blocks written using a different block size.
  1231.  
  1232.  To read these tapes, you must set the blocksize of 
  1233.  the tape driver to match the blocksize used when
  1234.  the tape was written, or to variable.
  1235.  
  1236.  NOTE : this is the hardware block size, not the blocking
  1237.  factor used with tar, dump, etc.
  1238.  
  1239.  You can do this with the mt command - 
  1240.  
  1241.  
  1242.   mt setblk <size>
  1243.  
  1244.  or 
  1245.  
  1246.   mt setblk 0
  1247.  
  1248.  to get variable block length support.
  1249.  
  1250.  
  1251. 6.  All attempts to access the tape result in a 
  1252.  
  1253.  "No such device"
  1254.  
  1255.  or similar error message.  Check the type of 
  1256.  your tape device - it MUST be a character device with 
  1257.  major and minor numbers matching those specified in subsection
  1258.  C, Device Files.
  1259.  
  1260. Subsection C : Device Files
  1261.  
  1262. SCSI tapes use character device major 9.  
  1263.  
  1264. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  1265. only eight bits allocated to the minor number, the SCSI tape minor 
  1266. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  1267.  
  1268. Rewinding devices are numbered from 0 - with the first 
  1269. SCSI tape, /dev/rst0 being c 9 0, the second /dev/rst1 c 9 1, etc.  
  1270. Non-rewinding devices have the high bit set in the minor number, 
  1271. ie /dev/nrst0 is c 9 128.
  1272.  
  1273. The standard naming convention is 
  1274. /dev/nrst{digit}  for non-rewinding devices
  1275. /dev/rst{digit}  for rewinding devices
  1276.  
  1277. Section 7 : Generic 
  1278. Subsection A : Supported Hardware 
  1279.  
  1280. The Generic SCSI device driver provides an interface for sending 
  1281. SCSI commands to all SCSI devices - disks, tapes, CDROMs, media
  1282. changer robots, etc. 
  1283.  
  1284. Everything electrically compatable with your SCSI board should work.
  1285.  
  1286. Subsection B : Common Problems
  1287.  
  1288. Subsection C : Device Files
  1289.  
  1290. SCSI generic devices use character major 21.  Due to constraints 
  1291. imposed by Linux's use of a 16 bit dev_t, minor numbers are dynamically
  1292. assigned from 0, one per device, with
  1293.  
  1294. /dev/sg0 
  1295.  
  1296. corresponding to the lowest numerical target/lun on the first 
  1297. SCSI board.
  1298.