Hi, I was tired of CUPS so I decided keep it simple and stupid and use lpd/lpr. Strangely, things don't work out as expected. It seems that lpd never executes input filters.
Here is the content of /etc/printcap: lp|hl6050|Brother HL6050:\ :lp=:rm=hl6050.lan:\ :if=/home/jaj/bin/printbrother.sh:\ :sh: mg3150|canon|Canon MG3150:\ :lp=:rm=canon.lan:\ :if=/home/jaj/bin/printcanon.sh:\ :sh: Here is the content of printcanon.sh: #!/bin/sh logger "printcanon called $@" /usr/local/bin/a2ps -BRq --columns=1 -o - | \ /usr/local/bin/foomatic-rip -q -P Canon-PIXMA-MG3150 \ --ppd /home/jaj/bin/Canon-PIXMA-MG3150-ijs-simplified.ppd printbrother.sh is the same except for driver and ppd. Both scripts are executable. I never see the "printcanon called" message in syslog and the printers get incorrect data. The first printer understands a subset of postscript so it prints fine, the second printer however does not. If I run a document manually through the filter and the enqueue it to lpr, the printers are more than happy to print. I see no error nowhere. $ cat /var/log/lpd-errs Oct 25 07:47:01 asterix lpd[9652]: restarted Oct 25 14:57:06 asterix lpd[17953]: restarted $ cat /var/spool/output/lpd/status sending to hl6050.lan I went through the code of lpd to see where things could go wrong but it's a bit complex and I couldn't understand the bits. Does anybody know where I could look to solve this? Best regards, Jona