9. Using the Boot Floppy and Kernel Configuration
Introduction to FreeBSD

At this point you should have chosen a -RELEASE to install and have decided what medium you are going to use to install it. It can be installed over the network using FTP or NFS, from an existing FreeBSD or MSDOS partition, from a CDROM, or with floppy disks. All installation media types require a boot floppy, except bootable CDROM installs. This part covers how to use the Boot Floppy, regardless of which media you will be installing from.

If you will be installing from floppy disks, MSDOS, existing UNIX partition, NFS, or custom FTP site, you will need prepare your installation media. Read the section on Preparing Distribution Sets, to find out what to download and where to put it.

Before you boot with the Boot Floppy, you should check your CMOS Settings. You need to have the boot sequence set to boot from 'A' drive then 'C' drive. If this is going to be a Server, you probably don't want APM (Power management) enabled. Before you exit CMOS, double check to see that your IDE drives are all properly recognized and installed. SCSI drives should be checked using a SCSI utility.


If you don't know what each piece of hardware in your computer is, gather all the documentation. You will definitely need it. The best information comes from the packing list that came with your computer, if you still have it. It should tell you what kinds of devices you have installed. If you already have an operating system installed on the computer, you can use various methods of finding out what is in your system. If you have DOS, try using msd. If you have Win95, try right-clicking on My Computer, selecting Properties, selecting device manager and printing out the information there.

Now put the Boot disk in the A: drive, or the boot drive, and restart the computer.

After a few moments, you should see a screen like:

>> FreeBSD BOOT @ 0x10000: 639/31744 K of Memory

