[ Geek-Home ] [ Unix ] [ Recycle bin ] [ Geek-Code ] [ Geek-definition ] [ Geek-books ] [ Hacker Lifestyle ] [ o2-tech ] [ o2-unofficial ] [ Links ] [ o2 Haiku ] [ Vaio ] [ Asteroids ]



 
 
                   

IRIX: system: IRIX: Customizing scsi parameters

(last edit: 2003-01-05)

How to run 180/300mm scanners on SGI-O2


courtesy of marresearch GmbH @ http://www.marresearch.com On SGI computer featuring 68-pin UltraWide-SCSI-adapters (Adaptec 7880), frequent SCSI-bus resets are observed when a 180/300mm mar scanner is connected to the SCSI-bus. It is well possible that the computer even refuses to boot with a mar device connected to it. If the mar device produces SCSI-bus resets during the boot stage, the operating system will finally exclude the mar device from the list of available SCSI-devices, even if the boot process finishes with a running system. The reason for this is that modern computers are very strict about sources of electronical noise on the SCSI-bus to ensure fast transfer rates (up to 80MB/sec) across the bus.

It is therefore very important to follow the specifications for operating devices on the SCSI-bus. In particular, SGI says that the SCSI-bus must not exceed a total length of 3 meters. When more than 3 SCSI-devices are connected to the bus, the total allowed length reduces to 1.5 meters! Besides the external cables, for each SCSI device must be added 0.5 meters.

Since the 180/300mm mar scanner features a 50-pin Centronics SCSI-connector, when connecting it to the 68-pin UltraWide bus, usage of a proper cable becomes very important. The cable should properly terminate the extra 18 pins. Cheap cables won't do it. Proper cables may be purchased from SGI directly. Also, usage of an active terminator on the SCSI-bus is essential.

If the computer still produces SCSI-bus resets even if the cabling is okay, the last choice is to lower the speed of the SCSI-adapter. At some stage you will certainly get a stable system, but the price to pay is that also other devices connected to that SCSI-adapter will run with lower transfer rates (which might not be too bad, anyway). If this is not desired, a solution to that might be the addition of an extra SCSI-adapter (please note, that the SGI O2 has only very limited extension capabilities. e.g. or an additional SCSI-adapter or an addition network card).

To modify settings of the SCSI-adapter, follow these instructions (as super-user):

  1. ) Goto to directory /var/sysgen/master.d, i.e.

    cd    /var/sysgen/master.d

  2. ) Make a backup copy of the file to be modified, i.e.

    cp    adp78    adp78.bck

  3. ) Search for line:

    u_char adp_device_options[ADP78_NUMADAPTERS][16] = {

The following fields will give the (encoded) options for 16 SCSI-devices each on 7 separate SCSI-adapters. On the O2, the scanner would be normally connected to "adapter 1" (external bus), while the system disk and CD-Rom sits on "adapter 0". In most cases, the SCSI-id of the mar scanner is 2. To find out, type "hinv". The mar scanner shows up as:

Processor: unit 2 on SCSI controller 1

or alike. In the adp_device_options table, the SCSI-id's start with 0, so if the mar scanner is set to SCSI-id 2 and sits on adapter 1, the following lines:

u_char adp_device_options[ADP78_NUMADAPTERS][16] = {
        /* adapter 0 */
        0x83, 0x83, 0x83, 0x83, 0x03, 0x83, 0x83, 0x83,
        0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
        /* adapter 1 */
        0x83, 0x83, 0x83, 0x83, 0x03, 0x83, 0x83, 0x83,
        0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
        /* adapter 2 */
	...

will be modified to:

u_char adp_device_options[ADP78_NUMADAPTERS][16] = {
        /* adapter 0 */
        0x83, 0x83, 0x83, 0x83, 0x03, 0x83, 0x83, 0x83,
        0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
        /* adapter 1 */
        0x83, 0x83, 0x13, 0x83, 0x83, 0x83, 0x83, 0x83,  /* mar on unit 2   */
        0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,  
        /* adapter 2 */
	...

Replacing 0x83 by 0x13 for device on unit 2 means:

  1. ) enable sync negotiation (0x01)
  2. ) enable disconnects (0x02)
  3. ) synchronous xfer rate of 8.0 Mhz (0x10)

So the bus will now run at 8.0 MHz only. This is probably not going to reduce much the performance of other devices like disks and tape drives. 8.0 MHz is likely to work. If there are still SCSI-bus resets, try to reduce the speed stepwise to 6.7MHz (0x23), 5.7 MHz (0x33), 5.0 MHz (0x43), 4.4 MHz (0x53), 4.0 MHz (0x63) and finally 3.6 MHz (0x73).

Also, on the O2 the autoprobing of so called the "logical unit number" (lun) of the mar device must be disabled. In the same file (/var/sysgen/master.d/adp78), find the next data structure (adp_probe_all_luns) and modify the corresponding unit number, e.g. modify:

u_char adp_probe_all_luns[ADP78_NUMADAPTERS][16] = {
        /* adapter 0 */
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        /* adapter 1  */
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        /* adapter 2 */
        ...
to:

u_char adp_probe_all_luns[ADP78_NUMADAPTERS][16] = {
        /* adapter 0 */
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        /* adapter 1  (Do not probe lun on the mar on unit: 2 )*/
        1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        /* adapter 2 */
        ...

After these changes, the kernel needs to be reconfigured. To do so, run:

/etc/autoconfig -f

Reboot.






[ IRIX_tips ]      [ IRIX_login ] [ IRIX_look ] [ IRIX_net ] [ IRIX_toolchest ] [ IRIX_icons ] [ IRIX_boot ]
[ IRIX_vi ] [ IRIX_man ] [ IRIX_aterm ] [ IRIX_wacom ] [ IRIX_scanner ] [ IRIX_adaptec ]



design © 2002 fsck.it