I had it working with Brother's driver version 1.0.2-0 then one day it quit working. Not sure why.
Anyhow, too much has now changed on the system to backtrace when it quit working.
I think it was probably due to a change to udev/libudev
In any event, the usb printer wasn't showing up in
Code: Select all
lpinfo -lvCode: Select all
cat /etc/udev/rules.d/42-brother-ql700.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="2042", ATTRS{serial}=="000J5Z413036", MODE="0664", GROUP="lp", SYMLINK+="usb/lp0"
Code: Select all
Device: uri = usb://Brother/QL-700?serial=000J5Z413036
class = direct
info = Brother QL-700
make-and-model = Brother QL-700
device-id = MFG:Brother;CMD:PT-CBP;MDL:QL-700;CLS:PRINTER;
location =
Code: Select all
Blog for various PTouch printers:
https://blog.philippklaus.de/2015/09/brother-p-touch-ql-500-bw/
Ubuntu for the QL-700
https://forum.ubuntuusers.de/topic/installation-brother-ql-700/#post-6642132
Arch Linux for the QL-710w
https://aur.archlinux.org/packages/brother-ql710w/
Gentoo Documentation Tips & Tricks for the QL-570:
https://aur.archlinux.org/packages/brother-ql710w/
Also, there was some work on opensource drivers
http://etc.nkadesign.com/Printers/QL550LabelPrinterCUPS
In particular, Arne John Glenstrup but his webpage (http://www.diku.dk/~panic/P-touch/) is now gone.
The Brother drivers for the PTouch QL-700 are packaged as rpm files.
The current version on Brother's website is 3.1.5-0
There are quite a few differences between 1.0.2-0 and 3.1.5-0
Code: Select all
apps /opt/brother/PTouch # diff -r ql700-1.0.2-0 ql700-3.1.5-0
Only in ql700-1.0.2-0/cupswrapper: brcupsconfpt1
Only in ql700-3.1.5-0/cupswrapper: brother_lpdwrapper_ql700
Only in ql700-3.1.5-0/cupswrapper: brother_ql700_printer_en.ppd
Only in ql700-3.1.5-0/cupswrapper: cupswrapperql700
Only in ql700-3.1.5-0/cupswrapper: cupswrapperql700.bak
Only in ql700-1.0.2-0/cupswrapper: cupswrapperql700pt1
Only in ql700-1.0.2-0/inf: brPrintListpt1
Only in ql700-1.0.2-0/inf: brql700init
diff -r ql700-1.0.2-0/inf/brql700rc ql700-3.1.5-0/inf/brql700rc
7,8c7,8
< Trimtape=OFF
< #Compress=OFF
---
> Trimtape=ON
> Compress=OFF
diff -r ql700-1.0.2-0/inf/ImagingArea ql700-3.1.5-0/inf/ImagingArea
1,38c1,40
< 17x54 : 4.32 8.4 43.92 144.24
< 17x87 : 4.32 8.4 43.92 237.84
< 23x23 : 4.32 8.4 60.96 56.88
< 29x42 : 4.32 8.4 77.76 110.64
< 29x90 : 4.32 8.4 77.76 246.24
< 38x90 : 4.32 8.4 103.44 246.24
< 39x48 : 4.32 8.4 106.32 127.20
< 52x29 : 4.32 8.4 143.04 73.44
< 60x86 : 4.32 8.4 165.6 234.96
< 62x29 : 4.32 8.4 171.36 73.44
< 62x100 : 4.32 8.4 171.36 274.56
< 12Dia : 5.76 5.76 28.32 28.32
< 24Dia : 5.76 5.76 62.4 62.4
< 58Dia : 8.4 8.4 156.72 156.72
< 12X1 : 4.32 8.4 29.76 275.06
< 29X1 : 4.32 8.4 77.76 275.06
< 38X1 : 4.32 8.4 103.44 275.04
< 50X1 : 4.32 8.4 137.28 274.8
< 54X1 : 5.76 8.4 147.36 275.04
< 62X1 : 4.32 8.4 171.36 274.06
< 12X2 : 4.32 8.4 55.20 275.06
< 29X2 : 4.32 8.4 151.20 275.06
< 38X2 : 4.32 8.4 202.56 275.04
< 50X2 : 4.32 8.4 270.24 274.8
< 54X2 : 5.76 8.4 288.96 275.04
< 62X2 : 4.32 8.4 338.40 275.06
< 12X3 : 4.32 8.4 80.64 275.06
< 29X3 : 4.32 8.4 224.64 275.06
< 38X3 : 4.32 8.4 301.68 275.04
< 50X3 : 4.32 8.4 403.2 274.8
< 54X3 : 5.76 8.4 430.56 275.04
< 62X3 : 4.32 8.4 505.44 275.06
< 12X4 : 4.32 8.4 106.80 275.06
< 29X4 : 4.32 8.4 298.08 275.06
< 38X4 : 4.32 8.4 400.80 275.04
< 50X4 : 4.32 8.4 536.16 274.8
< 54X4 : 5.76 8.4 572.16 275.04
< 62X4 : 4.32 8.4 672.48 275.06
---
> 17x54: 4.32 8.4 43.92 144.24
> 17x87: 4.32 8.4 43.92 237.84
> 23x23: 4.32 8.4 60.96 56.88
> 29x42: 4.32 8.4 77.76 110.64
> 29x90: 4.32 8.4 77.76 246.24
> 38x90: 4.32 8.4 103.44 246.24
> 39x48: 4.32 8.4 106.32 127.20
> 52x29: 4.32 8.4 143.04 73.44
> 54x29: 4.32 8.4 147.36 73.44
> 60x86: 4.32 8.4 165.6 234.96
> 62x29: 4.32 8.4 171.36 73.44
> 62x100: 4.32 8.4 171.36 274.56
> 12Dia: 5.76 5.76 28.32 28.32
> 24Dia: 5.76 5.76 62.4 62.4
> 58Dia: 8.4 8.4 156.72 156.72
> 12X1: 4.32 8.4 29.76 275.06
> 29X1: 4.32 8.4 77.76 275.06
> 38X1: 4.32 8.4 103.44 275.04
> 50X1: 4.32 8.4 137.28 274.8
> 54X1: 5.76 8.4 147.36 275.04
> 62X1: 4.32 8.4 171.36 274.06
> 12X2: 4.32 8.4 55.20 275.06
> 29X2: 4.32 8.4 151.20 275.06
> 38X2: 4.32 8.4 202.56 275.04
> 50X2: 4.32 8.4 270.24 274.8
> 54X2: 5.76 8.4 288.96 275.04
> 62X2: 4.32 8.4 338.40 275.06
> 12X3: 4.32 8.4 80.64 275.06
> 29X3: 4.32 8.4 224.64 275.06
> 38X3: 4.32 8.4 301.68 275.04
> 50X3: 4.32 8.4 403.2 274.8
> 54X3: 5.76 8.4 430.56 275.04
> 62X3: 4.32 8.4 505.44 275.06
> 12X4: 4.32 8.4 106.80 275.06
> 29X4: 4.32 8.4 298.08 275.06
> 38X4: 4.32 8.4 400.80 275.04
> 50X4: 4.32 8.4 536.16 274.8
> 54X4: 5.76 8.4 572.16 275.04
> 62X4: 4.32 8.4 672.48 275.06
>
Only in ql700-3.1.5-0/inf: paperinfql700
Only in ql700-1.0.2-0/inf: paperinfql700pt1
diff -r ql700-1.0.2-0/inf/setupPrintcappt1 ql700-3.1.5-0/inf/setupPrintcappt1
4c4
< # Copyright (C) 2003-2015 Brother. Industries, Ltd.
---
> # Copyright (C) 2003-2016 Brother. Industries, Ltd.
37c37
< chmod 700 $SPOOLER_NAME
---
> chmod u+rwx,g+rwX,o+rx-w $SPOOLER_NAME
49c49
< :if=/opt/brother/PTouch/${BRPRINTER_NAME}/lpd/filter$BRPRINTER_NAME:
---
> :if=/opt/brother/PTouch/${BRPRINTER_NAME}/lpd/filter_$BRPRINTER_NAME:
54c54
< cat ${PRINTCAP_NAME}.tmp | eval sed "/${BRPRINTER_NAME}:/,/filter$BRPRINTER_NAME:/d" > ${PRINTCAP_NAME}
---
> cat ${PRINTCAP_NAME}.tmp | eval sed "/${BRPRINTER_NAME}:/,/filter_$BRPRINTER_NAME:/d" > ${PRINTCAP_NAME}
Only in ql700-3.1.5-0: LICENSE_ENG.txt
Only in ql700-3.1.5-0: LICENSE_JPN.txt
Binary files ql700-1.0.2-0/lpd/brpapertoolcups and ql700-3.1.5-0/lpd/brpapertoolcups differ
Only in ql700-3.1.5-0/lpd: brpapertoollpr_ql700
Only in ql700-3.1.5-0/lpd: brprintconfpt1_ql700
Only in ql700-3.1.5-0/lpd: filter_ql700
Only in ql700-1.0.2-0/lpd: filterql700
Only in ql700-3.1.5-0/lpd: i686
Only in ql700-1.0.2-0/lpd: psconvertpt1
Binary files ql700-1.0.2-0/lpd/rastertobrpt1 and ql700-3.1.5-0/lpd/rastertobrpt1 differ
Only in ql700-3.1.5-0/lpd: x86_64
There's a perl file /usr/lib64/cups/filter/brother_lpdwrapper_ql700 -> /opt/brother/PTouch/ql700/cupswrapper/brother_lpdwrapper_ql700
in which I've enabled debugging:
Code: Select all
$LOGFILE="/tmp/br_cupswrapper_ink.log";
$LOGLEVEL=7;
$DEBUG=1;
$LOG_LATESTONLY=1;
$DEVICEURILOCK=1;
$LPD_DEBUG=0;
if ( $DEBUG > 0 ){
$LPD_DEBUG=2;
}
$width=-1;
$height=-1;
#my $basedir = Cwd::realpath ($0);
my $basedir = `readlink $0`;
if ( $basedir eq '' ){
$basedir = `realpath $0`;
}
chomp($basedir);
$basedir =~ s/$PRINTER\/cupswrapper\/.*$/$PRINTER\//g;
[.....]
my $cmdoptions=$ARGV[4];
my $PPD = $ENV{PPD};
my $PRINTER=$basedir;
my $CUPSINPUT='';
if ( @ARGV >= 6 ){
$CUPSINPUT=$ARGV[7];
}
$PRINTER =~ s/^\/opt\/.*\/PTouch\///g;
$PRINTER =~ s/\/cupswrapper//g;
$PRINTER =~ s/\///g;
for (my $i = 0 ; $i < @ARGV ; $i ++){
logprint( 0 , "ARG$i = $ARGV[$i]\n");
}
logprint( 0 , "PRINTER = $PRINTER \n");
Code: Select all
# cat /tmp/br_cupswrapper_ink.log
START
ARG0 = root
ARG1 = label.pdf
ARG2 = 1
ARG3 = finishings=3 number-up=1 job-uuid=urn:uuid:95f690e3-2090-3c22-7adc-e7a9c358d076 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1582816396 time-at-processing=1582816396 document-name-supplied=label.pdf
ARG4 =
ARG5 =
PRINTER = usrlib64cupsfilterbrother_lpdwrapper_ql700
PPD = /etc/cups/ppd/QL700.ppd
BASEPATH = /usr/lib64/cups/filter/brother_lpdwrapper_ql700
export PPD=/etc/cups/ppd/QL700.ppd
/usr/libexec/cups/filter/brother_lpdwrapper_ql700 "label.pdf" "1" "finishings=3 number-up=1 job-uuid=urn:uuid:95f690e3-2090-3c22-7adc-e7a9c358d076 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1582816396 time-at-processing=1582816396 document-name-supplied=label.pdf" "" "" ""
TEMPRC = /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
label1 =
value1 =
SET PPD OPTIONS
)cont <= 0 : (0
)cont <= * : (0
)cutlabel <= 1 : (1
)cutlabel <= * : (1
)brit <= 0 : (0
)brit <= * : (0
)feed <= 3 : (3
)feed <= * : (3
SET VENDOR COMMAND OPTIONS
SET PPD CMD OPTIONS
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -media 29x90 -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
-rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799b64cupsfilterbrother_lpdwrapper_ql700 -brit 0
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -cutend ON -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -mirro OFF -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
-rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799b64cupsfilterbrother_lpdwrapper_ql700 -cutlabel 1
-rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799b64cupsfilterbrother_lpdwrapper_ql700 -cont 0
-rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799b64cupsfilterbrother_lpdwrapper_ql700 -feed 3
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -trimtape ON -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -quality SPEED -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -half BrErrorDiffusion -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
brprintconfpt1_usrlib64cupsfilterbrother_lpdwrapper_ql700 -P usrlib64cupsfilterbrother_lpdwrapper_ql700 -compress OFF -rcfile /tmp/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc_28799
export BRPAPERWIDTH=-1
export BRPAPERHEIGHT=-1
export PPD=/etc/cups/ppd/QL700.ppd
export BRPRINTERRCFILE=/tmp/usrlib64cupsfilterbrother_lpdwrapper_ql700_latest_print_info
export LPD_DEBUG=2
export PS=1
cat /tmp/br_cupswrapper_ink_input.ps | /usr/lib64/cups/filter/brother_lpdwrapper_ql700/lpd/filter_usrlib64cupsfilterbrother_lpdwrapper_ql700 > /tmp/br_cupswrapper_ink_output.prn
cat > /tmp/br_cupswrapper_ink_input.ps && cat /tmp/br_cupswrapper_ink_input.ps |/usr/lib64/cups/filter/brother_lpdwrapper_ql700/lpd/filter_usrlib64cupsfilterbrother_lpdwrapper_ql700 > /tmp/br_cupswrapper_ink_output.prn
Code: Select all
# cat /tmp/br_cupswrapper_ink_lpderr
sh: /usr/lib64/cups/filter/brother_lpdwrapper_ql700/lpd/filter_usrlib64cupsfilterbrother_lpdwrapper_ql700: Not a directory
Code: Select all
!705
/usr/libexec/cups/filter/brother_lpdwrapper_ql700 "root" "label.pdf" "1" "finishings=3 number-up=1 job-uuid=urn:uuid:95f690e3-2090-3c22-7adc-e7a9c358d076 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1582816396 time-at-processing=1582816396 document-name-supplied=label.pdf" "" ""
cp: cannot stat '/usr/lib64/cups/filter/brother_lpdwrapper_ql700/inf/brusrlib64cupsfilterbrother_lpdwrapper_ql700rc': Not a directory
but then try 1.0.2-0 again as it once worked. Might work again now that I've got a PTouch rule in /etc/udev/rule.d/
Anyhow, would be grateful for any help getting either version 1.0.2-0 or 3.1.5-0 working.

