Table of Contents ----------------- 0. Document Conventions 1. Default Configuration (GENERIC kernel) 2. Using UserConfig to change FreeBSD kernel settings 3. LINT - other possible configurations 4. Supported Hardware See TROUBLE.TXT for Q&A on known hardware problems. ========================================================================= 0. Document Conventions -- -------------------- We have `underlined' text which represents user input with `-' symbols throughout this document to differentiate it from the machine output. 1. Default (GENERIC) Configuration -- ------------------------------- The following table contains a list of all of the devices that are present in the GENERIC kernel. This is the essential part of the operating system that is placed in your root partition during the installation process. A compressed version of the GENERIC kernel is also used on the installation floppy diskette and DOS boot image. The table describes the various parameters used by the driver to communicate with the hardware in your system. There are four parameters in the table, though not all are used by each and every device: Port The starting I/O port used by the device, shown in hexadecimal. IOMem The lowest (or starting) memory address used by the device, also shown in hexadecimal. IRQ The interrupt the device uses to alert the driver to an event, given in decimal. DRQ The DMA (direct memory access) channel the device uses to move data to and from main memory, also given in decimal. If an entry in the table has `n/a' for a value then it means that the parameter in question does not apply to that device. A value of `dyn' means that the correct value should be determined automatically by the kernel when the system boots and that you don't need to worry about it. If an entry is marked with an *, it means that support is currently not available for it but should be back as soon as someone converts the driver to work within the new 3.0 framework. FreeBSD GENERIC kernel: Port IRQ DRQ IOMem Description ---- --- --- ----- --------------------------------- fdc0 3f0 6 2 n/a Floppy disk controller wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller adv0 n/a n/a n/a n/a AdvanSys Narrow SCSI controllers adw0 n/a n/a n/a n/a AdvanSys Wide SCSI controllers ncr0 n/a n/a n/a n/a NCR PCI SCSI controller bt0 330 dyn dyn dyn Buslogic SCSI controller uha0* 330 dyn 6 dyn Ultrastore 14f aha0 330 dyn 5 dyn Adaptec 154x/1535 SCSI controller ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller ahc0 dyn dyn dyn dyn Adaptec 274x/284x/294x SCSI controller aic0* 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI controller isp0 dyn dyn dyn dyn QLogic 10X0, 2100 SCSI/FC controllers dpt n/a n/a n/a n/a DPT RAID SCSI controllers. wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36 psm0 60 12 n/a n/a PS/2 Mouse mcd0 300 10 n/a n/a Mitsumi CD-ROM matcd0 230 n/a n/a n/a Matsushita/Panasonic CD-ROM scd0 230 n/a n/a n/a Sony CD-ROM sio0 3f8 4 n/a n/a Serial Port 0 (COM1) sio1 2f8 3 n/a n/a Serial Port 1 (COM2) lpt0 dyn 7 n/a n/a Printer Port 0 lpt1 dyn dyn n/a n/a Printer Port 1 ax0 dyn dyn n/a dyn ASIX AX88140A PCI based cards de0 n/a n/a n/a n/a DEC DC21x40 PCI based cards (including 21140 100bT cards) ed0 280 10 dyn d8000 WD & SMC 80xx; Novell NE1000 & NE2000; 3Com 3C503; HP PC Lan+ eg0 310 5 dyn dyn 3Com 3C505 ep0 300 10 dyn dyn 3Com 3C509 ex0 dyn dyn dyn n/a Intel EtherExpress Pro/10 cards fe0 300 dyn n/a n/a Allied-Telesis AT1700, RE2000 and Fujitsu FMV-180 series cards. fxp0 dyn dyn n/a dyn Intel EtherExpress Pro/100B ie0 300 10 dyn d0000 AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210 ix0 300 10 dyn d0000 Intel EtherExpress cards ex0 dyn dyn dyn dyn Intel EtherExpress Pro/10 cards le0 300 5 dyn d0000 Digital Equipment EtherWorks 2 and EtherWorks 3 lnc0 280 10 n/a dyn Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL, some PCnet-PCI cards) mx0 dyn dyn n/a dyn Macronix 98713/15/25 PCI based cards pn0 dyn dyn n/a dyn Lite-On PNIC PCI based cards rl0 dyn dyn n/a dyn RealTek 8129/8139 fast ethernet tl0 dyn dyn n/a dyn TI TNET100 'ThunderLAN' cards. wb0 dyn dyn n/a dyn Winbond W89C840F PCI based cards. vr0 dyn dyn n/a dyn VIA VT3043/VT86C100A PCI based cards. vx0 dyn dyn n/a dyn 3Com 3c59x ((Fast) Etherlink III) xl0 dyn dyn n/a dyn 3Com 3c900, 3c905 and 3c905B ((Fast) Etherlink XL) cs0 0x300 dyn n/a n/a Crystal Semiconductor CS89x0-based cards. ze0 300 5 n/a d8000 IBM/National Semiconductor PCMCIA Ethernet Controller zp0 300 10 n/a d8000 3Com 3c589 Etherlink III PCMCIA Ethernet Controller --- End of table --- If the hardware in your computer is not set to the same settings as those shown in the table and the item in conflict is not marked 'dyn', you will have to either reconfigure your hardware or use UserConfig to reconfigure the kernel to match the way your hardware is currently set (see the next section). If the settings do not match, the kernel may be unable to locate or reliably access the devices in your system. 2. Using UserConfig to change FreeBSD kernel settings -- -------------------------------------------------- The FreeBSD kernel on the install floppy contains drivers for every piece of hardware that could conceivably be used to install the rest of the system with. Unfortunately, PC hardware being what it is, some of these devices can be difficult to detect accurately, and for some, the process of detecting another can cause irreversible confusion. To make this process easier, FreeBSD provides UserConfig. With this UserConfig, the user can configure and disable device drivers before the kernel is loaded, avoiding potential conflicts, and eliminating the need to reconfigure hardware to suit the default driver settings. Once FreeBSD is installed, it will remember the changes made using UserConfig, so that they only need be made once. It is important to disable drivers that are not relevant to a system in order to minimize the possibility of interference, which can cause problems that are difficult to track down. UserConfig features a command line interface for users with serial consoles or a need to type commands, and a full screen 'visual' interface, which provides point-and-shoot configuration functionality. Here is a sample UserConfig screen shot in 'visual' mode: ---Active Drivers---------------------------10 Conflicts------Dev---IRQ--Port-- Storage : (Collapsed) Network : NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed0 5 0x280 NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters CONF ed1 5 0x300 Communications : (Collapsed) Input : (Collapsed) Multimedia : ---Inactive Drivers-------------------------------------------Dev-------------- Storage : Network : (Collapsed) Communications : Input : Multimedia : PCI : ---Parameters-for-device-ed0--------------------------------------------------- Port address : 0x280 Memory address : 0xd8000 IRQ number : 5 Memory size : 0x2000 Flags : 0x0000 ------------------------------------------------------------------------------- IO Port address (Hexadecimal, 0x1-0x2000) [TAB] Change fields [Q] Save device parameters The screen is divided into four sections : - Active Drivers. Listed here are the device drivers that are currently enabled, and their basic parameters. - Inactive Drivers. These drivers are present, but are disabled. - Parameter edit field. This area is used for editing driver parameters. - Help area. Keystroke help is displayed here. One of the Active and Inactive lists is always in use, and the current entry in the list will be shown with a highlight bar. If there are more entries in a list than can be shown, it will scroll. The bar can be moved up and down using the cursor keys, and moved between lists with the TAB key. Drivers in the Active list may be marked "CONF". This indicates that one or more of their parameters conflicts with another device, and indicates a potential for problems. The total number of conflicts is displayed at the top of the screen. As a general rule, conflicts should be avoided, either by disabling conflicting devices that are not present in the system, or by altering their configuration so that they match the installed hardware. In the list areas, drivers are grouped by their basic function. Groups can be 'Collapsed' to simplify the display (this is the default state for all groups). If a group is collapsed, it will be shown with '(Collapsed)' in the list, as above. To Expand a Collapsed group, position the highlight bar over the group heading and press Enter. To Collapse it again, repeat the process. When a device driver in the Active list is highlighted, its full parameters are displayed in the Parameter edit area. Note that not all drivers use all possible parameters, and some hardware supported by drivers may not use all the parameters the driver supports. To disable a driver, go to the Active list, Expand the group it is in, highlight the driver and press Del. The driver will move to its group in the Inactive list. (If the group is collapsed or off the screen, you may not see the driver in its new location.) To enable a driver, go to the Inactive list, Expand the group it is in, highlight the driver and press Enter. The highlight will move to the Active list, and the driver you have just enabled will be highlighted, ready to be configured. To configure a driver, go to the Active list, Expand the group it is in, highlight the driver and press Enter. The cursor will move to the Parameter edit area, and the device's parameters may be edited. While editing parameters, the TAB and cursor keys can be used to move between fields. Most numeric values (except IRQ) are entered in hexadecimal, as indicated by the '0x' at the beginning of the field. The allowable values for a given field are show in the Key Help area when the field is active. To finish configuring a driver, press 'Q'. Note that PCI and EISA devices can be probed reliably, therefore they are not shown in the table above nor can their settings be changed using UserConfig. PCI drivers may be seen in the "PCI Devices" section in the Active Devices list, if you wish to check for their presence. 3. LINT - other possible configurations -- ------------------------------------ The following drivers are not in the GENERIC kernel but remain available to those who do not mind compiling a custom kernel (see section 6 of FreeBSD.FAQ). The LINT configuration file (/sys/i386/conf/LINT) also contains prototype entries for just about every device supported by FreeBSD and is a good general reference. The device names and a short description of each are listed below. The port numbers, etc, are not meaningful here since you will need to compile a custom kernel to gain access to these devices anyway and can thus adjust the addresses to match the hardware in your computer in the process. The LINT file contains prototype entries for all of the below which you can easily cut-and-paste into your own file (or simply copy LINT and edit it to taste): ctx: Cortex-I frame grabber cx: Cronyx/Sigma multiport sync/async cy: Cyclades high-speed serial driver el: 3Com 3C501 fea: DEV DEFEA EISA FDDI adapter fpa: DEC DEFPA PCI FDDI adapter gp: National Instruments AT-GPIB and AT-GPIB/TNT board gsc: Genius GS-4500 hand scanner gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX gusxvi: Gravis Ultrasound 16-bit PCM hea: Efficient ENI-155p ATM PCI adapter hfa: FORE PCA-200E ATM PCI adapter joy: Joystick labpc: National Instrument's Lab-PC and Lab-PC+ meteor: Matrox Meteor frame-grabber card bktr: Brooktree Bt848 based frame-grabber cards. mpu: Roland MPU-401 stand-alone card mse: Microsoft, Logitech, ATI bus mouse ports mss: Microsoft Sound System nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum pas: ProAudioSpectrum PCM and MIDI pca: PCM audio ("/dev/audio") through your PC speaker pcm: PCM audio on most modern ISA audio codecs psm: PS/2 mouse port rc: RISCom/8 multiport card sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum sbmidi: SoundBlaster 16 MIDI interface sbxvi: SoundBlaster 16 si: Specialix SI/XIO/SX (old and enhanced ISA, PCI, EISA) serial spigot: Creative Labs Video Spigot video-acquisition board uart: Stand-alone 6850 UART for MIDI wds: Western Digital WD7000 IDE --- end of list --- 4. Supported Hardware -- ------------------ FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus based PC's, ranging from 386sx to Pentium class machines (though the 386sx is not recommended). Support for generic IDE or ESDI drive configurations, various SCSI controller, network and serial cards is also provided. What follows is a list of all peripherals currently known to work with FreeBSD. Other configurations may also work, we have simply not as yet received confirmation of this. 4.1. Disk Controllers ---- ---------------- WD1003 (any generic MFM/RLL) WD1007 (any generic IDE/ESDI) IDE ATA Adaptec 1535 ISA SCSI controllers Adaptec 154x series ISA SCSI controllers Adaptec 174x series EISA SCSI controller in standard and enhanced mode. Adaptec 274X/284X/2920C/294x/2950/3940/3950 (Narrow/Wide/Twin) series EISA/VLB/PCI SCSI controllers. Adaptec AIC7850, AIC7860, AIC7880, AIC789x, on-board SCSI controllers. AdvanSys SCSI controllers (all models). BusLogic MultiMaster controllers: [ Please note that BusLogic/Mylex "Flashpoint" adapters are NOT yet supported ] BusLogic MultiMaster "W" Series Host Adapters: BT-948, BT-958, BT-958D BusLogic MultiMaster "C" Series Host Adapters: BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C, BT-757C, BT-757CD, BT-545C, BT-540CF BusLogic MultiMaster "S" Series Host Adapters: BT-445S, BT-747S, BT-747D, BT-757S, BT-757D, BT-545S, BT-542D, BT-742A, BT-542B BusLogic MultiMaster "A" Series Host Adapters: BT-742A, BT-542B AMI FastDisk controllers that are true BusLogic MultiMaster clones are also supported. DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and SmartRAID IV SCSI/RAID controllers are supported. The DPT SmartRAID/CACHE V is not yet supported. SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820, 53C825a, 53C860, 53C875, 53C875j, 53C885, 53C895 and 53C896 PCI SCSI controllers: ASUS SC-200 Data Technology DTC3130 (all variants) NCR cards (all) Symbios cards (all) Tekram DC390W, 390U and 390F Tyan S1365 QLogic 1020, 1040, 1040B and 2100 SCSI and Fibre Channel Adapters DTC 3290 EISA SCSI controller in 1542 emulation mode. With all supported SCSI controllers, full support is provided for SCSI-I & SCSI-II peripherals, including hard disks, optical disks, tape drives (including DAT and 8mm Exabyte), medium changers, processor target devices and CDROM drives. WORM devices that support CDROM commands are supported for read-only access by the CDROM driver. WORM/CD-R/CD-RW writing support is provided by cdrecord, which is in the ports tree. The following CD-ROM type systems are supported at this time: (cd) SCSI interface (also includes ProAudio Spectrum and SoundBlaster SCSI) (matcd) Matsushita/Panasonic (Creative SoundBlaster) proprietary interface (562/563 models) (scd) Sony proprietary interface (all models) (acd) ATAPI IDE interface The following drivers were supported under the old SCSI subsystem, but are NOT YET supported under the new CAM SCSI subsystem: Tekram DC390 and DC390T controllers (maybe other cards based on the AMD 53c974 as well). NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller. UltraStor 14F, 24F and 34F SCSI controllers. Seagate ST01/02 SCSI controllers. Future Domain 8xx/950 series SCSI controllers. WD7000 SCSI controller. Adaptec 1510 series ISA SCSI controllers (not for bootable devices) Adaptec 152x series ISA SCSI controllers Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x and SoundBlaster SCSI cards. [ Note: There is work-in-progress to port the AIC-6260/6360 and UltraStor drivers to the new CAM SCSI framework, but no estimates on when or if they will be completed. ] Unmaintained drivers, they might or might not work for your hardware: Floppy tape interface (Colorado/Mountain/Insight) (mcd) Mitsumi proprietary CD-ROM interface (all models) 4.2. Network cards ---- ------------- Allied-Telesis AT1700 and RE2000 cards AMD PCnet/PCI (79c970 & 53c974 or 79c974) SMC Elite 16 WD8013 ethernet interface, and most other WD8003E, WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT based clones. SMC Elite Ultra is also supported. RealTek 8129/8139 fast ethernet NICs including the following: Allied Telesyn AT2550 Allied Telesyn AT2500TX Genius GF100TXR (RTL8139) NDC Communications NE100TX-E OvisLink LEF-8129TX OvisLink LEF-8139TX Netronix Inc. EA-1210 NetEther 10/100 KTX-9130TX 10/100 Fast Ethernet Accton "Cheetah" EN1027D (MPX 5030/5038; RealTek 8139 clone?) SMC EZ Card 10/100 PCI 1211-TX Lite-On 82c168/82c169 PNIC fast ethernet NICs including the following: LinkSys EtherFast LNE100TX NetGear FA310-TX Rev. D1 Matrox FastNIC 10/100 Macronix 98713, 98713A, 98715, 98715A and 98725 fast ethernet NICs NDC Communications SFA100A (98713A) CNet Pro120A (98713 or 98713A) CNet Pro120B (98715) SVEC PN102TX (98713) Winbond W89C840F fast ethernet NICs including the following: Trendware TE100-PCIE VIA Technologies VT3043 "Rhine I" and VT86C100A "Rhine II" fast ethernet NICs including the following: Hawking Technologies PN102TX D-Link DFE530TX Texas Instruments ThunderLAN PCI NICs, including the following: Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 Dual-Port Compaq Netelligent 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, 10/100 TX UTP Compaq NetFlex 3P, 3P Integrated, 3P w/ BNC Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP Racore 8165 10/100baseTX Racore 8148 10baseT/100baseTX/100baseFX multi-personality ASIX Electronics AX88140A PCI NICs, including the following: Alfa Inc. GFC2204 CNet Pro110B DEC EtherWORKS III NICs (DE203, DE204, and DE205) DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) DEC DC21040, DC21041, or DC21140 based NICs (SMC Etherpower 8432T, DE245, etc) DEC FDDI (DEFPA/DEFEA) NICs Efficient ENI-155p ATM PCI FORE PCA-200E ATM PCI Fujitsu MB86960A/MB86965A HP PC Lan+ cards (model numbers: 27247B and 27252A). Intel EtherExpress (not recommended due to driver instability) Intel EtherExpress Pro/10 Intel EtherExpress Pro/100B PCI Fast Ethernet Isolan AT 4141-0 (16 bit) Isolink 4110 (8 bit) Novell NE1000, NE2000, and NE2100 ethernet interface. 3Com 3C501 cards 3Com 3C503 Etherlink II 3Com 3c505 Etherlink/+ 3Com 3C507 Etherlink 16/TP 3Com 3C509, 3C579, 3C589 (PCMCIA), 3C590/592/595/900/905/905B PCI and EISA (Fast) Etherlink III / (Fast) Etherlink XL 3Com 3c980 Fast Etherlink XL server adapter Toshiba ethernet cards PCMCIA ethernet cards from IBM and National Semiconductor are also supported. Note that NO token ring cards are supported at this time as we're still waiting for someone to donate a driver for one of them. Any takers? 4.3. Misc ---- ---- AST 4 port serial card using shared IRQ. ARNET 8 port serial card using shared IRQ. ARNET (now Digiboard) Sync 570/i high-speed serial. Boca BB1004 4-Port serial card (Modems NOT supported) Boca IOAT66 6-Port serial card (Modems supported) Boca BB1008 8-Port serial card (Modems NOT supported) Boca BB2016 16-Port serial card (Modems supported) Cyclades Cyclom-y Serial Board. STB 4 port card using shared IRQ. SDL Communications Riscom/8 Serial Board. SDL Communications RISCom/N2 and N2pci high-speed sync serial boards. Specialix SI/XIO/SX multiport serial cards, with both the older SIHOST2.x and the new "enhanced" (transputer based, aka JET) host cards. ISA, EISA and PCI are supported. Stallion multiport serial boards: EasyIO, EasyConnection 8/32 & 8/64, ONboard 4/16 and Brumby. Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound and Roland MPU-401 sound cards. Connectix QuickCam Matrox Meteor Video frame grabber Creative Labs Video Spigot frame grabber Cortex1 frame grabber Various Frame grabbers based on Brooktree Bt848 chip. HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R drives. Bus mice PS/2 mice Standard PC Joystick X-10 power controllers GPIB and Transputer drivers. Genius and Mustek hand scanners. Floppy tape drives (some rather old models only, driver rather stale) FreeBSD currently does NOT support IBM's microchannel (MCA) bus.