Handbook:Basic Server Configuration:Modem-specific Guidance

Editor's note - this section is a great place for users to contribute modem-specific setup tips that can benefit others who might be struggling with the same problem(s)!

This section contains some setup-related issues that are dependent upon the modem and/or fax board you have selected. The information included here is by no means exhaustive; it reflects feedback and contributions from users accumulated over multiple HylaFAX versions and/or operating system releases.

Mainpine IQ Express
Unless you're using kernel 2.6.28 or later you'll have to patch the Linux kernel for this card to work. This section has been updated to include support for Mainpine's IQ Express Rev3 boards.

Here are the steps:

NOTE: If you're using kernel 2.6.24 or later, you don't need linux-2.6.9-55.EL-ifax1.patch.

Make sure you have all of the packages installed to build the kernel sources. yum -y groupinstall "Development Tools" yum -y install unifdef

Download and install the kernel source rpm for your current kernel. rpm -ivh http://mirror.centos.org/centos/5/updates/SRPMS/kernel-[...].src.rpm wget http://www.hylafax.org/images/1/1c/Mainpine-oxsemi.zip -O ~/Mainpine-oxsemi.zip

Download the kernel patch into the SOURCES directory. cd /usr/src/redhat/SOURCES

wget http://people.ifax.com/~aidan/mainpine/linux-2.6.9-55.EL-ifax1.patch unzip ~/Mainpine-oxsemi.zip

Update the kernel spec file to include the new patch.

cd ../SPECS/

vim kernel-2.6.spec

You must redefine the "dist" variable in order to distinguish the patched kernel from the standard kernel built for your distro: %define dist .el5ifax3

Around line 3407 add: Patch30000: linux-2.6.9-55.EL-ifax1.patch Patch30001: linux-oxsemi.patch Patch30002: linux-mainpineiqrev3.patch
 * 1) mainpine patch - iFAX

Around line 6734 add: %patch30000 -p1 %patch30001 -p1 %patch30002 -p1
 * 1) mainpine patch - iFAX

Save and exit.

Now build the new kernel with rpmbuild: rpmbuild -ba --target i686 kernel-2.6.spec

ls -l ../RPMS/i686

In your grub.conf, you must add the following to the end of your "kernel" line and reboot:

8250.nr_uarts=24 The 24 will enable 24 serial ports. If you're using a Mainpine IQ Express 4 Port board, enabling 8 ports should be enough to cover the onboard serial ports and those of the IQ Express board. To see how many ports are currently available and/or occupied try this: cat /proc/tty/driver/serial

To complete the configuration of this board with HylaFAX, do the following:


 * 1) If using HylaFAX 4.4 or older, copy the Mainpine IQ Express prototype file "mainpine-10" to /var/spool/hylafax/config/mainpine-10.  HylaFAX 6 already includes this file.
 * 2) Run faxaddmodem and specify "Class 1.0".

You should see that your modem is properly recognized now. When you're done configuring your modems, enable the faxgetty's in /etc/inittab like normal.

IQ Express "Rev3" boards
Mainpine has started shipping Rev3 versions of the IQ Express which require two additional kernel patches after the initial linux-2.6.9-55.EL-ifax1.patch. These patches are included in kernel 2.6.28 and later, but for earlier kernels the following patches are required:


 * 1) the "Oxsemi" patch
 * 2) the "Rev3" patch (which uses functions from the Oxsemi patch)

They can be downloaded here: mainpine-oxsemi.zip

The procedure to patch the kernel is identical to the procedure shown above. If you're using a pre-2.6.24 kernel, you'll need to apply the linux-2.6.9-55.EL-ifax1.patch shown above as well as the new patches. These new patches should be added to the kernel-2.6.spec after the linux-2.6.9-55.EL-ifax1.patch patch.

If you're patching kernel 2.6.24 or later, the above patch (linux-2.6.9-55.EL-ifax1.patch) is NOT required and these two new patches should be added more or less where the above patch is placed in kernel-2.6.spec in the procedure shown above. And remember, if you have kernel 2.6.28 or later you should not need any patches at all.

Mainpine Rockforce
Useful installation tips for getting the Rockforce Duo+, Quatro+ and Octo+ series fax boards working on linux can be found at http://www.mainpine.com/q_a_linux.html. The bottom line is that you need to configure the board manually on 2.4 kernels using setserial, and that kernel-2.6 distributions will, for the most part, auto-configure the board. To see what your kernel has done, type the following after a recent reboot:

dmesg | grep tty

RHEL4
A common problem on RHEL4 and RHEL4-derived distributions such as CentOS is that Red Hat only enables 4 "non-legacy 8250/16550 serial ports" which is what the Rockforce boards use. This becomes a problem for Octo+ users, because there's not enough serial devices available to complete the auto-configuration. The following procedure describes how to rebuild Red Hat's kernels with more serial ports for the Octo+.

First, retrieve the latest CentOS 4 kernel source update from a CentOS mirror site. (At the time of writing this web page, it was: kernel-2.6.9-34.EL.src.rpm)

Install the RPM by typing:

rpm -i kernel-2.6.9-34.EL.src.rpm

Make the kernel-source RPM:

cd /usr/src/redhat/SPECS vi kernel-2.6.spec edit line 59 (exact line may vary), and change buildsource to 1

If you have a minimal install, you may need to:

yum install rpm-build yum install gcc yum install redhat-rpm-config

rpmbuild -bb --target=noarch kernel-2.6.spec

(note we use noarch so we don't actually have to wait for compiles of all the kernels)

Note: The resulting kernel in /usr/src/redhat/RPMS/noarch is good for
 * any* config and could be saved and save building for future needs

Install the new kernel-source RPM:

cd /usr/src/redhat/RPMS/noarch rpm -i kernel-sourcecode-[...].rpm Note: You might need --nodeps if it asks for qt-devel and gtk2-devel

Now configure/build/install your new kernel:

cd /usr/src/linux-[version] cp configs/kernel-[version]-[architecture].config .config yum install ncurses-devel make menuconfig Navigate to Device Drivers -> Character devices -> Serial drivers Select "Maximum number of non-legacy 8250/16550 serial ports" and change to 12 Exit and save configuration make rpm rpm -i /usr/src/redhat/RPMS/[architecture(i386)]/kernel-[version]custom.[architecture].rpm

Create initial ram disk (substitute your new kernel version for the one given in the example):

mkinitrd /boot/initrd-2.6.9-34.ELcustom.img 2.6.9-34.ELcustom

Edit /etc/grub.conf

Add the following as the first kernel entry, substituting your new kernel version and ramdisk for the ones given in the example.

title CentOS (2.6.9-34.ELcustom) root (hd0,0) kernel /vmlinuz-2.6.9-34.ELcustom ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.9-34.ELcustom.img

Save grub.conf and reboot. There should now be enough serial ports available to use your Octo.

Fedora Core 6
With the latest Linux kernels, such as that packaged in Fedora Core 6, you only need to add this line in the /etc/grub.conf file:

8250.nr_uarts=8

(or how may you want to add)

Since it has support for 32 ports already, this makes it register those ports in the OS during the next boot.