Written by Tom Rhodes.
Before venturing into kernel configuration, it would be wise to get an inventory of
the machine's hardware. In cases where FreeBSD is not the primary operating system, the
inventory list may easily be created by viewing the current operating system
configuration. For example, Microsoft®'s Device Manager normally contains important information about
installed devices. The Device Manager is located in the
control panel.
Note: Some versions of Microsoft Windows® have a System icon which
will display a screen where Device Manager may be
accessed.
If another operating system does not exist on the machine, the administrator must find
this information out manually. One method is using the dmesg(8) utility and
the man(1) commands. Most
device drivers on FreeBSD have a manual page, listing supported hardware, and during the
boot probe, found hardware will be listed. For example, the following lines indicate that
the psm driver found a mouse:
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
This driver will need to be included in the custom kernel configuration file or loaded
using loader.conf(5).
On occasion, the data from dmesg will only show system
messages instead of the boot probe output. In these situations, the output may be
obtained by viewing the /var/run/dmesg.boot file.
Another method of finding hardware is by using the pciconf(8) utility
which provides more verbose output. For example:
ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernet
This bit of output, obtained using pciconf -lv
shows that the ath driver
located a wireless Ethernet device. Using man ath will return the ath(4) manual
page.
The -k
flag, when passed to man(1) can also be
used to provide useful information. From the above, one can issue:
# man -k Atheros
To get a list of manual pages which contain that particular word:
ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)
Armed with a hardware inventory list, the process of building a custom kernel should
appear less daunting.