[FreeNX-kNX] printing
Alastair Johnson
alastair at solutiontrax.com
Tue Jan 24 19:49:11 UTC 2006
I _think_ I covered it all in the 'cups to cups print problem' thread, but
it's probably somewhat disjointed. The basic config is as below, though I
repeated the client end with a Knoppix 4.0 dvd which has a nomachine 1.4
client.
Client:
Gentoo i586
nomachine NX Client 1.5.0-135 from emerge
HP510 configured in CUPS, verified available to all on this and other subnets
without authentication (just for testing to make sure this isn't a source of
problems, and within firewall limitations)
Client configured for unix-kde desktop, ssl encryption of all traffic enabled,
CUPS printing on port 631 enabled and HP510 selected
Server:
FC3
http://fedoranews.org/contributors/rick_stout/freenx/freenx-0.4.4-1.fdr.0.noarch.rpm
http://fedoranews.org/contributors/rick_stout/freenx/nx-1.5.0-4.FC3.1.i386.rpm
node.conf has ENABLE_KDE_CUPS="1" set
The way I understand it's supposed to work for cups is this:
When you configure your NXClient you can select the local printer you wish the
session to print to. The client starts a cupsd session as the user, printing
to the printer(s) you selected via the main cups daemon on the client. It
listens on port 20000 or similar, but requires authentication using the
username and a password that looks random, using AuthType Digest. The port is
forwarded in the ssh tunnel to port 3000 or similar on the server. The client
makes an addprinter request to the server, detailing the printer to add, the
username, password and URL, and more. The server also starts a usermode cupsd
session listening on or around port 10000, and honors the addprinter request
by adding this printer to this cups session. It appears to ignore the
username and password however. To complete adding the printer it needs to
know which printer driver to use, and uses 'nxclient' on the server end to
show a dialog for selecting the printer driver. The server also temporarily
changes the kde configuration so that the print manager points to the local
usermode cupsd on port 10000 or wherever (it's actually the display port plus
9000, so varies with the number of connected sessions). Printing should then
flow from server kde process to server usermode cups through the tunnel to
the client usermode cups to the client main cups and finally to the printer.
Simple eh? ;-)
I think the complexity is needed because of the need to suppost smb printing
as well as cups, both at the client, and possibly when the server proxies an
rdp or vnc connection to a Windows machine. The cups on the server may
connect to an smb print share on both the client, and on the proxied
connection. The password protection on the client cupsd is needed to stop
other NX users having access to your printer through the forwarded port.
Bear in mind this is not authoritative - just the result of me poking around
trying to find out why it didn't work for me. Anyway I ran into a few
problems along the way, presented below more or less in the order I found
them.
The first problem is in the freenx nxnode script in function
cmd_node_addprinter() which handles the addprinter request from the client.
This has to determine the printer driver to use, so calls a script
confusingly called nxclient. This is NOT a client! It is meant to replicate
certain functions of the nomachine nxclient as used by the nxserver though,
such as allowing you to select a printer driver. For me this printer driver
selection never displayed however, so for testing I modified
cmd_node_addprinter() to bypass this for testing, hardwiring it to the driver
for my printer. Another option may be to install the nomachine client on the
server, since it seems the freenx nxclient script checks for the presence of
the nomachine client, and calls it if present. I've not tried that yet
though...
Next up the cups on my server seems incapable of printing. The logs suggest
installing esp ghostscript, which is already installed. I suspect it's either
a missing package or a permissions issue accessing the progs that do the
conversion to the printer format. Again for testing I bypassed this by
pointing the kde print manager direct to the forwarded port of the client's
cupsd. Do this in the Control center -> Peripherals -> Printers section,
follow the Print Manager -> Configure manager... dropdown, and pick the CUPS
Server option. Set the server to localhost and the port to the forwarded
port. This is most likely your display port (shown in the nxclient title bar,
usually round 1000) plus 2000. You can also set the username and password
here.
The username and password you need are in /var/log/nxserver.log if you set the
log level high enough (NX_LOG_LEVEL>4 I think) , and turn off the safe
logging (NX_LOG_SECURE=0) in /etc/nxserver/node.conf, since this will obscure
the password. Look for a line beginning:
NX> 105 addprinter
this will have the username and password for the session. Do I need to mention
this is generally a bad idea?
So far so good(?) except that the kde print manager appears unable to
authenticate using AuthType Digest. I've tried in from both Gentoo and
knoppix, and it fails every time. You can work around this by reconfiguring
the client userspace cupsd to use AuthType BasicDigest in
~/.nx/cups/cupsd.conf _while_the_session_is_active_ then getting the cupsd to
reread its config by using kill -hup on it. This MUST be while the session is
active because the client rewrites it at the start of every session, ad the
authtype appears hardcoded into the nxclient binary.
All except this last bit should be reasonably easy to fix on the server, and I
can't see how the authentication can be a universal problem. If it was the
nomachine nxclient would never be able to print. I haven't had the chance to
do any more than this yet. I hope this helps someone to get the printing
going.
Al
On Tuesday 24 January 2006 14:46, James wrote:
> Care to provide some details on your manual intervention? As things
> stand now, I have no printing ability at all via FreeNX.
>
> Thanks.
>
> Alastair Johnson wrote:
> > I believe this is _supposed_ to work seamlessly, but my experience with
> > linux to linux printing is that it doesn't with FreeNX (see thread 'cups
> > to cups print problem' for details). I have managed to get it going with
> > some manual intervention, so it may work. I haven't tried the nomachine
> > server yet though I would hope it just works.
> >
> > Good luck, and please post anything you find.
> >
> > Al
> >
> > On Monday 23 January 2006 09:57, David Obando wrote:
> > > Dear all,
> > >
> > > I use NX to access a WinXP application server (with RDP) from a Linux
> > > client. Is it possible to print from within the Windows applications on
> > > my local printer?
> > >
> > >
> > > Thanks and best regards,
> > > David
> >
> > _______________________________________________
> > FreeNX-kNX mailing list
> > FreeNX-kNX at kde.org
> > https://mail.kde.org/mailman/listinfo/freenx-knx
>
> _______________________________________________
> FreeNX-kNX mailing list
> FreeNX-kNX at kde.org
> https://mail.kde.org/mailman/listinfo/freenx-knx
More information about the FreeNX-kNX
mailing list