Help Reading The Hardware Release Notes

Hello, I'm new to FreeBSD. I'm interested in building a custom desktop computer to run a FreeBSD file server from my home. Originally, I was going to go with Ubuntu, but by chance I stumbled across FreeBSD and I became interested.

When I was considering Ubuntu, I was going to build my server based on Canonical's certified hardware to ensure maximum compatibility. One of the things I heard when looking into FreeBSD is that BSD concentrates on supporting a smaller set of hardware. As a developer, I like this because in my mind, less hardware to test means that I can concentrate on making sure things work on the machines I do test.

That being said, I want to select my hardware based on the hardware notes for FreeBSD 9.1. I'm not a professional. I'm just a college student, so excuse the inexperience. Could someone try to explain how to read the hardware notes? I understand the processor architecture, but if I wanted to buy a motherboard or graphics card, how could I find out if it's compatible with FreeBSD 9.1? Is there such a thing as FreeBSD certified hardware?

Thanks!
 
I found this interesting bit in the gmane.org thread.

The Hardware notes do not contain definitive lists of all of the
hardware that is supported…

If a particular device is listed in a man page, that indicates that
device has been tested and is known to work.

If the source code makes reference to a specific device, then generally
that device will work too: part working or in-progress code is not
generally committed to the FreeBSD sources.

If a devices' chipset is listed in a man page, but there's no reference
to a specific device, then the device stands a good chance of working.
If such a device doesn't work, then frequently it can be fixed quite
easily by specifying appropriate device quirks…

Ultimately the best way to tell if any particular device is supported is
to try it…

Hardware from big-name suppliers (Dell, HP and the like for complete
systems; Intel, Broadcomm for NICs) is a priority for support although
it may take a few months for the code to become generally available for
the newest bits of kit. In fact, so long as the components you want to
use have been on the market for around 6 months (very approximately) and
they are aimed at use in server hardware rather than personal or casual
use, the chances are good that they will just work in FreeBSD.

So, basically, supported hardware is found by:
  1. Searching the man pages
  2. Asking around
  3. Sticking with mainstream, server-oriented hardware
  4. Random luck? :)
 
I would say that the points 1 and 3 are right. Note that BSD systems come with many utilities to determine what hardware is installed on a system. Know how to determine which hardware was probed at boot time as well as recognized utilities which can be used to troubleshoot and manipulate devices on BSD systems. For dumps information about PCI devices, pciconf(8)() utility is used to detect that the hardware is succesfully loaded and recognized by FreeBSD.

pciconf -l will give you a list of PCI devices present in your system. Once you have installed a hardware peripheral, it should always be listed in the output of the pciconf command.

Devin Teske's tip is quite interesting in the case your device is listed as unknown in dmesg's output.

Or, in the opposite case:
Code:
[CMD]% pciconf -lv | awk '/^vgapci1/{print $1, $4}'[/CMD]
vgapci1@pci0:1:0:1: chip=0x41731002

Using the pcidatabase.com resource:

 
You could use a HP N36L or N40L for your home file server, it's supported pretty good by FreeBSD.
 
npgm said:
That being said, I want to select my hardware based on the hardware notes for FreeBSD 9.1. I'm not a professional. I'm just a college student, so excuse the inexperience. Could someone try to explain how to read the hardware notes? I understand the processor architecture, but if I wanted to buy a motherboard or graphics card, how could I find out if it's compatible with FreeBSD 9.1? Is there such a thing as FreeBSD certified hardware?
As others have answered, the hardware part of the release notes covers the high points. If you're on one of the Tier 1 architectures like i386 or amd64, chances are that you won't have any processor or chipset issues, though sometimes these are supported in an older compatibility mode until drivers catch up and/or the hardware manufacturer updates the BIOS.

Plug-in controller cards are a bit more of a gamble. Some manufacturers provide excellent support for FreeBSD, either with drivers on their sites, contributed to the FreeBSD project, or both. Examples would be companies like Intel and 3Ware/LSI.

Less-sophisticated cards usually take commodity chips and put them on an expansion card. In the "old days", this would be things like multiple serial ports. These days it is things like USB controllers, "dumb" SATA interfaces, and so on. The hardware list can't cover every possible add-in card, so it often lists the chipset and says "supports cards based on the FooBar chipset". Of course, if you don't already have the card, you can't find out if that SuperStuff controller you're interested in actually uses the FooBar chipset or the NastyCrab chipset. Getting away from hypotheticals for a moment, this actually happened quite some years ago when Netgear was shipping a nice 10/100 Ethernet card based on the DEC 21140A controller chip, but they changed to a different brand of chip that wasn't as well-regarded and didn't change the model number of their card or make it possible to tell from the packaging which card was in the box.

Probably the biggest issue will be with video cards. This is an area I don't pay a lot of attention to as my systems are all servers - video is there so the staff can see the boot screens, period. There can be big variations in the level of support and available functionality between even neighbors in a product line.

FreeBSD doesn't have something equivalent to WHQL, where the operating system manyfacturer "blesses" a particular driver version and says that it meets all the requirements for inclusion. Of course, what we do have is source code - lots of it - so it is possible to make changes yourself depending on your available resources (time, skillset, etc.).
 
Back
Top