Sunday, 29 March 2009

Print-tastic from Linux with VirtualBox

I bought myself a Lexmark X3580 on a whim because I saw it on offer - BIG MISTAKE. It's compatibility with various operating systems is brilliant - brilliant if you use Windows but f#@king rubbish if you dare to use anything else (in truth I don't have a Mac so I don't know if it works on that front). By all reports Lexmark don't even acknowledge the existence of Linux let alone write a driver for it. I only hope that one day this omission comes back to bite their ass. Linux is growing and I don't think it's going to stop growing so they're alienating an ever growing market but that's their choice. Suffice to say I'm not ever going to buy one of their crappy printers.

Anyway, the reason for the post is to highlight my way round the incompatibility - which although far from ideal - allows me to run Linux without needing to switch back to Windows to print. I'm not going to list all the steps but just give a brief outline of the method I used.

Simply put, I run Sun's VirtualBox on a Linux host with a Windows guest. Credit where credit is due, I have nothing but praise for VirtualBox. It keeps on improving month by month and without it I would be consigned to Windows only printing. I just pray they don't start charging for it.

Anyway, I set up VB with USB without USB2 and EHCI - so you'll have to use the non-open version - and installed a Windows XP guest. Regarding the USB2/EHCI thing, I think it's important, someone on 'tinternet said so and since I can print I can't be bothered to investigate whether it's required on not. Then with the Lexy plugged in I set up a USB filter to auto capture it.

Next up was to fire up the virtual XP guest and when the USB Lexmark X3580 scanner/printer was detected I went through to the driver folder on the Lexmark CD and installed the drivers directly - as opposed to running the Lexmark installer program which installs a load of crap software which isn't required for printing. Once the two drivers for scanner and printer were installed (a couple of other drivers will also be installed but they're built in with Windows so no extra drivers are required) you are good to go since you've now got yourself a defined printer.

Finally I shared the printer on the network and Bob's your uncle, you have yourself a network Lexmark that you can print to from other Windows 'puters (once you've installed the drivers and added yourself a network printer of course - my system found the printer network share I'd just set up on the VB guest using the search network option when installing the printer).

The downside - and it is quite a big downside - is that to print from Linux you have to print to PDF and then use the guest to print the PDF file so you'll need to set up a shared directory of some sort - that's either network share or the VirtualBox shared folder - I use the network share way.

The upside is that at least I don't have to reboot back into Windows every time I want to print something. I just wish Lexmark would pull their finger out of their ass as write a Linux driver - I mean, how hard can it be?