Usage: bios_drive:interface(unit,partition)kernel_name options
 bios_drive 0, 1, ...
 interface fd, wd or sd
 unit 0, 1, ...
 partition a, c, ...
 kernel_name name of kernel, or ? for list of files in root directory
 options -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles)
 -d (debug early) -g (gdb) -h (serial console) -P (probe kbd)
 -r (default root) -s (single user) -v (verbose)
 1:sd(0,a)mykernel boot `mykernel' on the first SCSI drive when one IDE
 drive is present
 1:wd(2,a) boot from the second (secondary master) IDE drive
 1:sd(0,a)? list the files in the root directory on the specified
 drive/unit/partition, and set the default bios_drive,
 interface, unit and partition
 -cv boot with the defaults, then run UserConfig to modify
 hardware parameters (c), and print verbose messages (v)

Use ? for file list or press Enter for defaults

This is the Boot Prompt. FreeBSD is giving you a chance to enter parameters different from the normal booting procedures. This is most often used to enter into the single user mode, or to boot from a different ``kernel.'' See the section on Compiling Custom Kernels for more detail on kernels.

If you don't press anything, it will assume after a few seconds that you don't want to enter anything extra and go on booting, using the default values. We want to use the default values at this point.

Next comes the kernel configuration menu:

Skip kernel configuration and continue with installation.
Start kernel configuration in Visual Mode
Start kernel configuration in CLI Mode (experts only)

These options give us a chance to modify our kernel and make it scan for devices in places other than the default settings. If we skip the kernel configuration, we accept all the default values, move on to the next section of the install, and will not have another chance to change them until we reboot. We can start the kernel configuration in either of two modes, CLI (Command Line Interface), or Visual Mode (Menu Driven Interface). The Visual Mode is by far the easiest to use and understand.

Of these three options, we want to go into Start kernel configuration in Visual Mode. But, before we do that, we need to have a basic understanding of IRQ and Ports and devices.

At this point you don't need to know what they are so much, as you need to know that each device (hardware component) has one. You need to know what each device's IRQ and Port number is. This is why you need the documentation on each piece of hardware in your computer. Some of the devices will have IRQ's and Ports that you can set. These should be set before you begin your installation of FreeBSD. This may require jumper settings on the actual hardware itself, or use of a vendor supplied configuration utility to set it. The PCI devices won't need to be set up by you in the kernel configuration; This utility only affects ISA devices.

Once you know what each device in your computer is and what it's IRQ and Port # is, if it has one, then proceed into the visual kernel configuration.

--Active-Drivers------------------------------21 Conflicts---------Dev-----IRQ----Port
Storage:	 	(Collapsed)
Network:	 	(Collapsed)
Communication:		(Collapsed)
Input:			(Collapsed)
PCI:			(Collapsed)
--Inactive Drivers---------------------------------------------------Dev--------------
Communication:		(Collapsed)
Input:			(Collapsed)

This screen lets you modify or remove ISA devices from the boot scan. FreeBSD probes each device that it knows about when it boots up. All the devices in the ``Active Devices'' section will be probed, anything that is deleted from the ``Active Devices'' section will be moved into the ``Inactive Devices'' section and not probed. If you delete a device you need, you can go into the ``Inactive Devices'' section and re-activate it.

At the top of the screen you see ``21 Conflicts'' in Bold Print. This can be somewhat misleading, because there are not actually 21 physical conflicts. These are only potential conflicts. FreeBSD is telling us that if all the devices that it has been set to probe are present that there ``would'' be 21 Conflicts. FreeBSD is set up to probe all the devices it knows about and look for them at the most common IRQs and Ports. Since several pieces of hardware are commonly found at the same IRQ, it reports a potential conflict. For example, FreeBSD is probing for several different network cards at the same address, and since you only have one network card, the IRQ conflict is really non-existent.

Our job now is to look through the different sections of device drivers and de-activate or delete the ones that aren't in our system. For each device that we do find that belongs in our system, we need to make sure that the IRQ and Port values are correct.

It is not absolutely necessary to delete all of the unused devices, because when FreeBSD probes for them and does not find them, it ignores them. However, it would be wise to delete any extra devices that do not belong to the system, because they may have long time out values. In other words, FreeBSD waits for a long time to make sure that they really don't exist. Deleting them will speed up the boot process.

Most likely, all you will have to do is change the settings on a few devices and delete one or two others to speed things up. For example, In my system I have 2 SCSI drives, an NE2000 network card on IRQ 10, and a PS/2 mouse. I have to delete the IDE drivers, change the NE2000 driver (ed1) to IRQ 10, and enable the PS/2 mouse from the disabled list.

It still shows 18 conflicts, however, none of the equipment in conflict exists in my machine, so I can ignore it and continue on. I have resolved the conflicts for the equipment actually in my machine. If, after resolving conflicts for the equipment in your machine, you still have problems, you might try removing ``all'' the extra device drivers from the kernel configuration menu and checking for a conflict you might have overlooked.

If you have correctly erased ``all'' the extra devices and set the remaining devices to the correct IRQ and Port #, it should show no potential conflicts, with the exception of the PS/2 mouse. If it shows any remaining, it could be an actual conflict. Any actual conflict will result in both pieces of hardware not working properly. If you do end up with a potential conflict, after deleting ALL of the extra devices, you must move one of the offending devices to a different IRQ or Port (depending on where the conflict is) to avoid an actual conflict.

With this in mind, lets start with storage: With the storage section highlighted, press ENTER to expand the tree. Now you should have lots of SCSI controllers and disk controllers listed. These will cover everything from CD-ROMs to Tape Drives to Floppy disks. They are in alphabetical order. These are only ISA devices, PCI devices are taken care of automatically.

The first four are:

--Active-Drivers----------------------------21 Conflicts---------Dev-----IRQ----Port
Adaptec 154x SCSI Controller		 	CONF		aha0		0x330
Adaptec 152x SCSI Controller		 	 	aic0	11	0x340
Buslogic SCSI Controller		CONF		bt0		0x330
Floppy Disk Controller						fdc0 6 	0x3f0

The above Buslogic and Adaptec controllers are in conflict trying to use the same Port. Deleting one of them, or changing one of them to an unused Port will eliminate a conflict. Just changing the Port that FreeBSD looks for will not solve your problem unless that is actually the Port that the hardware is set to. If the SCSI controller is set to Port 0x330 and so is the network card, one of them will have to change. Merely pointing FreeBSD to look for the SCSI controller in a different place, will appear to solve the problem, but will only suceed in misleading FreeBSD and hiding the fact that two devices are in conflict. The conflicting IRQ or DMA needs to be changed on the physical device, using a jumper or configuration program supplied by the vendor. Then FreeBSD needs to be pointed to the right place to look for it in this configuration menu.

The ``Dev'' listing is the file name that you will use to reference the hardware device in FreeBSD. It is the name of the actual device driver. All the devices are kept in a directory called /dev. So to access the floppy disk controller you would reference /dev/fdc0. Normally, however, you don't access device controllers, just the devices they control. See the section on Accessing the Floppy.

If you don't have SCSI in the system delete all the SCSI controllers, the same goes for IDE devices. Leave only the devices that actually exist in your system. If you delete an item and decide you need it, just press TAB and get it back from the Inactive Drivers section.

To change the IRQ or Port value of a device, press ENTER while the device is highlighted. This will open a box at the bottom of the screen allowing you to change the Port address, IRQ Number, Flags, and Memory Address. The Port address is a hexadecimal number. If it is shown in your documentation as a Port value of 330, it is probably 0x330. Use the TAB button to move between fields and then press q to quit and save the parameters. You can always go back and change them before you quit the kernel configuration editor.

When you are finally done with all of the kernel configurations, it may still show potential conflicts, but if you have configured everything correctly, there should be no actual conflicts.

PS/2 Mouse Users:

If you use a PS\2 Mouse, it will conflict with the Console, showing two conflicts. This is normal.

Be sure you have everything correct. Once you move past this screen, you won't have another chance to change the devices, unless you reboot. Then press q to save these parameters and continue with the Installation.

Return to Table of Contents

Visit the Gifcom