home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / misc / linhowto.zip / SCSI.HOW < prev    next >
Text File  |  1993-10-08  |  21KB  |  662 lines

  1. Newsgroups: comp.os.linux.announce,comp.os.linux.comp.os.linux.admin
  2. From: Drew Eckhardt <drew@cs.Colorado.EDU>
  3. Subject: Linux SCSI HOWTO
  4. Keywords: LInux SCSI drive tape CD-ROM HOWTO
  5. Approved: linux-announce@tc.cornell.edu (Matt Welsh)
  6.  
  7. Archive-name: linux/howto/scsi
  8. Last-modified: 14 Sep 93
  9.  
  10. Linux SCSI HOWTO by Drew Eckhardt (drew@cs.colorado.edu)
  11. last updated September 14, 1993
  12.  
  13. This HOWTO covers the Linux SCSI subsystem, as implemented in Linux
  14. kernel revision .99.12 and alpha code available as of September 13, 1993. 
  15.  
  16. For additional information, you may wish to join the SCSI channel of the
  17. Linux activists list - mail to linux-activists-request@joker.cs.hut.fi 
  18. with the line 
  19.  
  20. X-MN-Admin: join SCSI
  21.  
  22. in the header.
  23.  
  24. Table of contents 
  25. Section 1             Common Problems 
  26.  
  27. Section 2            Reporting Bugs
  28.  
  29. Section 3            Hosts
  30.     Subsection A        Supported and Unsupported Hardware
  31.     Subsection B        Common Problems
  32.     Subsection C        Adaptec 152x (ALPHA)
  33.     Subsection D        Adaptec 154x (Standard)
  34.     Subsection E        Adaptec 174x (Standard))
  35.     Subsection F        Allways IN2000 (ALPHA)
  36.     Subsection G        Future Domain TMC-16xx (Standard)
  37.     Subsection H        Generic NCR5380 (ALPHA)
  38.     Subsection I        Seagate ST0x/Future Domain TMC-8xx (Standard)
  39.     Subsection J        Trantor T128/T128F/T228 (ALPHA) 
  40.     Subsection K        Ultrastor 14f, 34f (Standard)
  41.     Subsection L        Ultrastor 14f, 24f, 34f (ALPHA)
  42.     Subsection M        Western Digital 7000 (Standard)
  43.  
  44. Section 4            Disks
  45.     Subsection A         Supported and Unsupported Hardware 
  46.     Subsection B         Common Problems 
  47.     Subsection C        Device Files
  48.     Subsection D        Disk Geometry
  49.     Subsection E         Partitioning 
  50.  
  51. Section 5             CD ROMs
  52.     Subsection A        Supported and Unsupported Hardware 
  53.     Subsection B        Common Problems
  54.     Subsection C        Device Files 
  55.  
  56. Section 6            Tapes
  57.     Subsection A        Supported and Unsupported Hardware
  58.     Subsection B        Common Problems
  59.     Subsection C        Device Files
  60.  
  61. Section 1 : Common Problems 
  62. 1.  A SCSI device shows up at all possible IDs 
  63.  
  64.     If this is the case, you've strapped the device at the same 
  65.     address as the controller (typically, 7, although some boards
  66.     use other addresses).  Please change the jumper settings.
  67.  
  68. 2.  You get sense errors when you know the devices are error free
  69.  
  70.     Sometimes this is caused by bad cables or impropper termination.
  71.  
  72.     Your SCSI bus must be terminated at both ends (using external
  73.     terminators, or onboard terminators on the host adapter or 
  74.     devices) and not in the middle.
  75.  
  76. Section 2 : Reporting Bugs
  77.  
  78. The Linux SCSI developers don't necessarily maintain old revisions
  79. of the code due to space constraints.  So, if you are not running the
  80. latest publically released Linux kernel (note that many of the Linux
  81. distributions, such as MCC, SLS, Yggdrasil, etc. often lag one or more 
  82. revisions behind this) chances are we will be unable to solve your 
  83. problem.  So, before reporting a bug, please check to see if it exists
  84. with the latest publically available kernel.
  85.  
  86. If after upgrading, and reading this document thoroughly, you still
  87. believe that you have a bug, please mail a bug report to the SCSI channel
  88. of the mailing list where it will be seen by many of the people who've 
  89. contributed to the Linux SCSI drivers.
  90.  
  91. In your bug report, please provide as much information as possible
  92. regarding your hardware configuration, and all of the messages that 
  93. Linux prints when it boots.  Your chances of getting the bug fixed increase 
  94. exponentially with the amount of information provided.  
  95.  
  96. The bottom line is that if we can't reproduce your bug, and you can't 
  97. point at us what's broken, it won't get fixed.
  98.  
  99. Section 3 : Hosts
  100.  
  101. Subsection A : Supported and Unsupported Hardware
  102. Drivers in the distribution kernel :
  103.  
  104. Adaptec 154x (including clones from Bustek and DTC - DTC models that 
  105. work are the 3290 and 3292), Adaptec 174x, Future Domain 850, 885, 950, 
  106. and other boards in that series (but not the 880 board unless you make 
  107. the appropriate patch), Future Domain 16x0,  Seagate ST0x, Ultrastor 14F 
  108. and 34F,  and Western Digital 7000 
  109.  
  110. Alpha drivers :
  111. Adaptec 1520 - ftp tsx-11.mit.edu:/pub/linux/ALPHA/scsi/aha1522
  112.     bootable kernel not available.
  113. Allways IN2000 - ftp tsx-11.mit.edu:/pub/linux/ALPHA/scsi/in2000
  114.     driver is in2000.tar.z, bootable kernel zImage
  115. Generic (port mapped) NCR5380 
  116. Trantor T128/T128F/T228 - email drew@cs.colorado.edu
  117.     bootable kernel not available
  118. Ultrastor 14F,24F, and 34F - ftp 
  119.     tsx-11.mit.edu:/pub/linux/ALPHA/scsi/u24f-driver.tar.z,
  120.     boot kernel available, Image.Ultrastor in the same directory.
  121.  
  122. SCSI Hosts that would work with a little work : 
  123. AIC6260 motherboard controller and Adaptec 1510, using the 
  124.     Adaptec 1520 ALPHA driver (same chip)
  125. PAS-16 SCSI port, using the generic NCR5380 ALPHA driver (same chip)
  126. Trantor T130 - using the NCR5380 driver (different chip, 5380 
  127.     ASIC cell used)
  128.  
  129.  
  130. SCSI Hosts that will not work : 
  131.  
  132. Adaptec 2742, 2742T, non Adaptec compatable DTC boards (including the 3270 
  133. and 3280), Mylex, all parallel->SCSI adapters, Rancho SCSI boards, 
  134. Grass Roots SCSI boards.
  135.  
  136. If you want to run Linux on an unsupported piece of hardware, your 
  137. options are to either write a driver yourself (Eric Youngdale and I are 
  138. usually willing to answer technical questions concerning the Linux
  139. SCSI drivers) or to commision a driver.
  140.  
  141. Subsection B : Common Problems 
  142. 1.  SCSI timeouts 
  143.  
  144.     Make sure interrupts are enabled correctly, and there are no 
  145.     IRQ, DMA, or address conflicts with other boards.
  146.  
  147. 2.  Boards using the BIOS to autoprobe are not detected (see the 
  148.     Autoprobe entry for your host adapter)
  149.  
  150.         This fails if the BIOS is disabled (see the Autoprobe Override
  151.         entry for your board to see if you can override it) or your 
  152.     boards "signature" doesn't match one of the known ones.
  153.  
  154.     If the BIOS is installed, please use DOS and DEBUG to 
  155.     find a signature that will detect your board -
  156.  
  157.     Ie, if your board lives at 0xc8000 do
  158.  
  159.     debug
  160.     d c800:0
  161.     q
  162.  
  163.     and send a message to the SCSI channel of the mailing list with
  164.     the ASCII message, with the length and offset from the base 
  165.     address (ie, 0xc8000).  Note that the EXACT text is required.
  166.  
  167. 3.  Boards using memory mapped IO do not work.
  168.  
  169.     This is often caused when the memory mapped I/O ports 
  170.     are incorrectly cached.  You should have the board's 
  171.     address space marked as uncachable in the XCMOS settings.
  172.  
  173.     If this is not possible, you will have to disable cache 
  174.     entirely.
  175.  
  176. 4.  The bootable kernel for an ALPHA driver does not work,
  177.     resulting in a "kernel panic : cannot mount root device"
  178.     message, or it does not work with your Linux distribution.
  179.  
  180.     You'll need to edit the binary image of the kernel (before
  181.     or after writing it out to disk), and modify a few two byte 
  182.     fields (little endian) to gurantee that it will work on your 
  183.     system.  
  184.  
  185.     1.  default swap device at offset 502, this should be set to 0
  186.  
  187.     2.  ram disk size at offset 504, this should be set to the size
  188.         of the boot floppy in K - ie, 5.25" = 1200, 3.5" = 1440.
  189.  
  190.         This means the bytes are 
  191.  
  192.         3.5" : 0xA0 0x05 
  193.         5.25" : 0xB0  0x04
  194.  
  195.     3.  root device offset at 508, this should be 0, ie the boot
  196.         device. 
  197.  
  198.     dd or rawrite the file to a disk.  Insert the disk in the
  199.     first floppy drive, wait until it prompts you to insert
  200.     the root disk, and insert the root floppy from your 
  201.     distribution.
  202.  
  203. Subsection C : Adaptec 152x 
  204. ALPHA via ftp tsx-11.mit.edu:/pub/linux/ALPHA/scsi/aha1522
  205.     bootable kernel not available.
  206. Supported Configurations : 
  207. Addresses : 0xd8000, 0xdc000, 0xd0000, 0xd4000, 0xc8000, 0xcc000, 0xe0000,
  208.     0xe4000.
  209. Ports : 0x140, 0x340
  210. IRQs : 9, 10, 11, 12
  211. DMA is not used
  212. IO : port mapped
  213.  
  214. Autoprobe : works with all supported configurations, requires installed BIOS
  215.  
  216. Autoprobe Override : none
  217.  
  218. Defines : 
  219. CONF_RECONNECT : configure reconnection from controller's jumpers
  220. RECONNECT      : enable or disable reconnection
  221. CONF_PARITY    : configure reconnection from controller's jumpers
  222. PARIRY         : enable or disable parity
  223. CONF_SCSI_ID   : configure scsi id of controller from its jumpers
  224. SCSI_ID        : Override jumpered SCSI-ID
  225.  
  226. Notes : The Adaptec 152x boards are built arround the AIC-6260.  With
  227.     minor modifications, things should work with the 1510 and 
  228.     AIC-6260 motherboard SCSI controllers.
  229.  
  230. Subsection D : Adaptec 154x
  231. Supported Configurations :
  232. Ports : 0x330 and 0x334 
  233. IRQs : 9, 10, 11, 12, 14, 15
  234. DMA channels : 5, 6, 7
  235. IO : port mapped, bus master
  236.  
  237. Unsupported Configurations:
  238. The 'C' revision BIOS options to
  239. - Autoprobe
  240. - Support > 2 hard disks with the BIOS
  241. - Do extended mapping
  242.  
  243. Autoprobe : works with all supported configurations, does not 
  244.     require an installed BIOS.
  245.  
  246. Autoprobe override : none
  247.  
  248. Common problems :
  249.  
  250. 1.  There are unexpected errors with a revision C board. 
  251.     Early examples of the 154xC boards have a high slew rate on 
  252.     one of the SCSI signals, which results in signal reflections 
  253.     when cables with the wrong impedance are used.
  254.  
  255.     Try changing the cables, ESPECIALLY if you are using 
  256.     external cables.
  257.  
  258. 2.  There are error messages (ie, interrupt received, no mail) during
  259.     initialization with the C revision boards.
  260.  
  261.     These may result from the use of one of the unsupported BIOS
  262.     options.  Turn it off.
  263.  
  264. Subsection E : Adaptec 174x
  265. Supported Configurations : 
  266. Slots : 1-8
  267. Ports : EISA board, not applicable
  268. IRQs : 9, 10, 11, 12, 14, 15
  269. DMA Channels : EISA board, not applicable
  270. IO : port mapped, bus master
  271.  
  272. Autoprobe : works with all supported configurations
  273.  
  274. Autoprobe override : none
  275.  
  276. Common Problems : 
  277. 1. If the Adaptec 1740 driver prints the message 
  278.     "aha1740: Board detected, but EBCNTRL = %x, so disabled it."
  279.  
  280.     your board was disabled because it was not running in enhanced 
  281.         mode.  Boards running in standard 1542 mode are not supported.
  282.  
  283. Subsection F : Allways IN2000 
  284. ALPHA available via ftp tsx-11.mit.edu/pub/linux/ALPHA/SCSI/in2000
  285.     driver is in2000.tar.z, bootable kernel zImage
  286. Ports : 0x100, 0x110, 0x200, 0x220
  287. IRQs : 10, 11, 14, 15
  288. DMA is not used
  289. IO : port mapped
  290.  
  291. Autoprobe : BIOS not required
  292.  
  293. Autoprobe override : none
  294.  
  295. Common Problems : 
  296.  
  297. 1.  There are known problems in systems with IDE drives and with 
  298.     swapping.
  299.  
  300. Subsection G : Future Domain TMC-16xx
  301. Supported Configurations :
  302. Ports : 0x140, 0x150, 0x160, 0x170
  303. IRQs : 3, 5, 10, 11, 12, 14, 15
  304. DMA is not used
  305. IO : port mapped
  306.  
  307. Autoprobe : works with all supported configurations, requires 
  308.     installed BIOS
  309.  
  310. Autoprobe Override : none
  311.  
  312. Subsection H : Generic NCR5380 (ALPHA)
  313. Supported and Unsupported Configurations : 
  314. Ports : all
  315. IRQs : all
  316. DMA channels - DMA is not used
  317. IO : port mapped
  318.  
  319. Autoprobe : none
  320.  
  321. Autoprobe Override :
  322. Compile time : Define GENERIC_NCR5380_OVERRIDE to be an array of tupples 
  323. with port, irq - ie 
  324. #define GENERIC_NCR5380_OVERRIDE {{0x330, 5,}} 
  325.  
  326. for a board at port 330, IRQ 5.
  327.  
  328. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  329.     
  330. LILO command line : ncr5380=port,irq
  331.  
  332. -1 may be used for no irq, -2 for irq autoprobe.
  333.  
  334. Notes : the generic driver doesn't support DMA yet, and pseudo-DMA 
  335.     isn't supported in the generic driver.
  336.  
  337. Subsection I : Seagate ST0x/Future Domain TMC-8xx
  338. Supported and Unsupported Configurations : 
  339. Base addresses : 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000 
  340. IRQs : 3, 5
  341. DMA channels : DMA is not used
  342. IO : memory mapped
  343.  
  344. Autoprobe : probes for address only, IRQ is assumed to be 5,
  345.     requires installed BIOS.
  346.  
  347. Autoprobe Override :
  348. Compile time : Define OVERRIDE to be the base address, CONTROLLER to 
  349. FD or SEAGATE as appropriate, and IRQ to the IRQ.
  350.  
  351. LILO command line : st0x=irq, address or fd88x=irq, address.
  352.  
  353. Common Problems : 
  354.  
  355. 1.  There are command timeouts when Linux attempts to read the partition
  356.     table or do other disk access.
  357.  
  358.     The board ships with the defaults set up for MSDOS, ie interrupts
  359.     are disabled.  To jumper the board for interrupts, on the Seagate
  360.     use jumper W3 (ST01) or JP3 (ST02) and short pins F-G to select 
  361.     IRQ 5.
  362.  
  363. 2.  The driver can't handle some devices, particularly cheap SCSI 
  364.     tapes and CDROMs.
  365.  
  366.     The Seagate ties the SCSI bus REQ/ACK handshaking into the PC bus
  367.     IO CHANNEL READY and (optionally) 0WS signals.  Unfortunately, it 
  368.     doesn't tell you when the watchdog timer runs out, and you have 
  369.     no way of knowing for certain that REQ went low, and may end up
  370.     seeing one REQ pulse as multiple REQ pulses.
  371.  
  372.     Dealing with this means using a tight loop to look for REQ to 
  373.     go low, with a timeout incase you don't catch the transition due
  374.     to an interrupt, etc.  This results in a performance decrease, so it
  375.     would be undesireable to apply this to all SCSI devices.  Instead, 
  376.     it is selected on a per-device basis with the "borken" field for 
  377.     the given SCSI device in the scsi_devices array.  If you run into
  378.     problems, you should try adding your device to the list of 
  379.     devices for which borken is not reset to zero (currently, 
  380.     only the TENEX CDROM drives).
  381.  
  382. Defines : 
  383.  
  384. FAST or FAST32 will use blind transfers where possible
  385.  
  386. ARBITRATE will cause the host adapter to arbitrate for the 
  387.     bus for better SCSI-II compatability, rather than just 
  388.         waiting for BUS FREE and then doing it's thing.  Should
  389.     let us do one command per Lun when I integrate my 
  390.     reorganization changes into the distribution sources.
  391.  
  392. SLOW_HANDSHAKE will allow compatability with broken devices that don't 
  393.     handshake fast enough (ie, some CD ROM's) for the Seagate
  394.     code.
  395.  
  396. SLOW_RATE=x, x some number will let you specify a default 
  397.     transfer rate if handshaking isn't working correctly.
  398.  
  399. Subsection J : Trantor T128/T128F/T228 (ALPHA) 
  400. Supported and Unsupported Configurations : 
  401. Base addresses :  0xcc000, 00xc8000, 0xdc000, 0xd8000
  402. IRQs : none, 3, 5, 7 (all boards)
  403.     10, 12, 14, 15 (T128F only)
  404. DMA is not used.
  405. IO : memory mapped
  406.  
  407. Autoprobe : works for all supported configurations, requires 
  408.     installed BIOS.
  409.  
  410. Autoprobe Override :
  411. Compile time : Define T128_OVERRIDE to be an array of address, irq 
  412. tupples.  Ie 
  413.  
  414. #define T128_OVERRIDE {{0xcc000, 5}} 
  415.  
  416. for a board at address 0xcc000, IRQ 5.
  417.  
  418. The symbolic IRQs IRQ_NONE and IRQ_AUTO may be used.
  419.  
  420. LILO command line : t128=address, irq
  421.  
  422. -1 may be used for no irq, -2 for irq autoprobe.
  423.  
  424. Defines : 
  425. AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
  426. for commands that return with a CHECK CONDITION status. 
  427.  
  428. PSEUDO_DMA - enables PSEUDO-DMA hardware, should give a 3-4X performance
  429. increase compared to polled I/O.
  430.  
  431. PARITY - enable parity checking.  Not supported
  432.  
  433. SCSI2 - enable support for SCSI-II tagged queueing.  Untested
  434.  
  435.  
  436. UNSAFE - leave interrupts enabled during pseudo-DMA transfers.  You
  437.          only really want to use this if you're having a problem with
  438.          dropped characters during high speed communications, and even
  439.          then, you're going to be better off twiddling with transfersize.
  440.  
  441. USLEEP - enable support for devices that don't disconnect.  Untested.
  442.  
  443. Subsection K : Ultrastor 14f, 34f 
  444. Supported and Unsupported Configurations : 
  445. Ports : 0x130, 0x140, 0x210, 0x230, 0x240, 0x310, 0x330, 0x340
  446. IRQs : 10, 11, 14, 15
  447. DMA channels : 5, 6, 7
  448. IO : port mapped, bus master
  449.  
  450. Autoprobe : does not work for boards at port 0x310, BIOS not required.  
  451.  
  452. Autoprobe override : compile time only, define PORT_OVERRIDE
  453.  
  454. Subsection L : Ultrastor 14f, 24f, 34f (ALPHA)
  455. ALPHA via ftp tsx-11.mit.edu:/pub/linux/ALPHA/scsi/u24f-driver.tar.z,
  456.     boot kernel available, Image.Ultrastor in the same directory.
  457. Ports : 0x130, 0x140, 0x210, 0x230, 0x240, 0x310, 0x330, 0x340
  458. IRQs : 10, 11, 14, 15
  459. DMA channels : 5, 6, 7
  460. IO : port mapped, bus master
  461.  
  462. Autoprobe : does not work for boards at port 0x310, BIOS not required.  
  463.  
  464. Autoprobe override : compile time only, define PORT_OVERRIDE
  465.  
  466. Subsection L : Western Digital 7000
  467. Supported Configurations :
  468. BIOS Addresses : 0xce000
  469. Ports : 0x350
  470. IRQs : 15
  471. DMA Channels : 6
  472. IO : port mapped, bus master
  473.  
  474. Autoprobe :  requires installed BIOS 
  475.  
  476. Common Problems : 
  477.  
  478. 1.  There are several revisisions of the chip and firmware.  Supposedly,
  479.     revision 3 boards do not work, revision 5 boards do, 
  480.     chips with no suffix do not work, chips with an 'A' suffix do.
  481.  
  482. Section 4 : Disks 
  483. Subsection A : Supported and Unsupported Hardware
  484.  
  485. All direct access SCSI devices with a block size of 256, 512, or 
  486. 1024 bytes should work.  Other block sizes will not work.
  487.  
  488. Removeable media devices, including Bernoulis, flopticals, and MO drives 
  489. should work.  Other sector sizes will not work.
  490.  
  491. Subsection B: Common Problems 
  492.  
  493. 1.  When partitioning, you get a warning message about "cylinder > 1024"
  494.     or you are unable to boot from a partition including a logical
  495.     cylinder past logical cylinder 1024.
  496.  
  497.     This is a BIOS limitation.
  498.  
  499.     See Subsection D, Disk Geometry, for an explanation.
  500.  
  501. 2.  You are unable to partition /dev/hd*
  502.  
  503.     /dev/hd* aren't SCSI devices, /dev/sd* are.  
  504.  
  505.     See Subsection C, Device files, and Subsection E, partitioning
  506.     for the correct device names and partitioning procedure.
  507.  
  508. 3.  Removeable media devices are not recognized at boot time.
  509.  
  510.     Try booting with a disk in the drive.
  511.  
  512. Subsection C : Device Files
  513.  
  514. SCSI disks use block device major 8, and there are no "raw" devices
  515. ala BSD.
  516.  
  517. 16 minor numbers are allocated to each SCSI disk, with minor % 16 == 0 
  518. being the whole disk, minors  1 <= minor % 16 <= 4 the four primary 
  519. partitions, minors 5 <= minor & 16 <= 15 any extended partitions.
  520.  
  521. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  522. only eight bits allocated to the minor number, the SCSI disk minor 
  523. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  524.  
  525. Ie, a configuration may work out like this (with one host adapter)
  526. Device            Target, Lun        SCSI disk
  527. 84M Seagate         0    0        /dev/sda
  528. SCSI->SMD bridge disk 0    3    0        /dev/sdb 
  529. SCSI->SMD bridge disk 1    3    1        /dev/sdc
  530. Wangtek tape        4    0        none
  531. 213M Maxtor        6    0        /dev/sdd
  532.  
  533. Etc.  
  534.  
  535. The standard naming convention is 
  536.  
  537. /dev/sd{letter} for the entire disk device (minor 0)
  538. /dev/sd{letter}{partition} for the partitions on that device (minor 0 - 15)
  539.  
  540. Ie
  541.  
  542. /dev/sda
  543. /dev/sda1
  544. /dev/sda2
  545. /dev/sdb
  546.  
  547. etc.
  548.  
  549. Subsection D: Disk Geometry
  550.  
  551. The problem with partitioning SCSI disks and Linux is that Linux talks
  552. directly to the SCSI interface.  Each disk is viewed as the SCSI host
  553. sees it : N blocks, numbered from 0 to N-1, all error free.  There is
  554. no portable way to get disk geometry.  Conversly, DOS predates 
  555. intelligent disks, and requires a head / cylinder / sector mapping.
  556.  
  557. If you don't care about using DOS, create a translation such that 
  558. H * C * S / 2 < size of your drive in megabytes (where a megabyte is
  559. defined as 2^20 bytes).
  560.  
  561. Otherwise, you'll have to use the BIOS mapping.  In some cases, this
  562. will mean reconfiguring the disk so that it is at SCSI ID 0, and 
  563. disabling the second IDE drive (if you have one).
  564.  
  565. You can either use a program like NU, or you can use the following 
  566. DEBUG code :
  567.  
  568. a 0100
  569. mov ah, 8
  570. int 3
  571.  
  572. g=0100 
  573. d
  574.  
  575.  
  576.  
  577. The BIOS imposed limits on the mapped disk geometry are  
  578.  
  579. 1 <= # of heads <= 256
  580. 1 <= # of cylinders <= 1024
  581. 1 <= # of sectors <= 63
  582.  
  583. So, if you create a partition that includes logical cylinders at or 
  584. past logical cylinder 1024, it will be inaccessable to the BIOS and 
  585. you will be unable to boot kernels from it.  Since Linux uses the 
  586. relative sector and length fields in the partition table, and not 
  587. the head, cylinder, sector tuples, it is not bound by this restriction
  588. and you will have no problems accessing the partition once Linux is 
  589. booted.
  590.  
  591. You can partition your SCSI disks using the partitioning program
  592. of your choice, under DOS, OS/2, Linux or any other operating 
  593. system supporting the standard partitioning scheme.
  594.  
  595. The correct way to run the Linux fdisk program is by specifying the
  596. device on the command line. Ie, to partition the first SCSI disk,
  597.  
  598. fdisk /dev/sda
  599.  
  600. If you don't explicitly specify the device, the partitioning program
  601. may default to /dev/hda, which isn't a SCSI disk.
  602.  
  603. In some cases, you will get a warning message about a partition ending
  604. past cylinder 1024, see Subsection D, Disk Geometry for an explanation.
  605.  
  606. Section 5 : CD ROMs
  607.  
  608. Subsection A: Supported and Unsupported Hardware
  609.  
  610. SCSI CD's with a block size of 512 or 2048 bytes should work.  Other
  611. block sizes will not work.
  612.  
  613. Subsection B: Common Problems
  614.  
  615. 1.  The device is not recognized at boot time.
  616.     Try booting with a CDROM in the drive.
  617.  
  618. Subsection C: Device Files
  619.  
  620. SCSI CD ROMs use major 11.
  621.  
  622. Minors are allocated dynamically (See Section 4, Disks, Subsection C,
  623. Device Files for an example) with the first CDROM found being minor 0,
  624. the second minor 1, etc.
  625.  
  626. The standard naming convention is 
  627.  
  628. /dev/sr{digit} ie 
  629.  
  630. /dev/sr0
  631. /dev/sr1
  632.  
  633. etc.
  634.  
  635. Section 6 : Tapes
  636. Subsection A : Supported and Unsupported Hardware
  637.  
  638. All SCSI tape drives should work.
  639.  
  640. Subsection B : Common Problems
  641. 1.  The tape drive is not recognized at boot time
  642.     Try booting with a tape in the drive.
  643.  
  644. Subsection C : Device Files
  645.  
  646. SCSI tapes use character device major 9.  
  647.  
  648. Due to constraints imposed by Linux's use of a sixteen bit dev_t with
  649. only eight bits allocated to the minor number, the SCSI tape minor 
  650. numbers are assigned dynamically starting with the lowest SCSI HOST/ID/LUN.
  651.  
  652. Rewinding devices are numbered from 0 - with /dev/st0 being c 9 0, 
  653. /dev/rst1 c 9 1, etc.  Non-rewinding devices have the high bit set - 
  654. ie /dev/nrst0 is c 9 128.
  655.  
  656. The standard naming convention is 
  657. /dev/nrst{digit}     for non-rewinding devices
  658. /dev/rst{digit}        for rewingind devices
  659.  
  660.  
  661.  
  662.