Friday, June 18, 2004

Adventures with FreeBSD CURRENT

I decided to upgrade my Dell PowerEdge 2300 (dual PIII) system from FreeBSD 4 STABLE to FreeBSD 5.2.1 REL. Before installing the new OS, I tested the hardware for compatibility with the 5 tree by trying to boot the FreeSBIE live CD. That failed, so I next tried to boot the 5.2.1 installation CD. That also failed, hanging at this point:

SMP: AP CPU#1 launched!
Mounting root from ufs:/dev/md0
md0: Preloaded image 4423680 bytes at 0xc09e16d8

I tried a few simple fixes, like booting without ACPI enabled via the boot menu. I also tried a trick at the boot prompt noted in a newsgroup posting, namely:

unset acpi_load
set hint.apic.0.disabled=1

Note the first step disables ACPI, or "Advanced Configuration and Power Management support" (also at www.acpi.info). The second step disables APIC, the "Advanced Programmable Interface Controller." This site explains the relationship between ACPI and APIC.

None of these steps worked, so I decided to try installing the latest FreeBSD CURREENT snapshot. I burned the normal installation CD-ROM for 5-CURRENT and found it would boot on my Dell. I then installed it, and saw this as the result:

-bash-2.05b$ uname -a
FreeBSD janney.taosecurity.com 5.2-CURRENT-20040617-JPSNAP
FreeBSD 5.2-CURRENT-20040617-JPSNAP #0:
Thu Jun 17 01:58:11 GMT 2004 root@ushi.jp.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386

Don't be worried about the "jp". This isn't some sort of Japanese distro. The "jp" is a reference to who built it -- the Japanese FreeBSD project.

Keep in mind that running CURRENT may bring problems, as it's not as stable as RELEASE. I also noticed this in dmesg output:

WARNING: WITNESS option enabled, expect reduced performance.

According to the man pages, witness "keeps track of the locks acquired and released by each thread." This is a troubleshooting mechanism. I can rebuild the kernel without it, as I see how it was built in GENERIC:

-bash-2.05b$ grep -i witness /usr/src/sys/i386/conf/GENERIC
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed

Anyway, I was happy to get the 5 tree running on this system.

No comments: