Re: HOWTO: USB printers under Citrix ICA

Diego Torres Milano <[email protected]>
Newsgroups gmane.linux.pxes.devel
Message-ID <1067318174.13472.10.camel@zebra>
Thank you very much for the info.
I'm trying to include some of this in the next release.

On Mon, 2003-10-27 at 16:14, J C wrote:
    Hi All,
    
    I recently discovered PXES and it fits our operating environment perfectly! 
    We're
    deploying approximately 200 thin clients based on it. Thanks to all those 
    who've
    put all the hard work into it!
    
    Details of our setup are:
    
    Thin Client Hardware:
    Via Epia 5000 533Mhz mini-itx boards
    128MB of PC133 RAM
    
    Software:
    PXES 0.64-1
    Citrix ICA
    
    Ive been reading in the list that some have wondered how to get USB printers 
    going with
    PXES in Citrix ICA. We've recently needed this funcionality as well. I had 
    worked to get
    parallel port printers going under LTSP modified to run ICA prior to this 
    and I figured it
    wouldnt be that tough of an issue to resolve. Below is what i did to get USB 
    printers
    to function properly in PXES running Citrix. I went with a standard lpr/lpd 
    installation
    as this seemed simple and lightweight. Do these steps before running 
    pxesconfig.
    
    
    1. First I added the following files to the default install of PXES. I got 
    these files from an old lpr rpm from RedHat 7.2. Newer ones may work as 
    well.:
    /sbin/lpd
    /usr/bin/lpc
    
    These files are needed to run the lpr spooling software.
    
    
    2. Next i created the following directories
    /var/spool/printer
    /var/spool/lpd
    
    by adding the following lines to rcS (usually 
    /opt/pxes-0.6/stock/dist/etc/init.d/rcS):
    
    mkdir /tmp/var/spool/printer
    mkdir /tmp/var/spool/lpd
    
    
    3. You will need a 'printcap' file for the Citrix ICA client to recognize 
    printer
    functionality on your thin client. I used a very simple printcap file that 
    basically
    just acts as a shell(no logging, Generic/Text) so that Citrix can detect 
    that a printer
    is available. The appropriate driver for the printer can be chosen in the 
    Citrix Windows
    session. Here is my printcap file:
    
    #BOF
    lp|panasonic:\
    	:lp=/dev/usb/lp0:\
    	:lf=/dev/null:\
    	:sd=/var/spool/printer:\
    	:sh:
    
    #EOF
    
    ':lp' specifies the device used. In this case it's the usb 'lp0' device. 
    ':lf' specifies
    the log output which is being directed to /dev/null and the ':sd' specifies 
    the spool
    directory where the jobs will be stored before going to the printer. The 
    'printcap' file
    goes into your PXES /etc directory (/opt/pxes-0.6/dist/stock/etc).
    
    
    4. You need to modify your citrix wfclient.ini 
    (/root/.ICAClient/wfclient.ini) file
    to point towards our created printer. Add the following lines to your 
    wfclient.ini
    file under the [WFClient] section:
    
    DefaultPrinter=lp
    DefaultPrinterDriver=Generic / Text Only
    
    Make sure to have the DefaultPrinterDriver set to 'Generic / Text Only' 
    exactly as it
    appears (spaces included) so that Windows will have a default driver to work 
    with.
    
    
    5. Next you need to have the printer.o module loaded. Do this with:
    
    modprobe printer
    
    
    6. The lpd/lpc daemons will need to be started. Do the following commands to 
    start them (in
    this order):
    
    lpd
    lpc start all
    
    
    Of course these commands (5 and 6) can be put into your rcS file for 
    automatic execution
    when the client starts up. Added them to the end of the rcS file.
    
    Now you can run pxesconfig as normal and choose your specific settings. You 
    should *not*
    however enable 'Local Printer Support', that option is not needed for Citrix 
    ICA to use
    printers.
    
    Now a printer should show up when you add a new printer in your 
    Windows(Citrix) session
    on the thin client (Start->Settings->Printers->Add Printer->Nework 
    Printer->#ClientName).
    Make sure to change the default 'Generic/Text Only Printer' to a driver 
    appropriate
    for your printer. Now printing should work fine!
    
    Caveats:
    i) Ive hardcoded it for USB printers and as such regular LPT printers will 
    not work
    properly. I expect I will create a simple script that can detect the 
    presence of a USB or
    LPT printer.
    
    
    Hope this helps!
    
    Justin Chevrier
    
    _________________________________________________________________
    MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*.  
    http://join.msn.com/?page=features/virus
    
    
    
    -------------------------------------------------------
    This SF.net email is sponsored by: The SF.net Donation Program.
    Do you like what SourceForge.net is doing for the Open
    Source Community?  Make a contribution, and help us add new
    features and functionality. Click here: http://sourceforge.net/donate/
    _______________________________________________
    pxes-devel mailing list
    [email protected]
https://lists.sourceforge.net/lists/listinfo/pxes-devel
-- 
    ______  ________                                             
   /  /   \/  /___  )  I  N   T   E   G   R   A   C   I   O   N  
  /  /       /___  /   I  N   F   O   R   M   A   T   I   C   A  
 /__/__/\___/_____'    
 Diego Torres Milano   Maipu 42 Office 164  (1084) BA Argentina
 [email protected]      Tel: +5411 4331-2233      www.in3.com.ar



-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.