13.2 Objective 2: Set Up SCSI and
NIC Devices
As described in Objective 1, when you add
hardware to a PC you must accommodate the resource
requirements of all installed devices. Some devices, in
particular SCSI controllers and older network interfaces,
require special configuration. This Objective describes in
general terms some of these considerations.
13.2.1 NICs
More than ever before, today's PCs are
expected to be connected to a network. This means that some
form of network interface card
(or NIC) is used to make the
connection between the computer and the network. Older
hardware, particularly Industry Standard Architecture (ISA)
bus hardware, requires manual configuration. Exam 102 requires
familiarity with these configuration problems.
Generally speaking, we may think about device
configuration methodologies from one of three general eras:
- Jumper era
-
This hardware was constructed in such a way
that settings were controlled by changing the position of
shorting jumpers on terminal
strips. This method is inconvenient in that it requires
internal access to the PC as well as available documentation
on the jumper locations. On the other hand, it is a
hardware-only solution, and the settings are obvious to the
observer. Many such devices are still in service on older
PCs.
- Nonvolatile era
-
These more recent hardware designs
abandoned jumpers in favor of settings that, while still
manually set, are stored in a nonvolatile memory space. This design
eliminated the physical access problem with jumpered
hardware, but introduced a requirement that custom
configuration programs be written, supported, and provided
to consumers by hardware vendors. This software was almost
always based on MS-DOS. Using these configuration tools to
program a card for use under Linux may require a working
MS-DOS machine to provide initial configuration.
- Modern era
-
Most recent NICs work with the PCI bus to
automatically configure themselves. The settings are done
during system initialization, prior to loading the operating
system. This automation eliminates manual configuration and
frees the user from worrying about device conflicts.
To configure an older NIC, you may need to
set jumpers or possibly run MS-DOS and a proprietary
configuration utility. More often than not, factory default
settings can be used with the Linux networking drivers.
However manual configuration is accomplished, you'll need to
be sure that you don't have conflicts with IRQs, I/O
addresses, and possibly DMA channel assignments.
13.2.1.1 Using the /proc
filesystem
When adding new hardware to an existing Linux
system, you may wish to verify which resources the existing
devices are using. The /proc
filesystem, the kernel's status repository, contains this
information. The proc files -- interrupts, dma,
and ioports -- show how system resources are currently
utilized. Here is an example of /proc/interrupts from a dual-CPU system with an Adaptec
dual-AIC7895 SCSI controller: # cat /proc/interrupts
CPU0 CPU1
0: 98663989 0 XT-PIC timer
1: 34698 34858 IO-APIC-edge keyboard
2: 0 0 XT-PIC cascade
5: 7141 7908 IO-APIC-edge MS Sound System
6: 6 7 IO-APIC-edge floppy
8: 18098274 18140354 IO-APIC-edge rtc
10: 3234867 3237313 IO-APIC-level aic7xxx, eth0
11: 36 35 IO-APIC-level aic7xxx
12: 233140 216205 IO-APIC-edge PS/2 Mouse
13: 1 0 XT-PIC fpu
15: 44118 43935 IO-APIC-edge ide1
NMI: 0
ERR: 0
In this example, you can see that interrupt 5
is used for the sound system, thus it isn't available for a
second parallel port. The two SCSI controllers are using
interrupts 10 and 11, respectively, while the Ethernet
controller shares interrupt 10. You may also notice that only
one of the two standard IDE interfaces is enabled in the
system BIOS, freeing interrupt 14 use for another device.
Here are the /proc/dma and /proc/ioports files from the same system: # cat /proc/dma
0: MS Sound System
1: MS Sound System
2: floppy
4: cascade
# cat /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
02f8-02ff : serial(auto)
0370-0371 : OPL3-SAx
0376-0376 : ide1
0388-0389 : mpu401
03c0-03df : vga+
03f0-03f5 : floppy
03f7-03f7 : floppy DIR
03f8-03ff : serial(auto)
0530-0533 : WSS config
0534-0537 : MS Sound System
e800-e8be : aic7xxx
ec00-ecbe : aic7xxx
ef00-ef3f : eth0
ffa0-ffa7 : ide0
ffa8-ffaf : ide1
You should be aware of the default
resource assignments listed in Table
13-1. You should also know how to examine a running
Linux system's resource assignments using the
/proc filesystem. |
13.2.2 SCSI
SCSI is an interface for streaming
devices and block storage devices such as tape drives, hard
disks, CD-ROMs, and other peripheral instruments. SCSI is the
standard interface on server-style PCs, Unix workstations, and
many older Apple models (mostly 604 and earlier systems).
Desktop PCs and newer Apple systems (G3 and above) usually opt
for the IDE (ATA)-style disk interfaces because they are less
expensive. The advantage that SCSI has over IDE is that it
offers much more flexibility and expandability, as well as
faster throughput.
SCSI defines a bus to
which multiple devices are connected. The medium is a
high-quality cable or a series of cables connected to
daisy-chained devices in series. One of the devices in the
chain is the SCSI controller, which is the host interface to the
other connected SCSI devices. The controller and all of the
other devices on the bus are assigned a permanent SCSI address, also known as the SCSI ID,
which defines each SCSI device uniquely on the bus. The
controller can access devices individually by using the unique
SCSI address to access a specific device.
13.2.2.1 SCSI types
The world of SCSI
can be a little confusing, despite the standards set by ANSI.
The original SCSI-1 interface is a 5-MBps (megabytes per
second) 8-bit interface. It uses a 50-pin Centronics
connector, similar to but larger than those found on most
printers. This interface is still in popular use today,
although the connector is usually replaced by a 50-pin micro-D
connector. (This connector is similar to the DB-25 used for
serial ports but has a much higher pin density.) As
performance demands escalated, manufacturers began offering
enhanced products with faster data transfer rates:
- SCSI-1
-
The original: 8-bit, 5-MBps Centronics 50
connector.
- SCSI-2
-
8-bit, 5-MBps Micro-D 50-pin connector.
Interchangeable with SCSI-1. This interface is still
adequate for low-end to midrange tape drives but is too slow
for current technology disks.
- Wide SCSI
-
16-bit, 10-MBps, Micro-D 68-pin connector.
This standard uses a wider cable to support 16-bit
transfers, obtaining faster throughput using the same clock
rate.
- Fast SCSI
-
8-bit, 10-MBps, Micro-D 50-pin connector.
Higher throughput is obtained by doubling the original clock
rate.
- Fast Wide SCSI
-
16-bit, 20-MBps, Micro-D 68-pin connector.
This interface combines both the higher clock rate and the
wider bus.
- Ultra SCSI
-
8-bit, 20-MBps, Micro-D 50-pin connector.
Additional changes to clocking yield still better
performance.
- Ultra Wide SCSI (also known
as SCSI-3)
-
16-bit, 40-MBps.
- Ultra2
-
8-bit, 40-MBps.
- Wide Ultra2
-
16-bit, 80-MBps.
Recent developments have yielded additional
SCSI interface types with up to 160 MBps throughput, and
efforts continue to keep SCSI competitive with other
technologies. As performance increases, however, constraints
on cabling and connectors become more significant. Such
constraints are a major factor in deploying large SCSI-based
systems. Also, with the variety of connectors, cables, and
transfer rates available in the SCSI standards, it's important
to plan carefully. The other inhibiting factor, at least on
the consumer level, is that SCSI hard drives tend to cost two
to three times the amount of a similar-sized IDE drive.
13.2.3 SCSI IDs
Each device on a SCSI bus, including the controller, has
an address based on a binary reading of the address lines. The
8-bit SCSI buses have three address lines and thus will
accommodate 23=8 devices, including the controller.
For the 16-bit busses, there are four address lines resulting
in a possible 24=16 devices. This results in a
maximum of 7 and 15 devices, respectively. These addresses can
be configured using jumpers (typical for disk drives) or
switches. SCSI addresses run from to 7 for 8-bit buses and
from to 15 for 16-bit buses. It is customary for the
controller to occupy address 7 for both bus widths. Disks and
other devices must be assigned a unique address on the bus,
and they must be provided with proper termination, discussed later in this
section.
13.2.3.1 SCSI logical unit
numbers
Some SCSI devices, such as RAID controllers,
appear to the SCSI controller as a disk drive with a single
SCSI address. In order for the controller to access multiple
logical devices using a single SCSI address, an accompanying
logical unit number (LUN), is
reported to the controller. Single disks and tape drives don't
usually use the LUN or report LUN zero.
13.2.3.2 Linux SCSI disk device
files
On Linux systems, IDE disk devices are known as
/dev/hda, /dev/hdb, /dev/hdc, and
/dev/hdd. For SCSI, a similar pattern emerges, with
/dev/sda, /dev/sdb, and so on. The first
partition on disk /dev/sda will be /dev/sdal --
but remember that the partition number has nothing to do with
the SCSI ID. Instead, the letter names of the Linux SCSI
devices start with sda and proceed across all SCSI IDs
and LUNs. The numbers are sequentially assigned to partitions
on a single ID/LUN combination.
For example, a SCSI-2 bus with two disks, a
tape drive, a RAID controller with two LUNs, and the SCSI
controller might be assigned addresses as shown in Table
13-2.
Table 13-2. Sample SCSI
Configuration
Disk 0 |
0 |
- |
/dev/sda |
Disk 1 |
1 |
- |
/dev/sdb |
Tape drive |
5 |
- |
/dev/st0 |
RAID controller device 0 |
6 |
0 |
/dev/sdc |
RAID controller device 1 |
6 |
1 |
/dev/sdd |
Controller |
7 |
- |
- |
If a disk on the SCSI bus is to be bootable,
you may need to configure the SCSI controller's BIOS with the
disk's address. By default, address is expected to be a
bootable disk.
13.2.3.3 Termination
Another facet of SCSI that can be confusing
is termination. A SCSI bus can be
considered a cable with devices connected along its length,
but not at the ends. Instead of devices, the ends of the SCSI
bus have terminators, which are simple electrical devices that
condition the signal and reduce electrical noise on the bus.
However, most external terminators look like a bare connector
at the end of a SCSI cable. Without a terminator, a SCSI bus
can be marginally functional, but it's more likely that it
will fail completely, so proper termination is extremely
important. Termination can be particularly problematic if you
attempt to mix 8- and 16-bit devices on a single bus and use
an 8-bit terminator, leaving half of the 16-bit SCSI bus
unterminated.
External terminators are straightforward
because they are visible. Most device manufacturers include
termination circuitry on their devices, so the application of
an external terminator device is not always necessary. SCSI
controllers can terminate one end of the SCSI bus while an
external terminator or a disk's internal terminator is used on
the other end. Whichever type of terminator is being used, you
must be sure that exactly one terminator is placed at each end
of the SCSI bus (for a total of exactly two terminators),
otherwise the bus may fail.
13.2.3.4 SCSI controllers on
PCs
Most PCs don't come with integrated SCSI
controllers, but a number of add-on cards are available. SCSI
controllers have their own firmware installed along with an
accompanying BIOS, which has its own configuration menus. If
you're using SCSI on a PC, it's important to be able to
manipulate these settings appropriately.
Like the BIOS, a SCSI controller BIOS usually
has a keyboard combination, announced at boot time, to enter
the setup utility. Once the utility is launched, you can
control a number of aspects of the controller, including:
- Controller SCSI
address
-
The default controller address is usually
7, but you may use any address.
- Default boot
device
-
Typically this is set to address 0 for a
hard disk.
- Onboard
termination
-
Depending upon how a controller is utilized
(internal or external bus, or both) you may elect to turn on
the controller's terminator.
- SCSI bus speed
-
Most SCSI adapters that are capable of
higher speeds (Ultra SCSI, for example) can be manually set
to lower speeds to accommodate older devices or longer cable
lengths.
Be sure to be familiar with SCSI IDs,
termination, the SCSI BIOS, and Linux SCSI device naming
for the 102 exam. |
|