Upgrading to FreeBSD 7 from 6.3-STABLE

Yesterday, I’ve finally get some time to upgrade one of my FreeBSD 6.3-STABLE test machines to FreeBSD 7.

Note that starting from 6.2-RELEASE you can do binary upgrades by using freebsd-update utility. Detailed explanation is provided by Colin Percival in his blog entry available at http://www.daemonology.net/blog/2007-11.html.

Source-based upgrades are supported as well and this is what I prefer to use. I’ll try to summarize key points you should take into consideration before starting upgrading to version 7.

  1. Change CVS branch tag to RELENG_7 and obtain the latest source tree. By the way, don’t get confused when you see files dated 2006 and a lot of checkout records – FreeBSD 7 came a long way!

    *default release=cvs tag=RELENG_7

    Click here for more detailed information about CVS tags used in FreeBSD.

  2. Update your ports tree and upgrade installed ports before starting migration, just to be sure that you have all ports built properly. Later on, you would have to rebuild all ports anyways to link them to newly installed libraries. If you do ports maintenance on a regular basis you can basically skip this part.

    portsnap fetch update
    portupgrade -a

    The first command will fetch the latest compressed snapshot of the FreeBSD ports tree, extract and update the tree you have available. The similar could be achieved by using cvsup.

    The second one will update all installed ports. portupgrade is not a built-in tool and should be installed separately (available at /usr/ports/ports-mgmt/portupgrade).

  3. There were quite a few changes in kernel options in FreeBSD 7:

    machine option is no longer needed and could be removed.

    options COMPAT_FREEBSD6 was introduced in order to provide backward compatibility. According to /usr/src/UPDATING this option should be added to enable X.Org and the rest of ports to work properly. Otherwise, you would need to recompile all ports after you finish with migration.

    options SCTP was added. This option is not mandatory and provides Internet Stream Control Transmission Protocol support. Note that SCTP requires options INET6 to be included as well.

    options UFS_GJOURNAL option provides UFS Journaling Through GEOM capability and is well documented in Chapter 19 of FreeBSD Handbook.

    options STOP_NMI is only applicable for multi-processor (SMP) machines. Here is a brief explanation given by Robert Watson on freebsd-current:

    STOP_NMI makes inter-processor interrupts for the debugger (and a few other things) use non-maskable interrupts instead of maskable ones. So it doesn’t actually do anything if you don’t have an SMP system, as there will be no inter-processor interrupts on a single-processor system.

    options AUDIT is now included by default and provides support for security event auditing. There is a special chapter in FreeBSD Handbook regarding this feature.

    options GEOM_LABEL enables labeling under the GEOM framework. There is a special chapter in FreeBSD Handbook regarding GEOM.

    options GEOM_PART_GPT enables GEOM support. Note that GEOM_PART_GPT should be used instead of GEOM_GPT which is depreciated.

    options COMPAT_43TTY — according to notes in GENERIC kernel this option should be kept untouched. COMPAT_43 has been removed.

    options SMP — is now included by default. Even in GENERIC.

    device firmware — is a firmware assist module.

    device cpufreq — is CPU frequency control framework.

    device uart is included by default and enables support for Universal Asynchronous Receiver/Transmitter (UART) devices.

    device lnc has been removed in FreeBSD 7 and replaced by le and pcn drivers.

    device le was added as a replacement for depreciated lnc.

    device dcons stands for dumb console driver.

    device dcons_crom is a configuration ROM stub for dcons.

Tags: , , , ,

Leave a Reply