FreeBSD4.5 on a Digital Celebris GL5100

Grenville Armitage, 6/24/02

This documentation is largely for my own benefit - a record of what I did in case I ever need to rebuild the machine. This information probably won't be useful to others (like you, if you're reading this page and you aren't me) since who on earth would also want to play around with FreeBSD on an old, derelict Digital Celebris GL5100? This page describes a succesful FreeBSD4.5 configuration. [FreeBSD4.6 or later will probably also work.]

Summary
Equipment
Installing FreeBSD
Configuring FreeBSD
FreeBSD boot messages

Summary

A Digital Celebris GL5100 running FreeBSD4.5  + Apache 1.3.22_7 + ltmdm-1.2 provides a simple platform for experimenting, a home web server, and LAN/dial-up gateway.

Equipment

Installing FreeBSD

The BIOS didn't seem to support a "boot from CDROM" option, so booted from the FreeBSD floppies. The FreeBSD boot process will prompt you for an initial kernel configuration step - skip it, and continue to the main Installation program. Select a Standard Installation, and you'll now be prompted to create the intial partitioning of the hard drive.

Because of its BSD/Unix roots, FreeBSD actually uses the term "slice" to refer to what the PC-world calls "partition". The traditional PC BIOS allows a disk to contain up to four distinct partitions, each containing a different file system (FAT16, NTFS, FreeBSD UFS, Linux, etc). Traditional BSD (from which FreeBSD is derived) uses partitions as key mount points for members of the unix directory tree and the swap space. Since FreeBSD was designed to co-exist on PC platforms and their BIOSes, BSD-style partitions are created inside BIOS partitions. To keep the names distinct, FreeBSD decided that BIOS partitions would be referred to as slices.

The first step in the installation process is the FDISK Partition Editor, which allows you to modify the BIOS partitions of the hard drives. From FreeBSD's perspective, the GL5100's internal IDE drive was /dev/ad0. I deleted the existing partition entries and created a single FreeBSD partition named ads01 out of the entire 814 MB disk.

Quit the partition editor ('q' option) and you'll be prompted to install the FreeBSD boot loader in the Master Boot Record (MBR). Do this. (It wont mean much in single-boot mode, but might be useful down the road.) You'll then be taken to the "Disk Label Editor" and offered the chance to set up BSD-style partitions inside the previously assigned FreeBSD slice, ad0s1. I assigned the following:

/dev/ad0s1a    /          [128MB]
/dev/ad0s1b    (swap)     [32MB]
/dev/ad0s1e    /tmp       [128M]
/dev/ad0s1g    /usr       [~460M]
/dev/ad0s1e    /var       [64MB]

(ad0s1c conventionally represents the entire slice ad0s1, ad0s1d is unused by default.)

At this point both the local CDROM drive and internal ethernet port are recognized (interestingly the CDROM was a slave on ata1, and I couldn't see a master). Continue the installation using disc 1 of the four disk ISO set, either in the local CDROM drive or over the network. In my case I chose an NFS installation from another machine on my home LAN.

When prompted, select installation "8" (standard user, no source packages or X windows). I did not select the 'ports' collection, but did subsequently select the linux-compatibility package and scanssh. [You don't need to pull in too many packages during the installation process, they can be added later from the CD-ROM or over an Internet connection with "pkg_add -r <packagename>"]

A caveat about security settings: don't select the highest security setting when prompted during installation, otherwise the X11 server will be unable to start (e.g. when you run "XFree86 -configure" either from console or during the installation process).

A note about modems: Many common PCI-card modems are "winmodems" that need special drivers. FreeBSD4.5 includes a package (ltmdm-1.2, on disc 1) that supports winmodems based on the Lucent chipset.

A note about X11: I experimented with XFree86-4.2.0 from the FreeBSD4.6 package collection (took quite sometime to install, but did so okay). Ouch. Although the "XFree86 -configure" phase worked okay (the GL5100's Matrox MGA 2064W video card was recognized), the machine thrashed a lot while starting up XFree86 proper. Yes, it was quite easy to get 640x480 mode under twm with two xterm's. But even when idle, almost 50% of the swap file was in use. Ouch again. Definitely need a RAM upgrade before trying to use this machine as a windowed workstation.

Configuring FreeBSD

For this unit I didn't do much configuration of anything, since it was merely a proof-of-concept. I did install and play with Apache-1.3.22, which worked fine for a small installation, sufficient to experiment with server configuration and programming tricks. I did install the ltmdm-1.2 lucent winmodem driver, but had the wrong winmodem installed. (In an earlier experiment with a similar machine and Lucent-based winmodem I was able to create a dial-up gateway, using ppp's NAT functionality to allow multiple machines on the LAN port to share the dial-up ISP connection.)

FreeBSD boot messages

I didn't tweak IRQs or search for conflicts. Here's what FreeBSD4.5 reported when booting.


Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 4.5-RELEASE #0: Mon Jan 28 14:31:56 GMT 2002
    murray@builder.freebsdmall.com:/usr/src/sys/compile/GENERIC
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium/P54C (99.55-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x525  Stepping = 5
  Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory  = 16777216 (16384K bytes)
avail memory = 11825152 (11548K bytes)
Preloaded elf kernel "kernel" at 0xc0496000.
Intel Pentium detected, installing workaround for F00F bug
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
de0: <Digital 21040 Ethernet> port 0xf480-0xf4ff mem 0xfedfbc00-0xfedfbc7f irq 11 at device 3.0 on pci0
de0: DEC 21040 [10Mb/s] pass 2.3
de0: address 08:00:2b:e6:de:04
isab0: <Intel 82371FB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX ATA controller> port 0xfcf0-0xfcff at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <Matrox MGA Millennium 2064W graphics accelerator> at 9.0 irq 9
pci0: <unknown card> (vendor=0x127a, dev=0x2005) at 12.0 irq 10
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
ad0: 814MB <WDC AC2850F> [1654/16/63] at ata0-master PIO3
acd0: CDROM <TOSHIBA CD-ROM XM-5302TA> at ata1-slave using PIO0
Mounting root from ufs:/dev/ad0s1a