[Nottingham] Linux FAX a complete mess!

Martin martin at ml1.co.uk
Fri Feb 1 11:52:08 GMT 2008

Martin wrote:
> Phew!

Phew indeed! Well, I got it working, as far as it can be got working on
this laptop. It's now abandoned and I'm using an external modem instead.
Far too easy!

First, a spine breaking chill scream of Anguish and Pain and Despair...

Now to complete the story:

In brief, my experience of "softmodems" or "winmodems" has continued to
be teasingly negative. Whomever dreamt up the misbegotten faux-idea as a
'cost saving' instead merely dumped an abomination of very expensive
grief on the rest of the world!

The softmodem thing works for this laptop, and works as it should as
first set up, but it is too unreliable to be practical. And there are no
error messages to say there are any problems even though it doesn't work.

Using the SmartLink softmodem kernel module, you can send faxes fine,
and even at 14400 baud fine. However, _receiving_ faxes at 14400 baud
fails, and slowing this to 9600 gives a small chance of correct
decoding. I'm guessing that the 'soft' bit of the modem just can't cope.
It reports transmission errors or silently spews out all manner of other
random garbage even for a perfectly good clean telephone line. I suspect
that the slow memory and integrated graphics on the laptop don't help
the performance either.

The AT initialisation magic required to get the SmartLink module to
attempt anything is:

&F0 E0 S7=120 &C0 M2 L2 +MS=,1,,9600 &D2

and use:


for reset

That forces autonegotiation for up to 9600 baud max. A "Z0 " at the
beginning should be a good idea but there is a comment in an online
manual suggesting that everything else following that on a command line
will be ignored/lost.


A summary of SmartLink modems and drivers is given:

I'm now using an external modem connected via a good old trusty RS232
serial link. Selecting to use /dev/ttyS0 was the only setup required. It
just simply works.

The efax default initialisation of:

Z &FE&D2S7=120 &C0 M1L0

is fine.

If you wish to hear what's happening, then change the "M1L0" to "M2L2".

The M and L controls are:

Mn	Speaker Control

M0	Always off
M1	On until CONNECT
M2	Always on
M3	Off during dialing and receiving carrier, on during answering

Ln	Speaker Volume

L0	Off
L1	Low
L2	Medium
L3	High

There's still the following notes for how to hook that into printing-to-fax:

> Next... There is no /dev/modem created. Obscurely, a magical /dev/ttySL0
> appears instead. ...Just to confuse further from the expected
> /dev/ttyS0. The fix there is to do (as root):
> ln -s /dev/ttySL0 /dev/modem

If you wish to do the /dev/modem link, then use (as root):

ln -s /dev/ttyS0 /dev/modem

or ttyS1 or whatever as appropriate for whichever connection your modem
'plugs' into.

> or go into whatever fax program settings to instead explicitly set to
> use /dev/ttySL0


or whatever.

> And then, the magical final detail to understand is that you must
> communicate with that device using "HP JetDirect" and "RAW"
> formatting/protocol.
> Further details are given on:
> http://ubuntuforums.org/showthread.php?t=320534
> ####
> here's what you need to do:
>    1. Install and configure your modem using the wiki
> (https://help.ubuntu.com/community/DialupModemHowto).
>    2. Use Synaptic to install eFax-gtk.
>    3. Go to Administration -> Printing
>    4. Double-click New Printer.
>    5. Select network printer, HP JetDirect
>    6. Type 'localhost' in the Host box.
>    7. Set the port to 9900.
>    8. Click Forward.
>    9. Select 'Raw' as the printer manufacturer.
>   10. Click on 'queue' to select it and then click Forward.
>   11. Type 'eFax' in for the Name instead of queue.
>   12. Click Apply.
>   13. Go to Applications -> Office -> eFax-gtk.
>   14. Select 'Socket' as the fax entry method, then close eFax.
> ####
> A further useful snippet:
> ####
> the process using the CUPS printer utility at localhost:631. Setting up
> a CUPS printer using raw, port 9900, queue and localhost were the clues
> I needed. In the CUPS printer utility, that works out to:
> lpd://localhost:9900/queue
> That was the 'magic incantation' that I needed to get it to work.
> Leaving efax-gtk open when printing was also a big help. I wouldn't have
> known what to do otherwise.
> ####
> I actually set to use:
> socket://localhost:9900
> And yes, I'm also using efax-gtk to listen on socket 9900. You should
> also be ale to use any other fax utility such as kfax however you choose.

Note that you must have efax-gtk running first so that it is running and
listening on socket 9900.

"Standby" has efax active and listening to automatically pick up a call.

"Answer" is to have efax pick up while a line is ringing.

"Take over call" is for the modem to take over a call that you've
already answered.

> Meanwhile, the Mandriva 2008 hylafax setup appears broken or at best
> incomplete. Again, no useful error messages offered...

That's for another adventure!

I now see why the modem help howto is so large!

> And I thought this was meant to be better than a certain other OS!
> Hope that helps for any other fax setup victims!

And the moral of this story is:

If it's a "soft" modem, then just don't bother with it!


Martin Lomas
martin at ml1.co.uk

More information about the Nottingham mailing list