So HP printer support in Linux typically excellent, and the P1102w is no exception. However, if you want to use it via wifi rather than USB you’re gonna have a bad time (unless you use Windows to perform the wireless setup, but who wants to do that?). I had hoped the hp-setup tool would be able to set up the printer’s wireless similar to the way the Windows tool does it. It has an option that seems to indicate that it could: wireless (option 3). Unfortunately, when I ran the utility it said that it could not detect a supported printer. I wasted a lot of time trying to figure out why it wasn’t working, then I found a better way.
(These instructions assume you’re using Ubuntu 12.04. If you’re not using Ubuntu you should be able to run hp-setup and it should detect your network printer after getting the wireless working.) Plug your printer into the computer. Ubuntu detects and configures it automatically as a USB printer. Next, you need this small python program: www.jspenguin.org/software/ewsgateway. Make sure python-usb and python-tk are installed on your system for this program to run. Launch the program. It will detect your printer. Select it from the list and click the start button. Afterward, click “Launch browser” to open up your printer’s web interface. Here you can configure all of the printers settings including wireless networks! When you’re done, close the webpage and click the stop button in the python program and close it. Your program should now be connected to your wireless network. You can disconnect the USB cable (and you might need to power cycle the printer for wireless to connect).
In your Ubuntu printer settings, you can delete the USB printer that was automatically configured. Then, click the add button. Expand the network printer list and you should see “HP LaserJet…” after a few moments. Select it and click forward. Accepting all of the default settings should be fine. Now, you have your wireless printer setup for Linux without having to resort to Windows.