10. Boot Disk Linux

You need to build a BOOT and ROOT pair of Linux diskettes to run these commands. I used the slackware disks.

10.1 dmesg - Kernel boot messages
10.2 fdisk -l
10.3 Software setable cards
10.4 Device Addresses: LILO and /etc/conf.modules
10.5 Keep a record of your configuration and switches:
10.6 And Now ?


dmesg - Kernel boot messages

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 
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 (becker@cesdis.gsfc.nasa.gov)
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

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


Software setable cards

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.


Device Addresses: LILO and /etc/conf.modules

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

(4) Other


Keep a record of your configuration and switches:

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). 


  IRQ 		 	# for me anyway
  IO_ADDR	0x320 		# uses maybe a dozen
  MEMORY	----		# NONE or DUNNO
  SERIAL		7029218
  LILO		sbpcd=0x320,LaserMate	


  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


  IRQ		12
  IO_ADDR		0x300
  Serial		E11 145857
  MAC		00 C0 DF 45 08 DA

SMC Elite-16

  IRQ		10
  IO		0x280
  Buffer		0xd000 +4000 = 0xd3fff
  MAC		00 00 C0 6C 5E 41


  IRQ		15


  IRQ		14
  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

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

  Geometry:	C=21072 H=186 S=57

SQ5110			Syquest 88 M cartridge
  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.


And Now ?

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 ..