You need to build a BOOT and ROOT pair of Linux diskettes to run these commands. I used the slackware disks.
I use modules, so my ethernet card is detected after boot, If yours isn't detected, check the README or config.in associated with that kernel, so see if that driver is built in. But this is the sort of text you should see when the kernel boots and initialises each driver, i.e. after the memory counter and LILO prompt.
Console: 16 point font, 400 scans Console: colour VGA+ 80x25, 1 virtual console (max 63) Calibrating delay loop.. ok - 39.94 BogoMIPS Memory: 14972k/16384k available (572k kernel code, 384k reserved, 456k data) This processor honours the WP bit even when in supervisor mode. Good. Swansea University Computer Society NET3.035 for Linux 2.0 NET3: Unix domain sockets 0.12 for Linux NET3.035. Swansea University Computer Society TCP/IP for NET3.034 IP Protocols: ICMP, UDP, TCP Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Checking 'hlt' instruction... Ok. Linux version 2.0.0 (root@trix) (gcc version 2.7.0) #3 Fri Jul 26 01:28:41 BST 1996 Serial driver version 4.13 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty01 at 0x02f8 (irq = 3) is a 16450 tty02 at 0x03e8 (irq = 4) is a 16550A Real Time Clock Driver v1.07 Ramdisk driver initialized : 16 ramdisks of 0K size hda: ST31220A, 1033MB w/256kB Cache, LBA, CHS=2099/16/63 hdb: DSAA-3540, 504MB w/96kB Cache, LBA, CHS=1024/16/63 hdc: QUANTUM MAVERICK 540A, 516MB w/98kB Cache, LBA, CHS=1049/16/63 hdd: FX001DE, ATAPI CDROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15 Floppy drive(s): fd0 is 1.44M Started kswapd v 220.127.116.11 FDC 0 is an 8272A Partition check: hda: hda1 hda3 hda4 hdb: hdb1 hdb2 hdb3 hdc: [PTBL] [524/32/63] hdc1 hdc2 # dmesg includes some messages from after the kernel boot VFS: Mounted root (ext2 filesystem) readonly. Adding Swap: 33228k swap-space loading device 'eth0'... ne.c:v1.10 9/23/94 Donald Becker (firstname.lastname@example.org) NE*000 ethercard probe at 0x300: 00 c0 df 45 08 da eth0: NE2000 found at 0x300, using IRQ 12. hdd: media changed CSLIP: code copyright 1989 Regents of the University of California PPP: version 2.2.0 (dynamic channel allocation) PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered. registered device ppp0 PPP: ppp line discipline successfully unregistered
fdisk -l scans through every device that the kernel previously found, and reports the geometry. It sort of ignores /dev/hdd which is a CDROM. Note that it has reported /dev/hdc as having 32 heads.
The number of cylinders for this disk is set to 2099. This is larger than 1024, and may cause problems with: 1) software that runs at boot time (e.g., LILO) 2) booting and partitioning software form other OSs (e.g., DOS FDISK, OS/2 FDISK) Disk /dev/hda: 16 heads, 63 sectors, 2099 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 201 201 2099 957096 83 Linux native /dev/hda3 21 21 200 90720 83 Linux native /dev/hda4 1 1 20 10048+ 83 Linux native Disk /dev/hdb: 16 heads, 63 sectors, 1024 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hdb1 1 1 66 33232+ 82 Linux swap /dev/hdb2 * 67 67 676 307440 83 Linux native /dev/hdb3 * 677 677 1023 174888 6 DOS 16-bit >=32M Disk /dev/hdc: 32 heads, 63 sectors, 524 cylinders Units = cylinders of 2016 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hdc1 1 1 24 24160+ 82 Linux swap /dev/hdc2 25 25 524 504000 83 Linux native Disk /dev/hdd: 32 heads, 63 sectors, 524 cylinders Units = cylinders of 2016 * 512 bytes Device Boot Begin Start End Blocks Id System
My genius NE2000 clone, is software programmable to change IRQ's and IO_PORT addresses.
However this gave me two problems: firstly the software that does this is DOS based, and I would have to boot DOS to set it. Normally you only have to do this once, but some cards may need it every cold boot. Some cards have a Linux utility to do the same.
The second problem, was that the software / hardware needed to have the old settings to reprogram it to the new settings! Since this conflicted with another card, I was stumped.
The answer was to "hard" set the jumpers, to IRQ 12. Then it worked a treat.
Linux has to "guess" the settings, so that it uses the same addresses as the card. This can be done in three ways (assuming that hard setting it in the kernel source is not wanted).
(1) The kernel driver gropes a list of addresses, and gets lucky - before it gets unlucky, and gropes something that doesn't like being groped!
read the kernel source for the list of typical device addresses, and the SomeThing-HOWTO, and other docs on your CDROM. Some cards only have 3 IRQ options, so pick yours.
(2) You tell it on the LILO command line and the driver picks up that value, when it runs.
LILO: raven ne=0x300
(3) You tell the loaded module in /etc/conf.modules. In this example, knowing the IO address is enough, the driver tickles the card, and sees what IRQ line it chuckles on.
# /etc/conf.modules alias eth0 ne options ne io=0x300
If you're going to take the lid off, you should do a quick hardware audit of the machine That means fetching the printout from the database, and comparing a few landmarks.
It helps the PC's owner if you know which disks it has, what kind of cards, etc. Basically every machine has a free-form text page, with serial numbers and mod levels, extra notes OK.
Print-out the following, write over it, type it in.
(these are NOT all from the same machine). ISA-BUS CD-ROM IRQ
# for me anyway IO_ADDR 0x320 # uses maybe a dozen MEMORY ---- # NONE or DUNNO PART NO SERIAL 7029218 LILO sbpcd=0x320,LaserMate BUSLOGIC SCSI IRQ 11 IO_ADDR 0x330 # 12 < 16 ? ROM 0xDC000 # 0xDFFFF # ie DE000 - 1 P/N --- Serial 41027 327 SCSI 7 (could be 6 on shared bus) Adaptec 1542b (in a second machine!) IRQ 11 IO_ADDR 0x330 DMA 5 ROM DC000 + 16k BIOS 3.10 HOST SCSI 7 NE2000 IRQ 12 IO_ADDR 0x300 MEMORY Serial E11 145857 MAC 00 C0 DF 45 08 DA SMC Elite-16 IRQ 10 IO 0x280 Buffer 0xd000 +4000 = 0xd3fff Serial MAC 00 00 C0 6C 5E 41 IDE-second IRQ 15 IO_ADDR - MEMORY - IDE-first IRQ 14 IO_ADDR - MEMORY - Serial DY0 Z505A 39570 Video CL5429 2M Memory - standard VGA locations ROM 0xC000 +32k Serial 090Z5 02Q12 372 Alto modem IRQ 5 (or NOT??) Serial 1721 5911 A BIOS 1.021A (Feb 95) (checksum error) IBM disk IDE P/N 85G2272 serial 3H94490151 Geometry: Quantum Maverick IDE P/N MV54A011 rev 02-g Serial: 33 55 00 86 41 95 F SCSI extern case: model E-MTB-353 serial 09408604 M26235A DISK SCSI: (broken and Fujitsu won't replace!) P/N B03B-7195-B015A # N Serial 12171 (1991-06) M2694ES-512 812A Serial Geometry: C=21072 H=186 S=57 SQ5110 Syquest 88 M cartridge Serial Geometry: C= H= S= So if someone sells you one of these 'real-cheap', gimme a call. COM-PORT-UART-TYPE 8250 16450 16550 16550A[F] --------------------------------------------------------- COM1: IRQ 4 0x3F8 16450 COM2: IRQ 3 0x2F8 16450 (poor choice for modems) COM3: IRQ 4 0x3E8 16550AF COM4: IRQ 3 0x2E8 LPT1: IRQ 7 0x378 ROM-BIOS F000 +64k To get this info, look in /var/adm/messages, and MSD Utilities, Browse /proc for what the kernel thinks is the case.
The first time you read this, you are planning to do this, allocating addresses from the cards. Do remember to build your boot disks in advance, from another machine that can read the cdrom.
The second read, is when you are plugging in the cables and devices.
You've added them, one at a time, and now ..