Filter debugging and requirements check script added, major instruction update
This commit is contained in:
parent
9613eab455
commit
03370b7088
51
INSTALL
51
INSTALL
|
@ -1,12 +1,53 @@
|
||||||
1) Install netpbm, JBIG-KIT tools, imagemagick, inotify-tools (optional)
|
First of all, you bought wrong printer :) This "driver" is not in
|
||||||
|
production state. It was only an expirement.
|
||||||
|
|
||||||
2) Copy pstoricohddst-gdi to cups' filters directory (usually
|
So, installation procedures:
|
||||||
|
|
||||||
|
1) Open terminal, execute `check-requirements` script, you should see, that
|
||||||
|
all required components are correctly installed and available.
|
||||||
|
|
||||||
|
2) Install unavailable components
|
||||||
|
|
||||||
|
3) Copy `pstoricohddst-gdi` to cups' filters directory (usually
|
||||||
/usr/lib/cups/filter).
|
/usr/lib/cups/filter).
|
||||||
|
|
||||||
3) Make sure it is executable by lp user and owned by root:root (i.e.
|
4) Make sure it is executable by lp user and owned by root:root (i.e.
|
||||||
chown root:root pstoricohddst-gdi)
|
chown root:root pstoricohddst-gdi)
|
||||||
|
|
||||||
4) Add printer through CUPS' web interface (usually
|
5) Add printer through CUPS' web interface (usually
|
||||||
http://localhost:631/), click 'Choose file' and select provided PPD-file
|
http://localhost:631/), click 'Choose file' and select provided PPD-file
|
||||||
|
|
||||||
5) Print!
|
6) Print!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If you have troubles with printing:
|
||||||
|
|
||||||
|
1) Open terminal, execute `check-requirements` script, copy the output.
|
||||||
|
|
||||||
|
2) Remove all /tmp/pstoricohddst-gdi* directories if found
|
||||||
|
|
||||||
|
3) Enable debug behavior by editing `/usr/lib/cups/filterpstoricohddst-gdi`
|
||||||
|
file (line 4)
|
||||||
|
|
||||||
|
4) Re-install printer in cups, make sure printing queue is clear
|
||||||
|
|
||||||
|
5) Send test page
|
||||||
|
|
||||||
|
6) Wait for 60 seconds
|
||||||
|
|
||||||
|
7) In terminal, become root and execute (without pound):
|
||||||
|
# grep 'pstoricohddst-gdi' /var/log/*log
|
||||||
|
and
|
||||||
|
# ls -la /tmp/pstoricohddst-gdi*
|
||||||
|
|
||||||
|
8) Copy whole output of previous commands
|
||||||
|
|
||||||
|
9) Log in to Github (or register if you're unregistered)
|
||||||
|
|
||||||
|
10) Open an issue (https://github.com/madlynx/ricoh-sp100/issues/new) with
|
||||||
|
problem description, add output of steps 1) and 6)
|
||||||
|
|
||||||
|
11) Wait... :) And never ever write me letters through e-mail (I never open
|
||||||
|
spam folder, but your mail will arrive there with 146% expectancy)
|
||||||
|
|
||||||
|
|
9
check-requirements
Executable file
9
check-requirements
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo -n "pbmtojbg [REQUIRED] : "; [ -x "$(which pbmtojbg)" ] && echo "Yes, version: $(pbmtojbg --help 2>&1 | head -1)" || echo "No"
|
||||||
|
echo -n "identify [REQUIRED] : "; [ -x "$(which identify)" ] && echo "Yes, version: $(identify -help | head -1)" || echo "No"
|
||||||
|
echo -n "Ghostscript [REQUIRED] : "; [ -x "$(which gs)" ] && echo "Yes, version: $(gs --version)" || echo "No"
|
||||||
|
echo -n "ps2write [REQUIRED] : "; [ -n "$(gs --help | grep ps2write)" ] && echo "Yes" || echo "No"
|
||||||
|
echo -n "pbmraw [REQUIRED] : "; [ -n "$(gs --help | grep pbmraw)" ] && echo "Yes" || echo "No"
|
||||||
|
echo -n "inotify-wait [optional] : "; [ -x "$(which inotifywait)" ] && echo "Yes, version: $(inotifywait --help | head -1)" || echo "No"
|
||||||
|
|
|
@ -1,18 +1,29 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Debug mode: change to 'yes' to enable
|
||||||
|
DEBUG=no
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
[ "${DEBUG}" = "yes" ] && echo $* | logger -t "$0[$$]"
|
||||||
|
}
|
||||||
|
|
||||||
|
function logpipe() {
|
||||||
|
[ "${DEBUG}" = "yes" ] && echo $* | logger -t "$0[$$]"
|
||||||
|
}
|
||||||
|
|
||||||
function trapINT() {
|
function trapINT() {
|
||||||
|
log "trapINT()"
|
||||||
[ "x$trp" = "x" ] && trp="yes" || return
|
[ "x$trp" = "x" ] && trp="yes" || return
|
||||||
sleep 30 && rm -rf $uid &
|
sleep 30 && { [ ! "${DEBUG}" = "yes" ] && rm -rf $uid; log "Cleanup complete"; } &
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
|
log "Stop stop page";
|
||||||
echo "stop" > $uid/999999999-page.pbm
|
echo "stop" > $uid/999999999-page.pbm
|
||||||
}
|
}
|
||||||
|
|
||||||
function log() {
|
log "Called with cmdline: $0 $*"
|
||||||
echo $* | logger -t pstoricohddst-gdi
|
|
||||||
}
|
|
||||||
|
|
||||||
trap "stop; trapINT" SIGINT SIGTERM SIGQUIT
|
trap "stop; trapINT" SIGINT SIGTERM SIGQUIT
|
||||||
#trap 'echo No' SIGINT SIGTERM SIGQUIT EXIT;
|
#trap 'echo No' SIGINT SIGTERM SIGQUIT EXIT;
|
||||||
|
@ -30,14 +41,15 @@ ddate="`LC_ALL=en_US.UTF-8 date '+%Y/%m/%d %H:%M:%S'`"
|
||||||
uid="/tmp/pstoricohddst-gdi-`uuidgen`"
|
uid="/tmp/pstoricohddst-gdi-`uuidgen`"
|
||||||
mkdir -p $uid
|
mkdir -p $uid
|
||||||
|
|
||||||
[ -x "/usr/bin/inotifywait" ] && {
|
[ -x "$(which inotifywait)" ] && {
|
||||||
|
log "Asynchronous variant"
|
||||||
|
|
||||||
(
|
(
|
||||||
stage="empty"
|
stage="empty"
|
||||||
inotifywait -q -m -r -e close_write --format '%f' $uid | grep --line-buffered 'page.pbm$' | while read page; do
|
inotifywait -q -m -r -e close_write --format '%f' $uid | grep --line-buffered 'page.pbm$' | while read page; do
|
||||||
# page submitted
|
log "Page submitted"
|
||||||
[ "$stage" = "empty" ] && {
|
[ "$stage" = "empty" ] && {
|
||||||
# Flushing PJL header
|
log "1st stage. Flushing PJL header"
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
%-12345X@PJL
|
%-12345X@PJL
|
||||||
@PJL SET TIMESTAMP=$ddate
|
@PJL SET TIMESTAMP=$ddate
|
||||||
|
@ -51,7 +63,7 @@ EOF
|
||||||
stage="printing"
|
stage="printing"
|
||||||
}
|
}
|
||||||
[ "$page" = "999999999-page.pbm" ] && {
|
[ "$page" = "999999999-page.pbm" ] && {
|
||||||
# Flushing PJL footer
|
log "Last stage. Flushing PJL footer"
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@PJL EOJ
|
@PJL EOJ
|
||||||
%-12345X
|
%-12345X
|
||||||
|
@ -83,7 +95,7 @@ EOF
|
||||||
@PJL SET IMAGELEN=$jsize
|
@PJL SET IMAGELEN=$jsize
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Flushing image
|
log "Flushing image $page"
|
||||||
cat $uid/raster.jbig
|
cat $uid/raster.jbig
|
||||||
|
|
||||||
# Flushing page footer
|
# Flushing page footer
|
||||||
|
@ -104,9 +116,12 @@ EOF
|
||||||
|
|
||||||
trapINT
|
trapINT
|
||||||
} || {
|
} || {
|
||||||
|
log "Synchronous variant"
|
||||||
|
|
||||||
# Converting from PostScript to PostScript-monochrome, then to PBM image format (per page)
|
# Converting from PostScript to PostScript-monochrome, then to PBM image format (per page)
|
||||||
|
log "Converting document to pages"
|
||||||
gs -sDEVICE=ps2write -sOutputFile=- -r600 -dQUIET -dBATCH -dNOPAUSE - | gs -sDEVICE=pbmraw -sOutputFile=${uid}/%03d-page.pbm -r600 -dQUIET -dBATCH -dNOPAUSE -
|
gs -sDEVICE=ps2write -sOutputFile=- -r600 -dQUIET -dBATCH -dNOPAUSE - | gs -sDEVICE=pbmraw -sOutputFile=${uid}/%03d-page.pbm -r600 -dQUIET -dBATCH -dNOPAUSE -
|
||||||
|
log "Conversion complete"
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
%-12345X@PJL
|
%-12345X@PJL
|
||||||
|
@ -120,6 +135,7 @@ EOF
|
||||||
|
|
||||||
for page in ${uid}/*-page.pbm; do
|
for page in ${uid}/*-page.pbm; do
|
||||||
|
|
||||||
|
log "Page $page"
|
||||||
# Converting page to JBIG format (parameters are very special for this printer!)
|
# Converting page to JBIG format (parameters are very special for this printer!)
|
||||||
pbmtojbg -p 72 -o 3 -m 0 -q < $page > $uid/raster.jbig
|
pbmtojbg -p 72 -o 3 -m 0 -q < $page > $uid/raster.jbig
|
||||||
|
|
||||||
|
@ -128,6 +144,7 @@ EOF
|
||||||
|
|
||||||
# Taking image dimensions
|
# Taking image dimensions
|
||||||
read fn ft xs ys garb < <(identify $page | tr "x" " ")
|
read fn ft xs ys garb < <(identify $page | tr "x" " ")
|
||||||
|
log "Identified as ${xs}x${ys}"
|
||||||
|
|
||||||
# Flushing page header
|
# Flushing page header
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
Loading…
Reference in a new issue