Some features of the standard workstation that are relevant to this installation: Athlon 64 CPU; K8V-X motherboard.
If you have assembled the 2005.05.14 standard workstation instead, skip the disable-SATA instructions.
The FreeBSD 5.3 i386 CD, which you can obtain as part of the FreeBSD 5.3 boxed set, is an adequate substitute, but will run the Athlon 64 as a 32-bit system rather than a (faster) 64-bit system.
After four seconds, a K8V-X screen appears. Quickly press Delete.
``BIOS SETUP UTILITY.'' Press Down Down Enter Up Up Up Up Enter to disable Legacy Diskette A. Also set the date and time at this point, using Greenwich Mean Time rather than local time. (The local time zone is set later; the BIOS time should always be GMT.) Press Right Enter Down Enter.
``Memory Configuration.'' Press Down Enter.
``ECC Configuration.'' Press Enter Down Enter to turn on Master ECC, then Down Enter Down Enter to turn on DRAM ECC, then Down Enter Down Down Down Down Down Enter to set L2 Cache BG Scrub to 640ns, then Down Enter Down Down Down Down Down Enter to set Data Cache BG Scrub to 640ns, then Down Down Enter Down Enter to turn on DRAM SCRUB REDIRECT, then Down Enter Down Enter to turn on ECC Chip Kill, then Esc Esc Esc.
``BIOS SETUP UTILITY.'' Press Down Down Enter.
``OnBoard AC'97 Audio'' etc. Press Down Enter Down Enter to disable the SATA BOOTROM, then Esc.
``BIOS SETUP UTILITY.'' Press Right Right Enter.
``Boot Device Priority.'' Press Enter Down Enter to set the DVD-ROM as the first boot device, then Esc.
``Boot Settings.'' Press Down Enter.
``Boot Settings Configuration.'' Press Down Enter Up Enter to disable Full Screen Logo.
Insert the FreeBSD CD (5.3-RELEASE-amd64-disc1.iso). Press F10 Enter to save the BIOS setup and boot the machine.
``sysinstall Main Menu.'' Press Down Enter to ``Begin a standard installation.''
``In the next menu, you will need to set up a DOS-style'' blah blah blah. Press Enter.
``WARNING: A geometry of 387621/16/63 for ad1 is incorrect. Using a more likely geometry. If'' blah blah blah. Press Enter.
``FDISK Partition Editor.'' Press C Enter Enter to create an fdisk partition for FreeBSD. Partition data: offset 63, size 390716802, end 390716864, name ad1s1, ptype 8, desc freebsd, subtype 165. Press Q to continue.
``Install Boot Manager for drive ad1?'' Press Enter to install the FreeBSD Boot Manager.
``Now you need to create BSD partitions.'' Press Enter.
``FreeBSD Disklabel Editor.'' Press c Ctrl-u 2 g Enter Enter / Enter to create a 2-gigabyte root partition; c Ctrl-u 2 g Enter Down Enter to create a 2-gigabyte swap partition; c Enter Enter / u s r Enter to create a 182-gigabyte /usr partition. Press Q to continue.
``Choose Distributions.'' Press Down Enter to choose all distributions. (This should be the default for people with huge disks.)
``Would you like to install the FreeBSD ports collection?'' Press Enter. (Again, this should be the default.)
``Choose Distributions.'' Press Up Enter to continue.
``Choose Installation Media.'' Press Enter to install from CD.
``Last Chance! Are you SURE you want continue [sic] the installation?'' Press Enter. The installer spends 360 seconds copying files from the DVD to the hard disk.
``Congratulations! You now have FreeBSD installed on your system.'' Press Enter.
``Would you like to configure any Ethernet or SLIP/PPP network devices?'' Press Right Enter to say no.
``Do you want this machine to function as a network gateway?'' Press Enter to say no.
``Do you want to configure inetd and the network services that it provides?'' Press Enter to say no.
``Would you like to enable SSH login?'' Press Enter to say no.
``Do you want to have anonymous FTP access to this machine?'' Press Enter to say no.
``Do you want to configure this machine as an NFS server?'' Press Enter to say no.
``Do you want to configure this machine as an NFS client?'' Press Enter to say no.
``Would you like to customize your system console settings?'' Press Enter to say no.
``Would you like to set this machine's time zone now?'' Press Enter to say yes.
``Is this machine's CMOS clock set to UTC?'' Press Left Enter to say yes.
``Time Zone Selector.'' Press Down Enter to select America, PageDown PageDown Down Down Down Down Down Down Down Down Down Down Down Enter to select United States, Down Down Down Down Down Down Down Down Enter to select Central Time. (Or whatever is appropriate for your location.)
``Does the abbreviation CST look reasonable?'' Press Enter to say yes.
``Does this system have a PS/2, serial, or bus mouse?'' Press Left Enter to say yes.
``Please configure your mouse.'' Press Down Enter to ``Test and run the mouse daemon.'' (I did something more complicated, since I know that my mouse moves slowly: I pressed Down Down Down Down Enter to ``Set additional flags''; then - a Space 2 Enter to set flags ``-a 2''; then Up Up Up Enter to ``Test and run the mouse daemon.'')
``Is the mouse cursor moving?'' Try moving the mouse around. Press Enter to say yes.
``Please configure your mouse.'' Press Up Enter to continue.
``The FreeBSD package collection'' blah blah blah. Press Right Enter to say no.
``Would you like to add any initial user accounts to the system?'' Press Enter to say yes.
``User and group management.'' I pressed Down Down Enter d j b Tab Tab Tab Enter to add a new ``djb'' group; Up Enter d j b Tab Tab d j b Tab MyPassword Tab Tab Tab Tab Backspace Backspace c s h Tab Enter to add a new ``djb'' user in the ``djb'' group; and Up Enter to continue. You'll want to change ``djb'' to your favorite account name. (There's a risk here: you may bump into an account name already used by FreeBSD programs. You can't use the name ``pop,'' for example. I have a registry of account names used by UNIX programs. Global account names used by programs should start with a capital G, so that you can safely use any combination of lowercase letters.)
``Now you must set the system manager's password.'' Press Enter. Type the root password, Enter, the root password, Enter.
``Visit the general configuration menu for a chance to set any last options?'' Press Enter to say no.
``sysinstall Main Menu.'' Press Right Enter to exit.
``Are you sure you wish to exit?'' Press Left Enter to say yes. Quickly remove the CD. (You can't remove the CD until about a second after you press Left Enter. You have to remove the CD promptly so that the computer boots off the hard drive rather than the CD.)
Wait a minute or so for FreeBSD to start.
root
RootPassword
to log in as root.
(Once you've finished installing software,
you should log in as a non-root user,
so that any mistakes you make won't hurt the operating-system installation;
but for the moment you have to be root.)
Type
vi /etc/rc.conf
to edit /etc/rc.conf.
Decide on a hostname, IP address, and Internet router for your computer;
my computer is called feedme,
has IP address 1.2.3.50,
and has Internet router 1.2.3.254.
Inside vi, press O, type
hostname="feedme"
ifconfig_sk0="inet 1.2.3.50 netmask 255.255.255.0 mtu 1400"
defaultrouter="1.2.3.254"
syslogd_flags="-ss"
sendmail_enable="NONE"
to add those lines to the top of /etc/rc.conf,
and press Esc Z Z to finish editing.
(The mtu 1400 isn't necessary in most installations,
but it works around a bug in some DSL-firewall combinations.
It's important to include a hostname line for X;
otherwise xdm doesn't set up credentials for the local computer,
so any attempt to log in through xdm fails with
``Xlib: Client is not authorized to connect to Server.'')
Decide on a DNS server for your computer; my computer has nameserver 1.2.3.75. Type
echo 'nameserver 1.2.3.75' >> /etc/resolv.conf
to create a new file
/etc/resolv.conf containing the line
nameserver 1.2.3.75.
Type
echo 'daily_output="/var/log/daily.log"' >> /etc/periodic.conf
echo 'daily_status_security_output="/var/log/security.log"' >> /etc/periodic.conf
echo 'weekly_output="/var/log/weekly.log"' >> /etc/periodic.conf
echo 'monthly_output="/var/log/monthly.log"' >> /etc/periodic.conf
to create a new /etc/periodic.conf.
(FreeBSD periodically produces summaries of the system status.
This file says that the summaries should be placed into
various files in /var/log;
this overrides some silly default behavior.)
Type
echo 'link acd0 cdrom' >> /etc/devfs.conf
echo 'link acd0 dvd' >> /etc/devfs.conf
echo 'link acd0 acd0c' >> /etc/devfs.conf
to specify /dev/cdrom, /dev/dvd,
and /dev/acd0c as alternate names for the DVD drive.
Type
echo 'agp_load="YES"' >> /boot/loader.conf
to create a new /boot/loader.conf
containing the line agp_load="YES".
(This accelerates video.)
Type
vi /usr/src/sys/pci/if_sk.c
:1590
:s/2/1
and press Z Z
to change ramsize = 0x20000 to ramsize = 0x10000.
(This fixes a kernel bug
dealing with the 88E8001 network card in the K8V-X.
It won't be necessary in subsequent versions of FreeBSD.)
Type
cd /usr/src/sys/amd64/conf
cp GENERIC feedme
vi feedme
/ident
:s/GENERIC/feedme
odevice sound
device "snd_via8233"
options LINPROCFS
options COMPAT_43
options COMPAT_LINUX32
and press Esc Z Z.
(This creates
a /usr/src/sys/amd64/conf/feedme kernel configuration file
specifying sound support
and various compatibility options.)
Type
cd /usr/src
time make kernel KERNCONF=feedme
to compile and install a new kernel.
This takes about 500 seconds.
Type
reboot
to restart the computer.
This takes about 90 seconds.
Log in again as root.
telnet www.cnn.com 80
to make sure that the network is up.
The normal response is
Trying 64.236.24.4...
Connected to cnn.com.
Escape character is '^]'.
Connection closed by foreign host.
with a fifteen-second pause before the last line.
Type
cd /usr/ports/sysutils/consolehm; make install
The computer will spend a few minutes
downloading, compiling, and installing the consolehm program.
Type
chm
and, after watching the output for a little while, press Ctrl-c.
The output should look like
Motherboard Temperature: 31 C
CPU_0 Temperature: 34 C
CPU_1 Temperature: 0 C
VCore: 1.51562 V
Vit: 0 V
Vio: 3.21875 V
+5V: 4.82734 V
+12V: 11.4375 V
-12V: -11.6875 V
-5V: -6.65391 V
Fan 1: 2083 rpm
Fan 2: 3214 rpm
Fan 3: Not Available
If chm says ``Command not found,''
type
rehash
chm
instead;
the same advice applies to any other recently installed program.
cd /usr/ports/x11/kde3; make install
to download, compile, and install kde.
You will be faced with occasional annoying prompts
from the dark ages of software installation,
asking you whether you would like to set various incomprehensible options;
for each prompt, type Right Left Enter to continue.
(I actually did a much faster
cd /usr/ports/x11-wm/fvwm2-i18n; make install
because fvwm2 is my preferred window manager.
But if you're a new user then you should start with KDE.
I should modify these instructions
to take advantage of the prebuilt KDE packages on CD.)
Type
Xorg -configure
to create a sample X configuration, /root/xorg.conf.new.
At this point I simplified the X configuration to support only 1024x768, since my computer is attached to a 1024x768 LCD: I typed
vi xorg.conf.new
/Section..Screen
to edit /root/xorg.conf.new and
skip to the Screen section;
I pressed d G to delete the Screen section;
I pressed O and typed
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection
to add those lines to the file;
I pressed Esc Z Z to finish editing.
Type
X -xf86config /root/xorg.conf.new
and look for a gray background with a small black X
that moves with the mouse.
To change resolution, press Ctrl-Alt-Plus or Ctrl-Alt-Minus.
Press Ctrl-Alt-Backspace to quit X.
Type
cp xorg.conf.new /etc/X11/xorg.conf
to install the X configuration.
Type
vi /usr/X11R6/lib/X11/xdm/Xservers
:$
:s/$/ -nolisten tcp
:w!
to add -nolisten tcp
to the end of the :0 line in /usr/X11R6/lib/X11/xdm/Xservers.
Press Z Z to finish editing.
Type
echo 'chown $USER /dev/acd0' >> /usr/X11R6/lib/X11/xdm/GiveConsole
echo 'chown $USER /dev/uscanner0' >> /usr/X11R6/lib/X11/xdm/GiveConsole
echo 'chown $USER /dev/ulpt0' >> /usr/X11R6/lib/X11/xdm/GiveConsole
echo 'chown root /dev/acd0' >> /usr/X11R6/lib/X11/xdm/TakeConsole
echo 'chown root /dev/uscanner0' >> /usr/X11R6/lib/X11/xdm/TakeConsole
echo 'chown root /dev/ulpt0' >> /usr/X11R6/lib/X11/xdm/TakeConsole
to add various lines
to /usr/X11R6/lib/X11/xdm/GiveConsole
and /usr/X11R6/lib/X11/xdm/TakeConsole.
(These lines allow any user who logs in at the console
to control the DVD drive and various USB devices.
Security problem: control can be extended past logout.
Usability problem: control isn't provided
if the devices aren't plugged in and turned on
when the user logs in.
Further usability problem:
apparently this control can't be provided for USB cameras,
because /dev/ugen0.[123] are continually recreated as root.
A simple user-level device handler could easily fix all of these problems.)
Type
echo 'exec startkde' > /home/root/.xsession
to specify KDE as root's window manager.
Type
vi /etc/ttys
/xterm
:s/off/on
to edit /etc/ttys, skip to the xterm line,
and change off to on.
Press Z Z to finish editing.
Type
kill -1 1
to start X with an xdm login screen (``Welcome to feedme'').
Press Ctrl-Alt-F1 to go back to the text-mode (non-graphical) login;
type
logout
to log out; press Alt-F9 to go back to X.
Type
root
RootPassword
to log in as root in X.
After KDE starts, select Run Command and type
xterm
to create an xterm window.
(With fvwm2:
left-click with the mouse;
move the mouse down to select XTerm;
left-click again to create an xterm window;
move the mouse into that window.)
You can type commands in the xterm window
the same way as you did for the text-mode login.
Type
cd /usr/ports/www/firefox; make install
to download, compile, and install Firefox.
Type
firefox
and surf the web.
cd /usr/ports/multimedia/ogle; make install
to download, compile, and install the
ogle program.
Insert a movie DVD. Type
ogle
to play the DVD.
I've encountered problems, presumably 64-bit problems in Ogle, with several DVDs: ``Play Movie'' produces excessively fast video with no audio. But, in every case, a scene-selection of Chapter 1 fixes the problem for playing the movie (and then pressing > repeatedly to get back to the title menu fixes the problem for the title menu itself).
Note regarding multiple video outputs: You can plug a VGA screen and a DVI screen into the video card simultaneously. (Make sure that the DVI screen is on when the computer boots; if you turn it on later, the video card won't send anything to it.) DVD-playing windows (and anything else displayed through XVideo) will appear only on the DVI screen. You can run
env OGLE_USE_XV=0 ogle
which has video appear on both screens simultaneously,
but this disables XVideo features such as scaling.
You can add
Option "OverlayOnCRTC2" "True"
to /etc/X11/xorg.conf (before X starts)
to put video on the VGA screen,
but this disables video on the DVI screen.
cd /usr/ports/audio/cdparanoia; make install
cd /usr/ports/audio/flac; make install
cd /usr/ports/audio/vorbis-tools; make install
cd /usr/ports/audio/mpg123; make install
cd /usr/ports/audio/abcde; make install
cd /usr/ports/audio/grip; make install
to install various audio programs.
I should give an example here of using a CD.
Type
cd /usr/ports/print/ghostscript-gnu; make install
cd /usr/ports/print/gimp-print; make install
to install the gs and ijsgimpprint programs.
Connect a USB cable from the printer to the computer.
At this point it's possible to print a PostScript file foo.ps:
gs -dSAFER -dBATCH -dNOPAUSE \
-r600x600 \
-sProcessColorModel=DeviceGray \
-sDEVICE=ijs -sIjsServer=/usr/local/bin/ijsgimpprint \
-sDeviceManufacturer=CANON -sDeviceModel=bjc-7000 \
-sIjsParams='Quality=600x600dpi,MediaType=Plain,Density=0.8,ImageType=2' \
-sOutputFile=/dev/ulpt0 -q foo.ps
Leave out the -sProcessColorModel=DeviceGray
if you want color output.
I'm not sure whether the DeviceGray tells this printer
to use its text-black ink tank rather than its color-black ink tank.
There are fancier printing systems that handle duplex printing, background printing, network printing, file formats other than PostScript, etc.
Type
cd /usr/ports/graphics/gtkam; make install
cd /usr/ports/graphics/gphoto2; make install
cd /usr/ports/graphics/netpbm; make install
cd /usr/ports/x11/xloadimage; make install
to install gtkam etc.
Connect a USB cable from the camera to the computer. There's a front USB port on the computer that's convenient for mobile devices.
At this point gtkam should work, although I actually use command-line gphoto2 scripts for fast high-volume picture management.
Type
cd /usr/ports/graphics/xsane; make install
to install the scanimage and xsane programs.
Type
echo usb /dev/uscanner0 >> /usr/local/etc/sane.d/epson.conf
to inform the scanning software that /dev/uscanner0
is an Epson scanner.
Connect a USB cable from the scanner to the computer.
At this point xsane should work, although I actually use command-line scanimage scripts for fast high-volume scanning.
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.3-RELEASE #0: Fri Nov 26 01:11:01 CST 2004
root@:/usr/obj/usr/src/sys/feedme
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) 64 Processor 3000+ (2002.57-MHz K8-class CPU)
Origin = "AuthenticAMD" Id = 0xfc0 Stepping = 0
Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
AMD Features=0xe0500800<SYSCALL,NX,MMX+,LM,3DNow+,3DNow>
real memory = 536018944 (511 MB)
avail memory = 505966592 (482 MB)
ACPI APIC Table: <A M I OEMAPIC >
ioapic0: Changing APIC ID to 1
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 0.3> irqs 0-23 on motherboard
acpi0: <A M I OEMRSDT> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8385 host to PCI bridge> mem 0xf8000000-0xfbffffff at device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pcib1: could not get PCI interrupt routing table for \\_SB_.PCI0.P0P1 - AE_NOT_FOUND
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
skc0: <Marvell Gigabit Ethernet> port 0xcc00-0xccff mem 0xfdd00000-0xfdd03fff irq 17 at device 10.0 on pci0
skc0: Yukon Gigabit Ethernet 10/100/1000Base-T Adapter
sk0: <Marvell Semiconductor, Inc. Yukon> on skc0
sk0: Ethernet address: 00:11:2f:75:ad:0f
miibus0: <MII bus> on sk0
e1000phy0: <Marvell 88E1000 Gigabit PHY> on miibus0
e1000phy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
atapci0: <VIA 6420 SATA150 controller> port 0xd000-0xd0ff,0xd400-0xd40f,0xd800-0xd803,0xe000-0xe007,0xe400-0xe403,0xe800-0xe807 irq 20 at device 15.0 on pci0
ata2: channel #0 on atapci0
ata3: channel #1 on atapci0
atapci1: <VIA 8237 UDMA133 controller> port 0xfc00-0xfc0f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 15.1 on pci0
ata0: channel #0 on atapci1
ata1: channel #1 on atapci1
uhci0: <VIA 83C572 USB controller> port 0xdc00-0xdc1f irq 21 at device 16.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xec00-0xec1f irq 21 at device 16.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <VIA 83C572 USB controller> port 0xc000-0xc01f irq 21 at device 16.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <VIA 83C572 USB controller> on uhci2
usb2: USB revision 1.0
uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <VIA 83C572 USB controller> port 0xc400-0xc41f irq 21 at device 16.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <VIA 83C572 USB controller> on uhci3
usb3: USB revision 1.0
uhub3: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
pci0: <serial bus, USB> at device 16.4 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
pcm0: <VIA VT8237> port 0xc800-0xc8ff irq 22 at device 17.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Analog Devices AD1980 AC97 Codec>
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
ppc0: <Standard parallel printer port> port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
orm0: <ISA Option ROM> at iomem 0xc0000-0xccfff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2002574211 Hz quality 800
Timecounters tick every 0.976 msec
acd0: DVDROM <IDE DVD-ROM 16X/VER 7.92> at ata0-master UDMA33
ad1: 190782MB <WDC WD2000JB-16FUA0/15.05R15> [387621/16/63] at ata0-slave UDMA100
Mounting root from ufs:/dev/ad1s1a
pciconf -lv prints
agp0@pci0:0:0: class=0x060000 card=0x80a31043 chip=0x31881106 rev=0x01 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'Apollo K8HTB CPU to PCI Bridge'
class = bridge
subclass = HOST-PCI
pcib1@pci0:1:0: class=0x060400 card=0x00000080 chip=0xb1881106 rev=0x00 hdr=0x01
vendor = 'VIA Technologies Inc'
device = 'Apollo K8HTB CPU to AGP 2.0/3.0 Bridge'
class = bridge
subclass = PCI-PCI
skc0@pci0:10:0: class=0x020000 card=0x811a1043 chip=0x432011ab rev=0x13 hdr=0x00
vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
device = '88E8001 Gigabit 32-bit Ethernet Controller with Integrated PHY'
class = network
subclass = ethernet
atapci0@pci0:15:0: class=0x010400 card=0x80ed1043 chip=0x31491106 rev=0x80 hdr=0x00
vendor = 'VIA Technologies Inc'
device = '??? SATA RAID Controller'
class = mass storage
subclass = RAID
atapci1@pci0:15:1: class=0x01018a card=0x80ed1043 chip=0x05711106 rev=0x06 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxx EIDE Controller (All VIA Chipsets)'
class = mass storage
subclass = ATA
uhci0@pci0:16:0: class=0x0c0300 card=0x80ed1043 chip=0x30381106 rev=0x81 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
class = serial bus
subclass = USB
uhci1@pci0:16:1: class=0x0c0300 card=0x80ed1043 chip=0x30381106 rev=0x81 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
class = serial bus
subclass = USB
uhci2@pci0:16:2: class=0x0c0300 card=0x80ed1043 chip=0x30381106 rev=0x81 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
class = serial bus
subclass = USB
uhci3@pci0:16:3: class=0x0c0300 card=0x80ed1043 chip=0x30381106 rev=0x81 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)'
class = serial bus
subclass = USB
none0@pci0:16:4: class=0x0c0320 card=0x80ed1043 chip=0x31041106 rev=0x86 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT6202 USB 2.0 Enhanced Host Controller'
class = serial bus
subclass = USB
isab0@pci0:17:0: class=0x060100 card=0x80ed1043 chip=0x32271106 rev=0x00 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT8237 PCI-to-ISA Bridge'
class = bridge
subclass = PCI-ISA
pcm0@pci0:17:5: class=0x040100 card=0x80b01043 chip=0x30591106 rev=0x60 hdr=0x00
vendor = 'VIA Technologies Inc'
device = 'VT8233/33A/8235/8237 AC97 Enhanced Audio Controller'
class = multimedia
subclass = audio
hostb0@pci0:24:0: class=0x060000 card=0x00000000 chip=0x11001022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices (AMD)'
device = 'Athlon 64 / Opteron HyperTransport Technology Configuration'
class = bridge
subclass = HOST-PCI
hostb1@pci0:24:1: class=0x060000 card=0x00000000 chip=0x11011022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices (AMD)'
device = 'Athlon 64 / Opteron Address Map'
class = bridge
subclass = HOST-PCI
hostb2@pci0:24:2: class=0x060000 card=0x00000000 chip=0x11021022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices (AMD)'
device = 'Athlon 64 / Opteron DRAM Controller'
class = bridge
subclass = HOST-PCI
hostb3@pci0:24:3: class=0x060000 card=0x00000000 chip=0x11031022 rev=0x00 hdr=0x00
vendor = 'Advanced Micro Devices (AMD)'
device = 'Athlon 64 / Opteron Miscellaneous Control'
class = bridge
subclass = HOST-PCI
none1@pci1:0:0: class=0x030000 card=0x51591002 chip=0x51591002 rev=0x00 hdr=0x00
vendor = 'ATI Technologies Inc.'
device = 'RV100 Radeon 7000 / Radeon VE'
class = display
subclass = VGA