HOWTO: USB printers under Citrix ICA
"J C" <[email protected]>
| Newsgroups | gmane.linux.pxes.devel |
|---|---|
| Message-ID | <[email protected]> |
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/