Hi All:

We are experimenting with X2go (very cool), but having a devil of a time 
getting printing to work.  This request for help is keying off of posts by John 
Sullivan and Mario Oroz (thanks so much for those, guys, e.g.,  see tread 
http://www.mail-archive.com/[email protected]/msg00104.html and 
http://www.mail-archive.com/[email protected]/msg00115.html). We are 
having pretty much the same problem as described there.  We are assuming that 
X2go printing in general can be made "to work" and that this is a matter of 
something we are doing wrong (maybe starting with the install?), some necessary 
"tweaks", etc.

We'd like to post this on the developer's list too to see if that's helpful.

We're hoping to get a number of questions answered, and have provided what may 
be "too much" description below:

Questions:
 
Q:  Did we miss something during the setup and installation process?

Q:  Our server does not have a /root/.x2go/ssh/.x2oprint/id_dsa" directory or 
id_dsa file - do these need to get created by hand?  In fact, our server does 
not have an "id_dsa" file anywhere on the machine.  If we need to add this, how 
does one do so (i.e., using the normal ssh key creation process)?  We have some 
other dsa files, but not one with the specific name id_dsa (i.e., can we use 
one of the existing ones in /etc/ssh?).

Q:  We assume X2goprint and cups-x2go perl scripts are part of this picture.  
We don't believe they are being called by the printing process - how would we 
tell?  If they are necessary but not getting called, thoughts as to why they 
are not getting invoked when we print and how to fix this?   

Q:  In testing (where we simulate what we imagine the printing process to be by 
doing each step manually) when we issue the .ready command, why does that only 
seems to work sometimes as judged by the x2go print client popping on the XP 
side?  Does that tell us something?

Q:  Should printing be putting jobs in "/" (is that normal)?  Does the 
x2goprint script know what to grab based on job#s?  We assume this all should 
work with multiple users and the x2goscript identifies which jobs to grab and 
put them individual user spool queues.

Q:  To work, should x2goprinting pass the print file from the server through 
the ssh connection to the client?  Is this in part an "ssh passing the file" 
problem?  We can connect through putty from the client to the server, and 
assume we have the keys correct because we can connect from XP to the Ubuntu 
server via x2go in the first place.  Back to the lack of an id_dsa file?  
Again, we're not sure that printing is invoking the right scripts to begin with.

Q:  Assuming we get this working, we also assume that on the 
Ghostview/Ghostscript side we shouldn't be having to put the name of the file 
in the command line, nor actually having to use the command line.  I.e., there 
is an option there to print that refers to whatever default printer we have set 
on the XP machine, but currently nothing happens if we use that particular 
option instead of the command line.

Q:  Should we be using Posgress instead of SQLite?  We are assuming that SQLite 
is fine until we want to deal with load balancing.

DESCRIPTION

We are connecting from XP machines using x2goclient to Ubuntu Server 9.10 
(connecting is pretty consistent, a few issues now and then but all in all it 
works well) over Comcast or Fios connection (DSL too slow).  We are using the 
X2go with SQLite, cups-x2togo and x2goprint; we have not installed any of the 
optional "bindings" packages.  We used visudo to add the line "x2goprint 
All=(ALL) NOPASSWD:  /usr/bin/x2goprint", and added an "x2goprinter" user by 
hand (that action also created an "x2goprinter" group to which we added our 
test user accounts).   We have tried uncommenting the settings to activate them 
in "/etc/cups/cups-x2go.conf" (even though we understand these settings to be 
used only for a separate cups server) with no change.  As noted above, our 
server does not have an id_dsa file and while we suspect that as being part of 
the problem we would have assumed that file would be created as part of the 
install pocess.

On the server, we have a minimal "Ubuntu Desktop" installed so we can use 
Firefox to browse from the server.  

We have GSview 4.9 and Ghostscript 9.02 installed on the XP clients.  We are 
trying to print to an older HP Laserjet 4000 shared out on local XP machine 
(this 2nd machine is not one connecting to the Ubuntu server, no X2go on it, no 
Ghostview or Ghostscript) and another HP color laser that is a network device.  
All printing behavior is the same regardless of which printer we try.

We are hoping outlining the following will help describe what we think is going 
on, and possible not working:

1)  On the 9.10 Ubunu server, we installed X2go printing.  If we go to 
System->Administration->Printing, we can see a "Generic-Cups-X2go-Printer" and 
it is active.  Its properties include a URI of "cups-x2go:/".   On the same 
Printer Configuration window, if we press Server->Connect the resulting Cups 
server is "/var/run/cups/cups.sock".  We are using a 64 bit machine, and can 
find two instances of the "cups-x2go" and maybe this is part of the problem 
(one is is /usr/lib64/cups/backend, the other in usr/lib/cups/backend)?

