Saturday, September 13, 2008

Geeky Repair - Windows to Linux Printing

I finally found time to dig in and setup my Epson R260 printer for remote wireless printing from my Windows laptop. The printer is attached to a Linux machine, and setup was pretty straightforward (I think it was automaticlly detected) with the CUPS (Common Unix Printing System) to handle the print jobs. Everytime I wanted to print someting from my laptop, I had to unplug the USB cable and plug it into the laptop USB port. Just yesterday, I managed to set it up so that I could access the CUPS server from my laptop, so I could send the print job over Wi-Fi. It was easy, once I found this article on the web:,289483,sid39_gci1250451,00.html

Below are the high level steps
  1. Make sure the printer is setup on the linux machine, and is able to print using CUPS.
  2. Open the CUPS service to be accessible from other computers. Here is how to do this: Invoke the browser, and type http://localhost:631. You should see the CUPS service page. Note the printer name, and change settings for that printer to share on other computers, and enable remote configuration (you should see check boxes for this).
  3. Once you share, you should be able to type http://hostname:631 (hostname can be found by typing hostname command in a xterm window) and access the same CUPS service page. Or, in case DNS is not setup, you should be able to type an IP address in lieu of host name (e.g. http://192.1628.1.5:631) and get the CUPS page. (Type hostname -i to get this IP address). Be sure you use the WiFi interface IP address (or the Ethernet interface IP address, as appropriate).
  4. CUPS listens on port 631, so the goal here is to open 631 across all firewalls. Invoke the Firewall on both Linux and Windows computers, and open up port 631. You may also have to do this step on your wireless router. Be sure to open up only to internal network, and not externally to the world.
  5. Now, go to your Windows computer, and try accessing the CUPS printer. You can first try using the browser as in step 3, and then add it as a network printer using the Control Panel, Add Network Printer option. In my case, the network printer URL is something like It is hard coded to the IP address, but it will work as long as the wireless router keeps the linux machine assigned to that IP.
You should now be able to print from your windows computer to this networked printer.

No comments: