Fax Server

Last modified: Wed May 27 08:16:37 EDT 2009

Current status

The fax server was decommissioned on May 25, 2009 after several years of service.  It was no longer cost-effective to maintain a fax line when most people can use email.

Mon May 25 14:00:01 EDT 2009
 14:00:01 up 254 days, 16:01,  0 users,  load average: 0.00, 0.00, 0.00
Adapter: ISA adapter
VCore 1:     +2.80 V  (min =  +2.66 V, max =  +2.93 V)
VCore 2:     +1.47 V  (min =  +1.42 V, max =  +1.57 V)
+3.3V:       +3.34 V  (min =  +3.14 V, max =  +3.46 V)
+5V:         +5.00 V  (min =  +4.73 V, max =  +5.24 V)
+12V:       +12.10 V  (min = +11.37 V, max = +12.59 V)
-12V:       -11.40 V  (min = -13.18 V, max = -10.79 V)
-5V:         -4.89 V  (min =  -5.49 V, max =  -4.50 V)
Mobo temp:   +31.0 C  (high = +62.0 C, hyst = +59.0 C)
CPU temp:    +35.0 C  (high = +62.0 C, hyst = +59.0 C)
cpu0_vid:   +2.800 V

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2              5999072   1786848   3902572  32% /



Some people are proud of their expensive, overclocked, supercooled, multi-GPU, blinking-LED gaming rigs.  Me, I can't help but be a little bit proud of a junk Pentium II that came out of retirement to become a merciless 24/7 spam-killing fax server.

It began as a quick and dirty project done primarily to stop junk faxes but also to eliminate the need to stock a fax machine with proprietary fax film.  Running under Slackware Linux, HylaFAX answers the fax line, does some primitive access control, flips out and goes ninja on spammers, and forwards the occasional non-junk fax as a PDF in e-mail.

On Saturday nights, when there are no spammers to massacre, it lays down the boogie.  Or so I guess.  I'm never awake.


Life was not always so glamorous.  The fax server was first incarnated in this ugly beige box, a salvaged CompUSA branded PC.  Before it found use as a fax server it was serving as a testing platform and a source of spare parts.  The case was already slightly broken due to my ineptitude in figuring out its many nonstandard fasteners.  My general dislike for the flaky old thing made it ideal for an application where I could set it up in a dark corner and then forget about it.


The Linux-compatibility of modems has been going backwards for years, so it's easier to take an old modem and build a server around it than to take a new PC and find a modem that works in it.

In previous lives, this Best Data Smart One 56 kbps ISA fax modem provided me with years of dial-up Internet access.  HylaFAX identifies it as Rockwell RC288DPi/V3.210-V90_2M_DLP, which is consistent with the Conexant chips on the PCB.  The box it came in was prominently labelled "Works with Linux!"

I tried to give this modem away when I first got DSL, but nobody wanted it.  Lucky for me.  I didn't even know for sure that it supported fax until I tried it.


The modem that was originally in the CompUSA PC was one of those useless winmodems.  I gave it away.

The original optical drive was flaky.  I replaced it with one salvaged from a PC that somebody left at the curb on trash day.

The Zip drive got painted black and installed in another computer.  The off-brand sound card found its way into a box of spare parts.


The motherboard has the Intel 440BX chipset and 64 MiB RAM.  More importantly, it's old enough to have an ISA slot for the modem but new enough to have a USB port to talk to the UPS (APC UPS Dæmon).

The BIOS, which is confusingly identified as all of "Award Modular BIOS v4.51 PG," "CompUSA PC PENTIUM II AGP/PCI/ISA BIOS REV: A1.0," and "Award Plug-and-Play BIOS Extension v1.0A," is dated 1998-03-12 and is downright horrible.  ACPI is totally absent, and CompUSA PC BIOS updates are nowhere to be found.  Fortunately, APM works well enough for apcupsd to initiate a controlled shutdown / automatic restart when an outage is long enough to drain the UPS.

According to Intel, the 266 MHz Pentium II (Klamath) CPU with sSpec Number SL2HC (barely readable on the side of the CPU package in this picture) uses at most 38.2 W, has a maximum operating temperature of 75 °C, and probably should have a fan attached to the heat sink.

In this picture you can also see some of the nonstandard motherboard fasteners used by the CompUSA case.  On the left side the mobo is secured by a couple of hooks.  On the right side it is secured by three spring-loaded whatsits that I struggled to disengage and eventually broke.  There used to be some plastic fasteners involved too, but they broke the first time I disassembled the PC.


