Junkbox Printer Server

In my position of “homestead-IT-director” I have a couple of users that are starting to need daily access to the HP ink-jet printer currently attached to my Windows XP Pro system. The educational system in the Republic of Texas hasn't gone “paper-less” yet.
Written by Xwindowsjunkie , Contributor

In my position of “homestead-IT-director” I have a couple of users that are starting to need daily access to the HP ink-jet printer currently attached to my Windows XP Pro system. The educational system in the Republic of Texas hasn't gone “paper-less” yet. I use the printer as little as possible since I'm sure that I've denuded enough forests already. Obviously I need to setup a printer server of some kind to “divorce” the printer from the XP computer. That way I can leave my XP Pro development system turned off more, it'll seem like it runs longer before the next crash!

The substitute server hardware is going to be an old P3 industrial ETX-form factor CPU board liberated from a future as landfill. Serial COM ports 1 & 2 are dead but the USB ports, printer port and the 2 NICs still work fine. It has a compact flash socket connected to the secondary IDE bus and 256 MB of RAM. The plan is to connect it to a wireless router currently being used to provide network connections to the 2 student's Windows XP systems. One of the USB ports will connect to the HP Office-Jet. The compact flash socket will have the OS on it.

A little test demonstrated that the standard HP drivers in Xubuntu works perfectly fine with the HP C3100 model at least for printing. They may not offer a full suite of features. For scanning, FAX and other items other packages will need to be installed. But as a printer its already met the primary design spec.

Hibernation, or suspension as its known in Linux, seems to work but keeping a Linux-based print server in “luke-warm-standby” will require some testing. The ACPI BIOS will need to have an IRQ on the NIC set to trigger the wakeup and return from suspend.

Suspend under Ubuntu or Xubuntu installs very easily if it wasn't installed by default. (Try typing suspend in the Search window of Synaptic.) The idea is to leave the computer “on” all the time and let the NIC wake-up the CPU and have it come up from the suspend state when somebody wants to print a file. Configuring the software to respond to a wake-up from the NIC and then print a document from a Samba connected Windows client is something that needs to be figured out. Worst case, a VB script with a desktop shortcut to send a page feed command to the printer server to wake it up and then push a sheet of paper through to get things moving. It might also be possible to set the printer driver to a long delay ( 15 to 20 seconds or so) on a first attempt to print.

The drivers that HP supplies for this particular “does-it-all” Office Jet are Windows related, not Linux. It seems that it takes a considerable amount of time to print an ordinary page while running under Windows. The suspicion is that page raster rendering is being done in the Windows driver for the printer. That actually makes the use in Linux easier. The bulk of the printer driver will reside on the Windows desktops and they will use “raw mode” to print, that allows for less overhead on the Linux system.

Although Samba supports “install on demand” for Windows printer drivers, permissions on the Windows client need to remain tight to prevent support issues like broken installs and malware etc. The drivers will get installed manually in Admin mode on the two client machines. The users will be set to allow printing, print job management for deleting documents and jobs but not for print driver installations.

One other minor feature of the HP printer/scanner/fax machine is that it has built-in flash sockets for CF, SD and memory sticks. These sockets provide for a direct photo print mode that doesn't require an USB attached computer. At least in Windows, the sockets can also operate as standard external flash memory sockets. Under Linux they can be auto-mounted assuming there is a flash in the socket. This might be of some use later.

Using Linux makes the configuration of the printer server a little more difficult. Samba has to be configured to share the cups printer. User names and passwords have to be setup in nfs to match the ones on the XP desktops to avoid a logon box pop-up. Samba has to be setup first and verified to be functional with the automated Windows NTLM log-on.

One nice thing that results from all of this is that another printer can be connected to the server and made available. There is an old, old, old HP 500 deskjet (black ink only) that is perfectly fine to print program listings when its necessary to go back to killing trees for printouts. Hey! Its still working! It was likely the last HP printer built that actually was stout enough to justify the $350 price tag. Now they make more money off printer cartridges than printers.

At least at this point, the goal of achieving a Windows printer server is going to happen courtesy of Xubuntu and Samba. The price is simply the amount of time needed to do the configuration.

Editorial standards