2)  If we print from the server, we briefly see a job get created both on the 
top (right) panel and if we are watching in the Print Configuration window.  
Jobs are stored in "/" and stay there until we delete or move them with names 
that follow the syntax "jobname-username-cupsjob#".  Their permissions are root 
as owner, lp as group, and no access for users.   For each print file, there is 
another cups file of some sort stored in "var/spool/cups" with names like 
"c00052".  This describes what occurs consistently.  The jobs get "printed" but 
nothing happens on the windows client side or on the printer.

3)  In troubleshoot this, we have tried manually changing the permissions on 
the print job files stored in "/" (so the current user is the owner, as well as 
leaving the group either as "lp" or trying "x2goprinter" to which our users 
belong or changing the group to the current user),  moving them into a dynamic 
spool folder that we believe gets generated dynamically after trying to print 
in each log in session.  We believe the spool folder directory is 
/tmp/spool_username/username-sessionID_stDGNOME_dp32.  We think this either 
gets created or we can make it accessible by manually issuing a "Mount" 
command.  We we manually move print jobs into this folder and from the command 
line issue echo "63-username-cupsjob####" >> 63-username-cupsjob####.ready 
where the #### are the actual numbers for the print job.  The permissions 
change when we move the file - owner becomes user 1006, group is 513 (thanks to 
John and Mario for providing this technique).

Sometimes we can see the .ready file in the dynamic spool folder, sometimes 
not.    Often but not always on the XP client side, we get the "Print - x2go 
client" window from the Ghost apps.  None of the settings work unless we use 
the command line option along the lines of ""C:\Program 
Files\Ghostgum\gsview\gsprint.exe" -query -color 71-username-cupsjob16907", in 
other words having to specifically name the print job in the command line.  

Occasionally (and this may be irrelevant but only when we try to print a test 
page, never a real document) something comes out the printer (but again, only 
if we use a test page).  Most often, we get a dos window with an error message 
"Last OS error:  No such file or directory  GPL Ghostscript 9.02:  
Unrecoverable error, exit code 1" so it sounds like this is an ssh issue where 
the file doesn't actually cross over, though it's puzzling then why we would 
ever have gotten a few print attempts to work.

In System Monitor, no new items seem to appear (x2goagent and x2goruncommand 
are sleeping), so as best we can tell the x2goprint and cups-x2go perl scripts 
aren't being called, but we're not sure.

When we tried to run the x2goprint script through a debugger, it quits early on 
on the elsif statement.

if (scalar(@ARGV) ==1)
{
     system ("su @ARGV[0] -c \"x2golistsessions --all-servers\" ");
}
elsif (scalar(@ARGV) != 4)
{
    print STDERR "ERROR: Usage:\nx2goprint user session file 
titleFile\nx2goprint user\n";
    exit 1;
}

We can't tell if this is because the script is supposed to be called from 
something else and the @ARGV is populated that way, but again we don't believe 
the script gets called by the Printing action.

Because the script appears to use "x2godbwrapper" in /usr/lib/x2go" we tried 
making that file execuable with no change. 

 

_______________________________________________
X2go-Dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev

Reply via email to