The CompUSA PC was ventilated primarily by the power supply, which had a noisy little fan that ran full speed all the time and pulled a lot of air through the case.  Additional ventilation for the CPU was provided by a relatively weak fan that drew air off the heat sink and exhausted it through ductwork to the 8 cm rear vent.

In September 2007 the server started to power-off at random.  By then it had proven to be highly convenient, so I was not above buying some new parts in hopes of maximizing its useful life.  I ordered a new PSU to fix the spontaneous shutdowns.  More gratuitously, I decided to rebuild the server in a case that would be easier to work on and update the cooling arrangement.  I do not think that overheating had anything to do with the failure; it's just that thermal management is fun.

I failed to make note of typical CPU operating temperatures before the old PSU died, but I did verify that the BIOS was not configured to shut down automatically if the CPU overheated.


Carried over:  100 Mbit PCI ethernet card.  The CompUSA parts list identifies it as an SMC card, and that's what it says on the chip, but the Linux network drivers identify it as RealTek RTL8139 Revision K ("uncommon").


Carried over:  S3 ViRGE/GX2 4 MiB 3.3 V AGP VGA card.  Seldom used; normally I access the fax server over SSH and don't bother to connect a monitor or keyboard.


Carried over:  Fujitsu 6.48 GB ATA hard drive.


Declared dead:  Sparkle FSP235-60GT PSU.  Note the −5 V output, which is necessary for ISA but absent from most new power supplies.


The new PSU, one of the few that still supply −5 V.  (Thermaltake Purepower 1.3 350W, model W0118, $35)

The DC output voltages of this PSU have remained within the regulation ranges specified in the ATX Power Supply Design Guide.  Those of the more expensive power supply in my primary desktop PC are never within spec.  It's a total crap shoot.


The new PSU is far quieter than the old PSU, but it won't help cool the CPU.


For the rebuild, I ditched the clunky old ductwork in favor of the latest fashion, a 25 cm side fan.  (Enermax Chakra ECA3052B Black ATX Mid Tower, $70)

When the new case arrived, the side panel didn't fit right because the chassis wasn't quite square in the back.  Several blows from a hammer fixed that.


The box that the Chakra case came in stated that the side fan is 650 rpm, 90 cfm, and 17 dB(A), but did not indicate its power consumption.  I did not find anything useful on the Power Cooler web site.  Some fans of the same size, but different make, that are currently available from Performance PCs are specified as 11 W = 12 V × 0.9 A.  On the other hand, the one that is included with the AeroCool Zero° Flexi-Tower Case is specified as 3.84 W = 12 V × 0.32 A.  Quite a difference.  It matters because some popular fan controllers are rated for a maximum of 6 W.


With the side fan running as an intake, the foam in the front of the case would just accumulate dust on the inside, eventually clogging up and blocking the flow of air, so I removed the foam.


This shows everything ready to go except for the side panel.  The hard drive is mounted sideways in the cage at bottom right, hidden by cables.  The side fan will connect to one of the large Molex connectors on the wire bundle already connected to the hard drive.  None of the externally accessible drive bays are used—no optical drive, no floppy drive, no nothing.  I thought I might need a fan controller to silence the side fan, but at full speed it is still quieter than the hard drive spindle motor.

I did learn the hard way that one must take care to keep cables away from the big fan.  Most of the extra cabling is just laying in the empty 5¼″ drive bays.

With the side fan on intake, the rebuilt server maintained a CPU temperature of 35 °C while "idling" in BIOS setup.  With the side fan turned off, the temperature rose 14 °C in about 90 seconds and showed no signs of deceleration.  That was as far as I let it go before turning the fan back on, though for all I know the CPU may have been frying eggs for years in the old case.


That's it.  The fax server is back up, running very quietly and looking cool.  As configured, it uses 35 W and 53 VA at idle, yielding an unimpressive power factor of 0.66.

On 2007-11-24 I recompiled the kernel to get lm-sensors working and found that the reported CPU temperature was only 25 °C.  This seems an awfully big difference from what the BIOS reported.  One or more of the following may apply:  lm-sensors is out of calibration; the BIOS temperature is out of calibration; room temperature is a lot lower now; the CPU package was still hot from my shop light; the BIOS setup screen was running a busy-waiting loop that heated up the CPU (but I'm not sure if Pentium IIs even work like that).  I meant to do some more tests but never got around to it.

How to do better

35 W isn't much by today's standards, but it is more power than is strictly necessary to receive faxes.  Several different approaches could be used to reduce the power consumption.


The following wiring photos are for my own future reference.  The LEDs don't work if the polarity is wrong, and I had to turn the HDD connector around to make that LED work on the Chakra case.

CompUSA case Chakra