Deploying a FreeBSD Workstation

From DFWLPiki
Jump to: navigation, search

Scope of This Document

This is the First Edition of this Document, and its not quite finished yet. --Sharaz 23:39, 22 June 2006 (CDT)

I originally wrote this information up for myself, so I could document the procedures for building a FreeBSD workstation from the ground up. My hope is that someday, someone might happen across this document, and benefit from my experience. This build will be a KDE workstation, with other additions such as webmin, net-snmp, as well as others useful items. The actual FreeBSD 6.1 installation is covered in another document found on this site.

Setup Useful Daemons

We are going to install webmin with ssl, ntpd for time syncronization, and net-snmp. When you configure webmin, be sure to choose 'yes' when asked if you want to use ssl. When configuring net-snmp, make sure you specify snmp-v1 and snmp-v2 community strings that only you know, its just good practice.

# cd /usr/ports/sysutils/webmin; make install clean
# cd /usr/ports/net-mgmt/net-snmp; make install clean

First up, lets manually sync the time of the computer.

# ntpdate -v -b

Configure net-snmp. Most sites use snmp-v1 or snmp-v2, but net-snmp supports the more secure snmp-v3 as well. If you just want to be able to query your machine against a public or private community string, follow the promts to configure the snmpd.conf file for snmp-v1/v2.

# snmpconf

Configure webmin.

# /usr/local/lib/webmin/

Add these damons to /etc/rc.conf, so that they start at boot.


Ntpd will require the creation and population of the file /etc/ntp.conf, with these settings below. The 'echo restrict' line, should reflect your local network's address.

restrict mask nomodify notrap
driftfile /var/db/ntp.drift 

Last, we start our daemons (webmin already started with the configuration script)

# /etc/rc.d/ntpd start
# /usr/local/etc/rc.d/snmpd start

Prepare Configuration Files

Tell the sound driver to load. This driver is one that will try them all, then load the one it finds. Later, we can discover the one that is in use, and load just that one.


... so add that to /boot/loader.conf. That is a generic meta driver that will load every sound driver available, and if one works, your system will use it. Which driver it chooses can be later used to trim out this generic driver, and specify just the correct one. After you system is up and running with the generic sound driver, you can use these commands to see which drivers are loaded (kldstat will show all, and 'cat /dev/sndstat' will specify which sound driver is currently in use)

[root@athena ~]# kldstat
Id Refs Address    Size     Name
 1   14 0xc0400000 6ab778   kernel
 2    1 0xc0aac000 5f60     snd_ich.ko
 3    2 0xc0ab2000 22b88    sound.ko
 4    1 0xc0ad5000 59960    acpi.ko
 5    1 0xc382f000 16000    linux.ko
 6    1 0xc39ca000 5000     i915.ko
 7    1 0xc39cf000 e000     drm.ko
[root@athena ~]# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH6 (82801FB)> at io 0xcfdc0400, 0xcfdc0600 irq 21 bufsz 16384 kld snd_ich (1p/1r/0v channels  duplex default)

Building the Desktop Environment

Now we are finally ready to build the GUI environment. This part is quite lengthy; my Pentium 4 3.2 system took about 22 hours just to compile KDE. was probably about 2 hours. I also include the Nvidia driver on my system, if you do not have an Nvidia based card, omit that step. Also, since xorg and KDE take so long to compile, we use batch mode for them.

# cd /usr/ports/x11/xorg; make BATCH=yes install clean
# cd /usr/ports/x11/kde3; make BATCH=yes install clean
# cd /usr/ports/x11/nvidia-driver; make install clean

Start Your Desktop Environment

Log out root, and log in as your user. If you want KDE to start, you can insert the file .xinitrc into your homedir, and this will cause KDE to load.

# touch .xinitrc
# echo exec startkde >> .xinitrc
# startx

Add Some Useful Desktop Programs

Now that we are up and running, lets open a konsole and become root. Here is a sample of some of the programs I tend to add right away to a new system I build. You can literally spend days exploring and compiling interesting things from the ports collection, so I highly recommend you visit the ports page, and give it a search.
# cd /usr/ports/misc/kdeaddons3; make install clean
# cd /usr/ports/graphics/gwenview; make install clean
# cd /usr/ports/x11/xscreensaver-kde; make install clean
# cd /usr/ports/security/nmap; make install clean
# cd /usr/ports/sysutils/gkrellm2; make install clean
# cd /usr/ports/www/firefox; make install clean
# cd /usr/ports/net-im/gaim; make install clean
# cd /usr/ports/print/acroread7; make install clean
# cd /usr/ports/sysutils/cdrtools; make install clean