From Stephen P. Smith on Mon, 28 Dec 1998
Is there a linux program(s) to would be equivelent to the msd.exe program (in the dos/windows world).
I would like to know that interrupts, dma ranges, etc. my system is using so that I can add another ethernet card to my system. I currently have a 3Com 509B ISA card in the chasis and want to install a second ethernet card.
Can you point me to an article, how-to, or FAQ. I have done some searches and can't come up with anything.
Quite a bit of that information is available from the output of the 'dmesg' (dump boot-time kernel messages) command, and from virtual files under the /proc directory.
Most of the info under /proc can be gained using common shell commands, 'ls' and 'less' or 'cat' Some it is summarized using the 'procinfo' command.
It's also possible to get additional info using the 'lsdev' command, the 'scanpci' command, and utilities from the ISAPNP (plug & play for the ISA bus), PCIUtils and PCMCIA packages. You can use 'SuperProbe' for video cards.
Obviously there isn't a single, integrated and easy menu driven interface for this information. I'd love to see Quarterdeck and Symantec collaborate and put together a combined Manifest (TM) and NDiags (TM) for Linux. I personally think that these were the best utilities for DOS in their class (although "System Sleuth" was pretty good, too).
Some of the availability of this info is dependent on how your kernel is configured. It's possible to compile a stripped down Linux kernel (which can be very compact very fast and somewhat more secure than a larger or more modular one). Such a kernel may not recognize many of the devices that you have installed, and Linux will generally leave anything it doesn't recognize completely alone.
Generally, it is best to learn about your hardware from the documentation provided with it. Naturally I don't practice this as I'd like --- my systems are mostly hobbled together from spare parts. Unfortunately most systems that most of us purchase are woefully under-documented. The PC industry churns through component designs and chipsets so fast and furiously that most manufacturers can't keep track of what they're using from on day to the next. It's a sad and unnecessary state of affairs --- the naturally result of too much competition and commoditization.
(However, without that competition and commoditization we'd all still be paying $5,000 US for XT's --- so I can't complain too much.)
Incidentally the 'ifconfig' command should tell you which IRQ and I/O base your current card is using. If it's using IRQ 10 and I/O base 0x300 (the default for most 3Com cards) you can usually put the next one at IRQ 11, I/O base 0x280 or 0x320. It's pretty easy to run out of IRQ's on PC's. You can sometimes disable your printer ports to grab IRQs 5 and 7 --- and sometimes (especially on servers) you can nix the PS/2 mouse port to reclaim IRQ 12, and/or one or both of your serial ports to get back 3 and 4. That gives you a total of seven that you can distribute among SCSI and ethernet cards in a big server. If you can take out both IDE channels you might get back 14 and 15. Some systems will let you use 9 and 13. As for I/O address spaces. Those usually aren't too crowded.