You are not logged in.
I often send faxes straight from my computer.
I have a Brother MFC printer, and on Debian-based distros, the easiest way to do this is with the brpcfax driver, which enables sending faxes by cli. But AFAIK this driver is not available for Arch, nor did I find it in AUR, and it is a bit above my comfort zone as an Arch newbie to try and compile it myself from a .deb or .rpm file.
Other things I tried:
1 Hylafax installed successfully, but I had trouble getting it to talk to my USB fax modem, although the modem has linux support.
2 Efax-gtk is available on AUR, but the build fails with errors.
I know faxing is like dinosaurs for many people ("Why don't you just use email?!"), but some people do still use it. My primary fax use is to assist an elder who doesn't touch digital devices, but he has a fax machine. So I fax him his incoming email, when it's important.
Last edited by shmu26 (2021-08-10 14:26:45)
Offline
time-machine?![]()
Brother MFC whatnumber?
Did you find https://aur.archlinux.org/packages/?O=0 … rother+fax
trouble getting it to talk to my USB fax modem
Because you lack the driver?
https://bbs.archlinux.org/viewtopic.php?id=57855
doesn't touch digital devices
![]()
Soimsureheusesananaloguemechanicalfaxprinterforsure…
Offline
time-machine?
Brother MFC whatnumber?
Did you find https://aur.archlinux.org/packages/?O=0 … rother+fax[
Thanks
I have MFC-L2710DW
but I will try the driver you linked, who knows, maybe it works.
Okay, I installed it through yay. Any idea how to add a fax driver in Xfce? It did not add itself automatically.
Last edited by shmu26 (2021-08-06 07:27:12)
Offline
http://localhost:631 ?
In order to get hylafax/efax going you must be able to talk to the modem, eg. w/ minicom.
Offline
http://localhost:631 ?
In order to get hylafax/efax going you must be able to talk to the modem, eg. w/ minicom.
"lsusb" shows my modem as
Bus 001 Device 005: ID 0baf:0303 U.S. Robotics USR5637 56K Faxmodem"usb-devices" shows
Bus=01 Lev=01 Prnt=01 Port=06 Cnt=04 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=02(commc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0baf ProdID=0303 Rev=02.00
S: Manufacturer=U.S.Robotics
S: Product=USB Modem
S: SerialNumber=0000002
C: #Ifs= 2 Cfg#= 2 Atr=80 MxPwr=360mA
I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=usbfs
I: If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=usbfsAFAIK usb fax modems are supposed to be found in "ttyACM0"
But running faxsetup as root runs into this issue:
You do not appear to have any modems configured for use. Modems are
configured for use with HylaFAX with the faxaddmodem(8C) command.
Do you want to run faxaddmodem to configure a modem [yes]? y
Serial port that modem is connected to []? ttyACM0
/dev/ttyACM0 is not a terminal device.Last edited by shmu26 (2021-08-06 08:29:03)
Offline
https://rfc1149.net/blog/2013/03/05/wha … evttyacmx/
unplug the modem, run "dmesg -w", plug the modem and post the output - the device descriptors don't mean you get a modem device, let alone under which ode.
Offline
https://rfc1149.net/blog/2013/03/05/wha … evttyacmx/
unplug the modem, run "dmesg -w", plug the modem and post the output - the device descriptors don't mean you get a modem device, let alone under which ode.
Hey, thanks for your help! I will get back to this, probably over the weekend.
Offline
So after unplugging and replugging the device, and running dmesg, I got this:
audit: type=1106 audit(1628404433.820:120): pid=4777 uid=1000 auid=1000 ses=2 msg='op=PAM:session_close grantors=pam_limits,pam_unix,pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 6195.288110] audit: type=1104 audit(1628404433.820:121): pid=4777 uid=1000 auid=1000 ses=2 msg='op=PAM:setcred grantors=pam_faillock,pam_permit,pam_faillock acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 6221.568869] usb 1-8: new high-speed USB device number 11 using xhci_hcd
[ 6221.886155] usb 1-8: New USB device found, idVendor=0baf, idProduct=0303, bcdDevice= 2.00
[ 6221.886167] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=10
[ 6221.886173] usb 1-8: Product: USB Modem
[ 6221.886177] usb 1-8: Manufacturer: U.S.Robotics
[ 6221.886180] usb 1-8: SerialNumber: 0000002
[ 6221.889766] cdc_acm 1-8:2.0: ttyACM0: USB ACM device
[ 6227.531844] audit: type=1101 audit(1628404466.064:122): pid=4850 uid=1000 auid=1000 ses=2 msg='op=PAM:accounting grantors=pam_unix,pam_permit,pam_time acct="shmuel" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 6227.532244] audit: type=1110 audit(1628404466.067:123): pid=4850 uid=1000 auid=1000 ses=2 msg='op=PAM:setcred grantors=pam_faillock,pam_permit,pam_env,pam_faillock acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 6227.533729] audit: type=1105 audit(1628404466.067:124): pid=4850 uid=1000 auid=1000 ses=2 msg='op=PAM:session_open grantors=pam_limits,pam_unix,pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'Last edited by shmu26 (2021-08-08 06:38:55)
Offline
Nope, is registered as an ACM at /dev/ttyACM0
stat /dev/ttyACM0
getfacl /dev/ttyACM0Did you run faxsetup as root/sudo?
There seem to be more issues w/ this device and the hylafax config
https://ubuntuforums.org/showthread.php?t=1000730
https://legacy.hylafax.org/archive/2008-12/msg00180.php
https://forum-raspberrypi.de/forum/thre … post289760 (german, promotes similar config for the modem)
Offline
So running those commands I get
stat /dev/ttyACM0
File: /dev/ttyACM0
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 5h/5d Inode: 606 Links: 1 Device type: a6,0
Access: (0660/crw-rw----) Uid: ( 0/ root) Gid: ( 986/ uucp)
Access: 2021-08-08 10:04:06.029862869 +0300
Modify: 2021-08-08 10:04:06.029862869 +0300
Change: 2021-08-08 10:04:06.029862869 +0300
Birth: -
shmuel@shmuel-arch ~> getfacl /dev/ttyACM0
getfacl: Removing leading '/' from absolute path names
# file: dev/ttyACM0
# owner: root
# group: uucp
user::rw-
group::rw-
other::---Offline
Device is there and a char device, but you must be root or in the uucp group to access it.
Did you run faxsetup as root/sudo?
Offline
Device is there and a char device, but you must be root or in the uucp group to access it.
seth wrote:Did you run faxsetup as root/sudo?
Okay so I ran faxsetup as sudo. I am sure I did so before, but this time I got much farther ![]()
It looks like it connected with the modem this time. I am still confused about longdistanceprefix and international prefix. When I dial international, I prefix the number with 013. But I have no longdistance prefix in my country (Israel). How to edit the config accordingly?
Also, it says I did not configure faxgetty. How to do that?
The non-default server configuration parameters are:
CountryCode: 972
AreaCode: 2
FAXNumber: 97226562685
LongDistancePrefix: 1
InternationalPrefix: 011
DialStringRules: etc/dialrules
SessionTracing: 11
RingsBeforeAnswer: 10
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: no
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25
Are these ok [yes]?
Now we are going to probe the tty port to figure out the type
of modem that is attached. This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).
Probing for best speed to talk to modem: 38400
OK.
About fax classes:
The difference between fax classes has to do with how HylaFAX interacts
with the modem and the fax protocol features that are used when sending
or receiving faxes. One class isn't inherently better than another;
however, one probably will suit a user's needs better than others.
Class 1 relies on HylaFAX to perform the bulk of the fax protocol.
Class 2 relies on the modem to perform the bulk of the fax protocol.
Class 2.0 is similar to Class 2 but may include more features.
Class 1.0 is similar to Class 1 but may add V.34-fax capability.
Class 2.1 is similar to Class 2.0 but adds V.34-fax capability.
HylaFAX generally will have more features when using Class 1/1.0 than
when using most modems' Class 2 or Class 2.0 implementations. Generally
any problems encountered in Class 1/1.0 can be resolved by modifications
to HylaFAX, but usually any problems encountered in Class 2/2.0/2.1 will
require the modem manufacturer to resolve it.
Use Class 1 unless you have a good reason not to.
Hmm, this looks like a Class 1 modem.
Product code (ATI0) is "5601".
Other information (ATI3) is "U.S. Robotics 56K FAX USB V1.2.23".
DTE-DCE flow control scheme [default]? Modem manufacturer is "3Com U. S. Robotics".
Modem model is "3CP5610".
Using prototype configuration file usr-xon...
The modem configuration parameters are:
ModemAnswerCmd: AT+FCLASS=1A
ModemFlowControl: xonxoff
ModemHardFlowCmd: AT&H1&I0&R2
ModemMfrQueryCmd: !USR
ModemModelQueryCmd: ATI3
ModemNoFlowCmd: AT&H0&I0&R1
ModemRate: 19200
ModemResultCodesCmd: ATQ0X4
ModemRevQueryCmd: ATI7
ModemSetupAACmd: AT+FCLASS=0
ModemSetupDCDCmd: AT&C1
ModemSetupDTRCmd: ATS13=1&D2
ModemSoftFlowCmd: AT&H2&I2&R1
Class1NFLOCmd: AT&H0&I0&R1
Class1HFLOCmd: AT&H1&I0&R2
Class1SFLOCmd: ""
Class1ResponseWaitCmd: AT+FRS=1
Class1SwitchingCmd: "<delay\0727>"
Are these ok [yes]?
Creating new configuration file /var/spool/hylafax/etc/config.ttyACM0...
...saving current file as /var/spool/hylafax/etc/config.ttyACM0.sav.
Done setting up the modem configuration.
Checking /var/spool/hylafax/etc/config for consistency...
...everything looks ok; leaving existing file unchanged.
Don't forget to run faxmodem(8C) (if you have a send-only environment)
or configure init to run faxgetty on ttyACM0.
Do you want to run faxaddmodem to configure another modem [yes]? no
You do not appear to be using faxgetty to notify the HylaFAX scheduler
about new modems and/or their status. This means that you must use the
faxmodem program to inform the new faxq process about the modems you
want to have scheduled by HylaFAX. Beware that if you have modems that
require non-default capabilities specified to faxmodem then you should
read faxmodem(8C) manual page and do this work yourself (since this
script is not intelligent enough to automatically figure out the modem
capabilities and supply the appropriate arguments).
Should I run faxmodem for each configured modem [yes]? yes
/usr/bin/faxmodem ttyACM0
Done verifying system setup.Offline
Ahem, I think I know why the configuration failed the first time. It's because I had sent a fax via my virtual machine, and the virtual machine grabbed the usb modem. ![]()
Offline
I tried sending a fax. At first, hylafax wasn't running, so I started it with "sudo hylafax start"
The fax looks like it might be queued, but it doesn't actually send.
sendfax -d "0774701585" /mnt/4C74491474490266/Users/Shmuel/Downloads/FAX/*
Can not reach service hylafax at host "localhost".
shmuel@shmuel-arch ~ [255]> sudo hylafax start
[sudo] password for shmuel:
HylaFAX: faxq hfaxd (without SNPP support).
shmuel@shmuel-arch ~> sendfax -d "0774701585" /mnt/4C74491474490266/Users/Shmuel/Downloads/FAX/*
request id is 4 (group id 4) for host localhost (1 file)Offline
You only need faxgetty if you want to receive fax, what doesn't seem your usecase (likewise the prefixes should™ be irrelevant)
Instead of running hylafax directly, you probably want to systemctl start/enable hylafaxd
The modem can likely not be controlled by the configured sequences (&I and &R), see the links I posted earlier, adjust the config, restart hylafax and try again.
Offline
Where's the config file?
Offline
/etc/hylafax/ ?
Offline
/etc/hylafax/ ?
That's indeed what the documentation says, but it ain't there on my system.
So I ran faxsetup again, because it reveals the storage location. On my system the config file is
/var/spool/hylafax/etc/config.ttyACM0
Offline
There seem to be more issues w/ this device and the hylafax config
https://ubuntuforums.org/showthread.php?t=1000730
https://legacy.hylafax.org/archive/2008-12/msg00180.php
https://forum-raspberrypi.de/forum/thre … post289760 (german, promotes similar config for the modem)
I tried editing the config file as suggested. It still did not work. I saw a couple posts about changing permissions for the hylafax directory. I tried that, and still no good.
So now I am trying with Hylafaxplus, which is a new and improved version, and is available on AUR.
But I ran into an issue with the build, because it wants an older version of libtiff: 3.4 through
4.0. But I have libtiff-4.3.0-1 which is the up-to-date arch version.
Please let me know if and what I can do about this.
... checking TIFF library version
Found tiffio.h version 20210416
Found libtiff version 4.3
Incompatible TIFF Library.
HylaFAX 7.0.3 requires TIFF software distribution versions 3.4 through
4.0. If you do not have up to date TIFF software on your system
then you can retrieve it from the location where you obtained this software.
The Home Page for version 3.5 and later is http://www.remotesensing.org/libtiff/
Unrecoverable error! Once you've corrected the problem rerun this script.
... checking PAM library version
==> ERROR: A failure occurred in build().
/usr/share/makepkg/util/message.sh: line 51: QUIET: unbound variable
/usr/bin/makepkg: line 131: logpipe: unbound variable
error making: hylafaxplusOffline
There's actually a comment on the AUR, linking a hylafax mailing list entry from 2016… given that and the age of the package (2013) i'd not hold my breath for it to somehow better deal w/ your modem.
It still did not workThat's not a usable eror description, try "sendfax -vv …" for maximum verbosity.
Do you think you could convince the elderly person that tablets are actually steampowered smartphones?
Offline
There's actually a comment on the AUR, linking a hylafax mailing list entry from 2016… given that and the age of the package (2013) i'd not hold my breath for it to somehow better deal w/ your modem.
It still did not workThat's not a usable eror description, try "sendfax -vv …" for maximum verbosity.
Do you think you could convince the elderly person that tablets are actually steampowered smartphones?
Hylafaxplus has been around for a long time but the current version is not so old: Aug 4 2020: Announcing HylaFAX+ 7.0.3 release
https://hylafax.sourceforge.io/
It has a new modem prober and I think it's worth a try. More likely to succeed than convincing my elder to use a tablet
he has only a dumbphone.
Offline
See http://git.hylafax.org/HylaFAX?a=log;h=HYLAFAX-6_0_7 which is the version Arch is using rather than the fork https://hylafax.sourceforge.io/about.php
Offline
This is the tiff checking code in hylafax+ current trunk version
#
# Check if TIFF library is compatible. If successful,
# set $tiff_runlen_t on exit to "uint16_t" or "uint32_t"
# and $tiff_offset_t to "uint32_t" or "uint64_t".
#
CheckLibtiff()
{
Note "... checking TIFF library version"
tiff_runlen_t=""
tiff_offset_t=""
cat>t.c<<EOF
#include <stdlib.h>
#include <stdio.h>
#include "tiffio.h"
int main(int argc, char *argv[])
{
printf( "header_ver=%d lib_ver=%s", TIFFLIB_VERSION, TIFFGetVersion() );
exit(0);
}
EOF
capture cat t.c
if runMake t "t:; \${CC} \${CVERSION} ${OTIFFINC} t.c ${LIBTIFF} ${MACHDEPLIBS}"; then
header_ver=0
lib_ver=""
eval `./a.out | \
sed -n -e 's/header_ver=\([0-9][0-9]*\) lib_ver=.*Version *\([0-9][0-9]*\.[0-9]\).*/\
header_ver=\1;lib_ver=\2/p'`
Note " Found tiffio.h version ${header_ver}"
Note " Found libtiff version ${lib_ver}"
if [ ${header_ver} -ge 19960307 ]; then
case ${lib_ver} in
3.4) tiff_runlen_t="uint16_t"
tiff_offset_t="uint32_t"
echo '#define TIFFSTRIPBYTECOUNTS uint32_t'
echo '#define TIFFVERSION TIFF_VERSION'
echo '#define TIFFHEADER TIFFHeader';;
3.[56789]) tiff_runlen_t="uint32_t"
tiff_offset_t="uint32_t"
echo '#define TIFFSTRIPBYTECOUNTS uint32_t'
echo '#define TIFFVERSION TIFF_VERSION'
echo '#define TIFFHEADER TIFFHeader';;
4.[0123]) tiff_runlen_t="uint32_t"
tiff_offset_t="uint64_t"
echo '#define TIFFSTRIPBYTECOUNTS uint64_t'
echo '#define TIFFVERSION TIFF_VERSION_CLASSIC'
echo '#define TIFFHEADER TIFFHeaderClassic';;
esac
fi
else
cat 1>&2 <<EOF
Missing TIFF Library.
Compilation of the following test program failed:
----------------------------------------------------------
EOF
cat t.c 1>&2
cat 1>&2 <<EOF
----------------------------------------------------------
TIFFINC=${OTIFFINC}
LIBTIFF=${LIBTIFF}
Verify that you have the TIFFINC and LIBTIFF configuration parameters
set correctly for your system (see above) and that any environment
variables are setup that are needed to locate a libtiff DSO at runtime
(e.g. LD_LIBRARY_PATH). Also be sure that any relative pathnames are
made relative to the top of the build area.
EOF
boom
return 1
fi
if [ "${tiff_runlen_t}" != "" ] && [ "${tiff_offset_t}" != "" ]; then
export tiff_runlen_t
export tiff_offset_t
return 0
else
cat 1>&2 <<EOF
Incompatible TIFF Library.
HylaFAX ${VERSION} requires TIFF software distribution versions 3.4 through
4.0. If you do not have up to date TIFF software on your system
then you can retrieve it from the location where you obtained this software.
The Home Page for version 3.5 and later is http://www.remotesensing.org/libtiff/
EOF
boom
return 1
fi
}and afaics it should™ work.
=> Check your configure script, I assume it's lacking
4.[0123])
Offline
This is the tiff checking code in hylafax+ current trunk version
# # Check if TIFF library is compatible. If successful, # set $tiff_runlen_t on exit to "uint16_t" or "uint32_t" # and $tiff_offset_t to "uint32_t" or "uint64_t". # CheckLibtiff() { Note "... checking TIFF library version" tiff_runlen_t="" tiff_offset_t="" cat>t.c<<EOF #include <stdlib.h> #include <stdio.h> #include "tiffio.h" int main(int argc, char *argv[]) { printf( "header_ver=%d lib_ver=%s", TIFFLIB_VERSION, TIFFGetVersion() ); exit(0); } EOF capture cat t.c if runMake t "t:; \${CC} \${CVERSION} ${OTIFFINC} t.c ${LIBTIFF} ${MACHDEPLIBS}"; then header_ver=0 lib_ver="" eval `./a.out | \ sed -n -e 's/header_ver=\([0-9][0-9]*\) lib_ver=.*Version *\([0-9][0-9]*\.[0-9]\).*/\ header_ver=\1;lib_ver=\2/p'` Note " Found tiffio.h version ${header_ver}" Note " Found libtiff version ${lib_ver}" if [ ${header_ver} -ge 19960307 ]; then case ${lib_ver} in 3.4) tiff_runlen_t="uint16_t" tiff_offset_t="uint32_t" echo '#define TIFFSTRIPBYTECOUNTS uint32_t' echo '#define TIFFVERSION TIFF_VERSION' echo '#define TIFFHEADER TIFFHeader';; 3.[56789]) tiff_runlen_t="uint32_t" tiff_offset_t="uint32_t" echo '#define TIFFSTRIPBYTECOUNTS uint32_t' echo '#define TIFFVERSION TIFF_VERSION' echo '#define TIFFHEADER TIFFHeader';; 4.[0123]) tiff_runlen_t="uint32_t" tiff_offset_t="uint64_t" echo '#define TIFFSTRIPBYTECOUNTS uint64_t' echo '#define TIFFVERSION TIFF_VERSION_CLASSIC' echo '#define TIFFHEADER TIFFHeaderClassic';; esac fi else cat 1>&2 <<EOF Missing TIFF Library. Compilation of the following test program failed: ---------------------------------------------------------- EOF cat t.c 1>&2 cat 1>&2 <<EOF ---------------------------------------------------------- TIFFINC=${OTIFFINC} LIBTIFF=${LIBTIFF} Verify that you have the TIFFINC and LIBTIFF configuration parameters set correctly for your system (see above) and that any environment variables are setup that are needed to locate a libtiff DSO at runtime (e.g. LD_LIBRARY_PATH). Also be sure that any relative pathnames are made relative to the top of the build area. EOF boom return 1 fi if [ "${tiff_runlen_t}" != "" ] && [ "${tiff_offset_t}" != "" ]; then export tiff_runlen_t export tiff_offset_t return 0 else cat 1>&2 <<EOF Incompatible TIFF Library. HylaFAX ${VERSION} requires TIFF software distribution versions 3.4 through 4.0. If you do not have up to date TIFF software on your system then you can retrieve it from the location where you obtained this software. The Home Page for version 3.5 and later is http://www.remotesensing.org/libtiff/ EOF boom return 1 fi }and afaics it should™ work.
=> Check your configure script, I assume it's lacking
4.[0123])
It works.
Unfortunately for me, you were also right when you said that it is unlikely that hylafaxplus from AUR will work better for me than hylafax from Arch repo.
When I try to send a fax, it doesn't actually get sent, although the service seems to be running and the command seems to work.
shmuel@shmuel-arch ~> faxstat
HylaFAX scheduler on shmuel-arch: Running
shmuel@shmuel-arch ~> sendfax -d "0774701585" /mnt/4C74491474490266/Users/Shmuel/Downloads/FAX/*
request id is 6 (group id 6) for host localhost (1 file)Offline
try "sendfax -vv …" for maximum verbosity.
Offline