The following notes list what I had to do to install HylaFAX
on my system which is running Red Hat Linux 5.2. If you
read through these notes you will see how I worked around
problems in the libjpeg and ghostscript packages. I am
sending this to you in the hope that you can use this
information to prevent these problems for others in the
future. Also, anyone who wants this HylaFAX installation
procedure is welcome to it.
Hylafax Installation Notes - 1999 April 20
I recently installed the binary Hylafax package. These
notes list the problems encountered and my work-arounds. I
trust that others will find this information helpful.
The system that I intsalled Hylafax on consisted of:
Intel 486 DX processor running at 66 MHz,
US robotics V.90 internal modem,
Laserjet III P printer,
Red Hat Linux 5.2 with X-Windows and Motif operational,
Netscape 4.08 web browser.
I logged in as the root user.
I downloaded Hylafax from the HylaFAX home page:
From this home page I followed the "Links" link to:
From this links page I followed the "Redhat Linux
Users" link to the section that addresses RedHat Linux
From this section I followed the "main ftp site" link
From this page I opened the "i386" directory, and then
downloaded "hylafax-4.0pl2-3rh5.i386.rpm" which I stored in
the /usr/local/HylaFAX/ directory that I created for this
I returned to HylaFAX Links page, and tried to follow
the "Notes" link but it references an obsolete page. It
should instead point to
This is Nico Kadel-Garcia's notes page, which I printed.
The title is "Installing HylaFAX v4.0pl2 on RedHat Linux
5.x". These notes provide an excellent general guide for
the installation, but I found a few small concerns:
Nico recommends http://www.typhoon.dircon.co.uk as
a source for version 5.10 of ghostscript. Instead I decided
to use a later version which I obtained from the Ghostscript
The reference to man page hylafax(4F) should
instead be hylafax(5F).
The instruction to run "/sbin/faxsetup" should be
to run "/usr/sbin/faxsetup"
The assumption that file /etc/rc.d/rc.serial exists
was not correct on my system. I had to create this file.
I did not change /etc/inittab as Nico recommends to
have faxgetty launched when the system boots up. Since I
only need to send facsimiles occasionally I decided to
launch this process manually when needed.
I connected to the HylaFAX home page:
http://www.hylafax.org/ and followed the "Setup" link to:
http://www.hylafax.org/setup.html. I printed this page
and followed it closely.
The following comments list the specific details that I had
to work through to get this installation working.
To download ghostscript I started at the Ghostscript Home
From this home page I followed the "Where to Get It"
link to: http://www.ghostscript.com/pages/get_it.html
and then followed the "this page" link to:
and then followed the "Obtaining Aladdin Ghostscript
5.50" link to:
On this page there is a paragraph that discusses Red
Hat linux. Within that paragraph the
link allows the package to be downloaded. It points to
I clicked on this link with the shift key pressed to
transfer the file using ftp. I stored the package file in
/usr/local/ghostscript/, a directory created for this
Within the same paragraph there is a
"ghostscript-fonts-5.50-1.noarch.rpm" link that points to
With the shift key pressed I clicked on this link to
download the package file and store it in
The two packages are mutually dependent, so intsalling
either one by itself causes a conflict with the other. To
get around this I executed the following commands in the
rpm -Uv --nodeps ghostscript-5.50-2.i386.rpm
rpm -Uv --nodeps ghostscript-fonts-5.50-1.noarch.rpm
I was not out of the woods yet. The version 5.50
ghostscript was not compatible with the version distributed
with RedHat Linux 5.2. It uses different drivers for some
printers, one of these being the LaserJer III printer that I
use. So I edited
/var/spool/lpd/lp1/postscript.cfg and manually changed
One consequence of this change is that I now cannot use
the PRINTOOL command to change the printer configuration
since it will not preserve these manual edits.
HylaFAX depends on the libjpeg library to process jpeg
files. The package expects /usr/lib/libjpeg.so.6 to exist.
This file does not exist in the RedHat Linux 5.2
distribution. To work around this I executed the following
cp /usr/lib/libjpeg.so.62.0.0 /usr/lib/libjpeg.so.6.0.2
ln -sf /usr/lib/libjpeg.so.6.0.2 /usr/lib/libjpeg.so.6
It now was possible to install the HylaFAX package. This
was accomplished by running the following commands in the
/usr/local/HylaFAX directory that held the downloaded
rpm -Uv hylafax-4.0pl2-3rh5.i386.rpm
I use "modem" as the device name for the modem, and I knew
that the modem was basically OK since it was used to connect
to the internet. To cause the serial line to be set up as a
facsimile device at boot time I created the file:
Configuring HylaFAX for the US Robotics modem was the next
challenge. I ran the HylaFAX "faxaddmodem" command to
obtain a generic class 2.0 modem configuration for the US
Robotics V.90 modem. This did not send large documents
correctly. So I edited the file
/var/spool/fax/etc/config.modem to contain:
# $Id: class2.0,v 1.12 1996/06/24 02:58:33 sam Rel $
# HylaFAX Facsimile Software
# Copyright (c) 1990-1996 Sam Leffler
# Copyright (c) 1991-1996 Silicon Graphics, Inc.
# HylaFAX is a trademark of Silicon Graphics, Inc.
# Permission to use, copy, modify, distribute, and sell this
# its documentation for any purpose is hereby granted
without fee, provided
# that (i) the above copyright notices and this permission
notice appear in
# all copies of the software and related documentation, and
(ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any
# publicity relating to the software without the specific,
# permission of Sam Leffler and Silicon Graphics.
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES
OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND
ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# OF THIS SOFTWARE.
# Generic Class 2.0 modem configuration.
# EDIT THIS CONFIGURATION TO REFLECT YOUR SETUP
GettyArgs: "-h %l %s"
TagLineFormat: "From %%l|%c|Page %%p of %%t"
# Modem-related stuff: should reflect modem command
# and hardware connection/cabling (e.g. flow control).
ModemType: Class2.0 # use this to supply
ModemRate: 38400 # max rate for
ModemFlowControl: rtscts # XON/XOFF flow
ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop
ModemSetupDCDCmd: AT&C1 # setup so DCD
reflects carrier (or not)
# We normally append the "@" symbol to the dialstring so
# the modem will wait 5 seconds before attempting to connect
# and return result codes that distinguish between no
# and no answer. This makes it possible to avoid problems
# repeatedly dialing a number that doesn't have a fax
# (kudos to Stuart Lynne for this trick.)
# NB: If you need to prefix phone numbers to get through a
# put it in the ModemDialCmd; e.g. "DT9%s@".
#ModemDialCmd: ATDT%s@ # T for tone
dialing, @ for silence
# Other possible configuration stuff. The default strings
# shown below. Only those that are different from the
# need to be included in the configuration file.
#ModemResetCmds: "" # stuff to
do when modem is reset
#ModemAnswerCmd: ATA # use this
to answer phone
ModemNoFlowCmd: AT&H0&I0&R1 # disable
flow control cmd
ModemHardFlowCmd: AT&H1&I0&R2 # hardware
flow control cmd
ModemSoftFlowCmd: AT&H2&I2&R1 # software
flow control cmd
#ModemNoAutoAnswerCmd: ATS0=0 # disable
ModemSetupAACmd: AT+FAA=1 # Adaptive answer
# Set modem speaker volume commands: OFF QUIET LOW MEDIUM
# Note that we both turn the speaker on/off and set volume.
#ModemSetVolumeCmd: "ATM0 ATL0M1 ATL1M1 ATL2M1 ATL3M1"
#ModemEchoOffCmd: ATE0 # disable command
#ModemVerboseResultsCmd: ATV1 # enable
verbose command results
ModemResultCodesCmd: ATQ0X4 # enable result
#ModemOnHookCmd: ATH0 # place phone on
#ModemSoftResetCmd: ATZ # do soft reset of
#ModemWaitTimeCmd: ATS7=60 # wait 60 seconds
#ModemCommaPauseTimeCmd: ATS8=2 # comma
pause time is 2 seconds
#ModemRecvFillOrder: LSB2MSB # bit order of
#ModemSendFillOrder: LSB2MSB # bit order modem
expects for transmit
# Configuration parameters for Class 2.0 modems.
Class2Cmd: AT+FCLASS=2.0 # command to enter
Class2BORCmd: AT+FBO=0 # bit order for
phase B/C/D (direct)
Class2CQCmd: "" # commands to enable
copy quality proc.
Class2AbortCmd: AT+FKS # abort session
Class2CQQueryCmd: !(0),(0) # dont query for
copy quality capabilities
Class2DCCQueryCmd: AT+FCC=? # query for modem
Class2TBCCmd: AT+FPP=0 # setup stream mode
Class2CRCmd: AT+FCR=1 # enable capability
Class2PHCTOCmd: AT+FCT=30 # set phase C
Class2BUGCmd: AT+FBU=0 # disable HDLC frame
Class2LIDCmd: AT+FLI # set local
Class2DCCCmd: AT+FCC # set modem
Class2DISCmd: AT+FIS # set session
Class2DDISCmd: "" # disable pre-dial
DIS command hack
Class2CIGCmd: AT+FPI # set polling
Class2NRCmd: AT+FNR=1,1,1,0 # setup status
Class2PIECmd: AT+FIE=0 # disable
Class2PTSCmd: AT+FPS # set post-page
Class2SPLCmd: AT+FSP # set polling
Class2NFLOCmd: AT+FLO=0 # set no flow
Class2SFLOCmd: AT+FLO=1 # set software flow
Class2HFLOCmd: AT+FLO=2 # set hardware flow
The changes made to create the file listed above were
inspired by the following:
The file /var/spool/fax/config/usr-2.0 provided values
The file /var/spool/fax/config/usr-2.0 seemed to
recommend an incorrect value for ModemSetVolumeCmd so I
did not use it.
The USR HylaFAX Page,
the value for Class2NRCmd. This page does not address the
newest V.90 modems but I did select this one parameter value
for my modem configuration.
This configuration gave me acceptable facsimile service.
I decided to use tkhylafax as my graphical user interface.
I downloaded the package from:
It installed and ran without any problems.
When I want to send or receive facsimiles I have to
start faxgetty as root. This is a bother.
I just don't see the bug in this dissertation??? It sounds like
Hylafax is looking for versions of libraries and ghostscript that
weren't in 5.2...
------- Email Received From Randal Leavitt <email@example.com> 05/30/99 21:50 -------