FreeBSD on a Dell Optiplex GX270 Workstation

So, my company finally purchased some new Dell machines to replace our aging FreeBSD workstations for the programmers. After a long period of research, digging through man pages, HOWTOs, HCLs and even source code, I decided that the GX270 machines were our best bet for FreeBSD support (even if we had to drop an off-board AGP video card in). They use the Intel 865G chipset, which seems to have support for everything in recent FreeBSD source.

When the machines showed up, I unpacked the first one, turned it on (taking care to document the startup procedure and how I did NOT accept the "press any key-through" license) and loaded my standard FreeBSD release on it (4.8-STABLE copied from my master workstation). No agp support and no ethernet (although I could load a module for this).

This board has an Intel gigabit NIC built into the motherboard. It's device 'em' identified with

Intel(R) PRO/1000 Network Connection, Version - 1.6.6
This works perfectly as far back as FreeBSD 4.7-RELEASE.

The 865G chipset also contains integrated "Intel Extreame Graphics 2", which is supported by XFree86 4.3.0 with the "i810" driver. Unfortunately, the OS must have "agpgart" support for this video chip to work. 4.8-STABLE (as of July 16, my release date) didn't support agp on this board. However, a simple update to 4.9-PRERELEASE did the trick and a very pleasant

agp0: <Intel 82865G (865G GMCH) SVGA controller>
scrolled by my boot messages.

Here's my final kernel config for this machine:


machine		i386
cpu		I686_CPU
ident		OPTIPLEX
maxusers	0

options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	NFS			#Network Filesystem
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options         USER_LDT                #allow user-level control of i386 ldt
options         INCLUDE_CONFIG_FILE     # include config in kernel


device		isa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0

# ATA and ATAPI devices
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
options 	ATA_STATIC_ID		#Static device numbering

# SCSI peripherals
# No SCSI controllers in machine, but leave these in for USB disks
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
device		apm0    at nexus? disable flags 0x20 # Advanced Power Management

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3

device		agp

# Gigabit Ethernet NICs.
device		em		# Intel Pro/1000 (82542,82543,82544,82540)

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	pty		# Pseudo-ttys (telnet etc)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

device		pcm    		# sound

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
device		uscanner	# Scanners