# Help Reading The Hardware Release Notes



## npgm (May 26, 2013)

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!


----------



## cpm@ (May 27, 2013)

IMO, this thread will be very useful for you


----------



## npgm (May 27, 2013)

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



So, basically, supported hardware is found by:

Searching the man pages
Asking around
Sticking with mainstream, server-oriented hardware
Random luck?


----------



## cpm@ (May 27, 2013)

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:

```
[CMD]% pciconf -lv | awk '/^vgapci1/{print $1, $4}'[/CMD]
vgapci1@pci0:1:0:1: chip=0x41731002
```

Using the pcidatabase.com resource:


----------



## lme@ (May 28, 2013)

You could use a HP N36L or N40L for your home file server, it's supported pretty good by FreeBSD.


----------



## Terry_Kennedy (May 28, 2013)

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


----------

