Code Monkey home page Code Monkey logo

cups-bjnp-os2's Introduction

This is the BJNP protocol backend for CUPS
It works with cups 1.2 - 1.7 (verified)

CUPS-BJNP can be compiled standalone (when the cups-devel package or your OS 
equivalent is installed, e.g. for Fedora install cups-devel).  

Cups-bjnp is included in a number of distributions so in most cases it is not
necessary to compile it yourself.

Compiling Cups-bjnp
===================

Compiling CUPS-BJNP is as simple as:
./configure --prefix=/usr 
make

In most cases configure will find the backend directory where cups stores its
 backends without help. If it does not, add the --with-cupsbackenddir=xxx
option to the configure comand line to point configure in the right direction.

Cups-bjnp works over IPv4 and IPv6 (since version 1.1)

For a first test type: ./bjnp 

This should return the printers uri assuming that you are on the same subnet, 
the printer is on, and there is no firewall blocking tcp/udp port 8611
See notes on firewall setup below.

For my MP970 bjnp returns:

[louis@travel backend]$ ./bjnp 
network bjnp://printer-1.pheasant:0 "Canon MP970 series" "bjnp printer-1.pheasant" 
"MFG:Canon;CMD:BJL,BJRaster3,BSCCe,NCCe,PLI;SOJ:TXT01,BJNP2;MDL:MP970 series;CLS:
PRINTER;DES:Canon MP970 series;VER:1.110;STA:10;FSI:03;HRI:OTH;MSI:DAT,E3;"

if this works, install the binary, as root type:  make install.
if you want to do this manually: copy (as root) bjnp into your cups backend
directory.

configure cups through the web frontend (https://localhost:631), e.g. try 
tab <administration> <find new printers>

Ink level reporting
===================
Cups-bjnp reports ink levels to CUPS during printing. Many GUI tools like the Gnome 
printer settings tools can show the current ink-levels and report warnings whwn ink 
levels get low. 

Debugging
=========
If you have problems, you may want to set the debugging level.

To debug printer detection you can set the environment variable BJNP_DEBUG
export BJNP_DEBUG_LEVEL=DEBUG2 (for sh or bash) or
setenv BJNP_DEBUG_LEVEL DEBUG2 (for csh or tcsh)

The filename can be set by setting BJNP_DEBUG_FILE in similar way.

To debug printing, you can add the debug level as part of the printer URI:
DeviceURI bjnp://printer-1.pheasant:8611/?debuglevel=DEBUG2 or
bnp:///printer-1.pheasant:8611/?debuglevel=DEBUG2+debugfile=./log to log to 
the file ./log. Normally this is not required as a logfile in the cups
log directory is used when no name is defined.

In both cases the debuglevel is set to one of the cups debuglevels (see cups 
documentation: http://www.cups.org/documentation.php/man-filter.html)

Debug information will be sent to the bjnp_log in your cups logging directory 
(e.g. /var/log/cups).  Debug files will become big, so the file is truncated 
at the start of each printjob.

If for whatever reason, opening of the logfile causes problems, you can force 
all debug output to be sent to the cups error_log by adding _toCups to the 
DeviceURI:
DeviceURI bjnp://printer-1.pheasant:8611/?debuglevel=DEBUG2_toCups

Firewalling
===========
Cups-bjnp communicates with port 8611 on the printer. So you will have to allow 
traffic TO port 8611 for printing.

Printer detection is slightly more complicated. (cups-bjnp sends a broadcast on
all subnets it can find. The broadast is sent FROM port 8611 to port 8611. The
outgoing packets will be allowed by the rule above. Responses from the printer
are sent back to the computer TO port 8611. Connection tracking however does not
see a match. You will therefore have to allow packets received TO port 8611 as well.

[email protected]

cups-bjnp-os2's People

Contributors

silvanscherrer avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.