Sunday, November 07, 2004

Notes on Installing and Configuring FreeBSD 5.3 RELEASE on my Thinkpad

This weekend FreeBSD 5.3 was released. I decided to install both FreeBSD 5.3 and Windows 2000 on a new laptop hard drive. (Here is how I handled dual-booting.) I'm writing these notes to keep track of the little tweaks needed to get the system running as I want it to run. I did the same in January 2004 when I installed FreeBSD 5.2 on the same system.

Rather than wipe out my existing software installation, I bought a new 2.5 laptop hard drive. Whenever I decide to reinstall an operation system from scratch on an important system, I usually buy a new hard drive and place the old one in a safe place. Hard drives are very cheap compared to the data on them. Although I do back up my data to other systems, you never know what you might need off the old hard drive. I usually forget some item in the boot loader or some configuration script, neither of which are found in /home.

My typical partitioning strategy is a variation of the following:

/ 2048 MB
swap twice RAM
/usr 4096 MB
/var 10240 MB
/home 1024 MB (more for workstations, enough for servers)
/tmp 1024 MB
/nsm remainder (if needed)

That strategy works well on a 20 GB HDD, which is comfortable in today's computing world.

When I installed FreeBSD 5.3, I didn't install any packages beyond the defaults. I didn't see bash3 in the list of available packages in the /stand/sysinstall menu, so I decided I would add that later. I am glad to be using bash3 and not bash2, as I noticed an infrequent problem with bash2 core dumping if I tried to cancel an operation and then quickly scroll back through the command history.

Before I install any software I like to run ntpdate to set the time on the system:

janney:/root# ntpdate clock.isc.org
Looking for host clock.isc.org and service ntp
host found : clock.isc.org
8 Nov 16:28:24 ntpdate[1298]: step time
server 204.152.184.72 offset -18014.552297 sec

These are the sorts of packages I installed immediately after the OS was ready. I ended up with a lot more software than listed here, because some of the applications (like gedit or gimp) require lots of supporting libraries.

- bash (which is bash3)
- fluxbox-devel (my no-nonsense window manager)
- firefox (Web browser)
- thunderbird (mail client)
- mutt (mail client, good for system mail)
- aterm (I like this client better than xterm)
- cmdwatch (dynamically watch shell command output, like ls -al)
- portaudit (security application to check for vulnerable installed applications)
- portupgrade (upgrade software installed via port or package)
- pkg_cutleaves (delete packages, starting from end "leaves" and moving toward the core)
- xv (simple image viewer)
- gtksee (more complex image viewer)
- gedit2 (good GTK text editor)
- gimp (image editor)
- cdrtools (CD burning application)

I was able to install all of these applications using precomplied packages. However, in some cases I had to install applications via port because the package was not available in the ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.3-release/Latest/ directory. Examples include mplayer, a media viewer, and screen, providing multiple screens within a single terminal.

I was able to use the basic xorg.conf file created by running 'startx', but had to tweak it. I saved an example of it at xorg.conf.orr. I actually built this file with xorgconfig and then modified it by hand. I uncommented the xtt and glx sections but found dri was broken. I also uncommented the TrueType and freefont Fontpaths. My .xinitrc for my user accounts has a single line:

exec startfluxbox

My .xserverrc enables 100x100 dpi and no listening X server:

exec X :0 -dpi 100 -nolisten tcp

I add the following to my .profile to give a prompt with present working directory for bash3 users:

PS1='`hostname -s`:$PWD$ '; export PS1

I replace the 'set prompt' in root's .cshrc with the following to show present working directory for csh users like root:

set prompt = "%m:%/# "

I also enable tab completion with this:

set autolist

To ensure I read important mail for the root user, like portaudit results, I edit /etc/aliases as shown:

# root: me@my.domain
root:

I then run 'newaliases':

orr:/etc# newaliases
/etc/mail/aliases: 27 aliases, longest 23 bytes, 293 bytes total

I installed Sguil from CVS and tested the new install documentation I wrote.

Previously I avoided using acpi with FreeBSD 5.2. I am currently able to use acpi in this manner. To suspend the laptop I issue as root 'acpiconf -s 3'. I can resume the laptop by hitting the 'Fn' key. At this point moused is dead, so I have to 'killall -HUP moused' to bring it back. I also have to re-config the network interfaces. I've combined some of these actions into scripts I run upon resuming the laptop.

1 comment:

tweedledeetweedledum said...
This comment has been removed by a blog administrator.