How to print from Linux machines to Windows printers over Wireless - Tutorial

Updated: June 10, 2009

The title definitely sounds delicious. And you must be thinking this is going to be difficult. Not at all. As simple, if not simpler, than doing it in Windows. Yup, Linux has advanced that much in being friendly and usable. Don't believe me? Read on and get convinced.

Task at hand

We have a multi-host network (LAN), with a Lexmark printer connected to a Windows XP machine. We have several Linux machines (including Ubuntu) that need to print to this host. They have no direct connection, but they share the same Wireless router. To make it all all the spicier, the Lexmark printer has no drivers for Linux.

You may think this is going to be a suicide ... ?

In fact, this is going to be a task taking just 3 minutes, no command line at all. We will only use the GUI wizard, click, click, click. And we will use an equivalent HP driver for the Lexmark printer to fool Linux. Let's rock.

Demonstration done in Ubuntu 8.10. The lovely theme is Compiz + emerald.

Step 1: Add new printer

Click on System > Administration > Printing. When the window opens, click on New.

Add new

Step 2: Choose connection

We need to tell our machine where to look for the printer. In our case, it's a Windows Printer via SAMBA (a network sharing protocol).

Choose connection

Step 3: Browse for printer

In the right pane, click on Browse. The browser will scan your network. It will find all Windows workgroups and hosts belonging to them. You should know to which host the printer is connected to. Use arrows to expand the choices.

SMB browse

Step 4: Verify connection

Your printer is now selected.


But let's make sure we have sufficient permissions and that can print to it. For example, firewall rules might interfere - or we might need to authenticate before being allowed to print. Click on Verify to check.


Step 5: Choose vendor

In this particular case, I know that there is no driver for this particular printer available in Linux. But you should not try to "cheat" and should try to find the original driver for your hardware. In my case, I know the equivalent HP device is LaserJet PCL 6, so this is what I'm going to use.


Step 6: Choose model

Like we said above:

Select model

Step 7: Options

Optionally, your printer/driver may support additional features:


Step 8: Name the printer

Feel free to use anything you want here, as long as you can understand it:


Step 9: Printer is configured!

We're done, basically. But just to make sure, we'll send a test page for printing.


Step 10: Print test page

Here we go:

Test page

And we're done! That was easy, wasn't it?


Configuring printers on Linux is a simple affair. It is definitely no more difficult than doing the same thing in Windows, maybe even simpler. It's just different. Still, we did it in approx. 3 minutes and 10 mouse clicks, over encrypted Wireless and whatnot. Fabulous.

Enjoy yet another marvel of the lovely world of open-source.