3.4. Objective 5: Set Up Different PC Expansion Cards
As described in Objective 1, when you add hardware to a PC you must accommodate the resource requirements of all installed devices. Your requirements will depend on the type of card, such as whether it is Industry Standard Architecture (ISA) or PCI. This Objective covers the technical details you are required to understand when configuring these types of devices.
3.4.1. Plug and Play
Older hardware, particularly 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:
To configure an older device, 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, once 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.
18.104.22.168. 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. (These files may not show devices unless their device files/drivers are open/active. This may make the problem harder to find if you're experiencing resource conflicts.) The following 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, so 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