This is a problem I’ve been dealing with for a while now. I have a Lexmark printer which I’ve bought without checking for compatibility with Linux (I bought it when I was still using Windows), and as it turns out, this printer is not supported in Linux. I switched to Linux on my main desktop full-time late last year, so instead of to my desktop, I hooked this printer up to my bedroom Windows 7 media server/HTPC, and whenever I need to print, I just drop the file in question on this machine, and print form there. I need a better solution. Update: As it turns out, Lexmark has recently started releasing Linux drivers (good stuff). Still, the problem at hand stands, as there might still be other printers that suffer from the same problem.
The printer in question is one of those wireless multifunction things, a Lexmark x4650. Like every other printer manufacturer, Lexmark is incredibly incompetent and doesn’t support Linux in any way, shape, or form. Of course, I only found this out when I removed Windows from my desktop machine – on which I do all my work – and switched to Linux ‘full-time’.
Since my printer is connected wirelessly, and sits quietly in my storage closet where it can’t make my unicorn cry, it was relatively easy to just hook it up to my bedroom HTPC (which also acts as a server for all my media files). Whenever I need to print, I just drop the file in question on the shared network drive, go into the bedroom, and send the file to the printer from there. Since I don’t print very often, this is acceptable.
Still, it’s not an ideal solution. I would much rather simply send the file to the printer from my Linux desktop, without having to go into the bedroom. Simply sharing the printer in Windows and going from there is not an option, since that would still require a printer driver to be installed locally.
Basically, what I want is what is being described in this howto: “print to a windows printer from linux WITHOUT needing any linux printer drivers/PPDs”. This howto seems a little outdated, however, and looks remarkably convoluted. I just can’t accept that there isn’t a similar, but easier, solution out there.
Since we have readers far more knowledgeable than I, I figured you guys would have some interesting solutions. At the same time, this could help other people who might be wrestling with similar problems. The details: I’m using Ubuntu 10.04 on the desktop, and Windows 7 on the server/HTPC. The printer is a Lexmark x4650, connected to the server/HTPC wirelessly. I don’t need access to printer settings; the few times I need to fiddle with those I can just walk up to the server/HTPC. Access to the scanner function is not needed either.
Don’t let me down, guys and girls. Our nerd cred is at stake here. Show ‘m why our comment section is generally better than others’.
I wrote this article long ago, when I had the same problem, so it might be outdated, convoluted and more:
http://geekinfo.net/article.php?story=20030209135156781
Lexmark claim to have Linux drivers for their X2600 series printers here: http://support.lexmark.com/index?page=content&id=OS4&locale=EN&user…
Have you tried those on the off chance that your printer and the X2600 use the same protocol?
Edited 2010-06-10 13:09 UTC
Then he wouldn’t be able to print from Windows in his bedroom 😉
The problem is, I forget what the applications were.
However, I shared an HP LaserJet or something via SMB, and had it always print to file, IIRC. Then, anything printed there would spit out into a directory, and was printed from there.
That’s about as cumbersome to set up, but it works more smoothly to actually print.
Linux drivers appear to be available
http://support.lexmark.com/index?locale=en&userlocale=EN_US&product…
you could instead have a windows virtual machine on your Linux box
Holy crap!
What in the name of…. They released this only a few months ago, I see. I have to admit that after checking every week between November and February I kind of stopped hoping. Nice stuff. Article still stands though: it’s a problem others deal with too.
Trying out drivers…
EDIT: Nevermind. 32bit only. I’m on 64bit.
Edited 2010-06-10 13:18 UTC
Thom, if it doesn’t work, here’s how I’ve done it – KDE3 and some HP printer floating around – tried the drivers – didn’t work, dumped them. I added a new printer device from the KDE menu, and I’ve simply chosen RAW TCP printer type – I just entered the IP and the port, and voila, it was running like a charm. HTH in case you need that.
Here is how to install the 32bit drivers on a 64 bit system.
http://www.phoronix.com/scan.php?page=article&item=lexmark_linux&nu…
Stupidly, even with the 32bit runtime, the package denies installation, so one merely needs to unpack it, and then run it.
It worked a treat with my X2650 in 10.04
Edited 2010-06-10 13:24 UTC
Google Cloud Print?
http://code.google.com/intl/nl/apis/cloudprint/docs/overview.html
Edited 2010-06-10 13:15 UTC
If you have a local printer that Linux can print to, then just install CUPS on the Linux machine. CUPS can make that printer appear as a network Postscript printer to all other machines on the LAN. Even Windows machines can then print to it without having to have a specific driver installed.
BTW: HP supports Linux very well indeed.
http://hplipopensource.com/hplip-web/index.html
It is a pity that you didn’t have a HP printer, because then you would not be having this trouble.
I picked up a HP USB inkjet multifunction F2480 PSC (Print, Scan, Copy) device (works beautifully with Kubuntu, just plug it in & you are good to go) very, very cheaply recently. The ink costs more …
Edited 2010-06-10 13:28 UTC
My HP laser printer was not supported until about six months ago. HP is certainly not perfect with printers under linux.
Most HP laser printers have PS and PCL interpreters, so you could set them as generic PS/PCL printers and they should print.
Edited 2010-06-10 18:31 UTC
In less than 2 minutes of searching I had multiple answers and solutions!
Sure I’ve had my share of troubles with Linux printing including difficulty with LexMark printers, but I don’t need to bash a company whining away without first getting my facts straight. I’m miffed because your post was typical ‘victim-complaint’ mode as a Linux user.
from Phoronix article:
There is one printer manufacturer though that as of last year has begun supporting Linux from top to bottom with their entire line-up of printers. Not only are they providing CUPS drivers, but also they are even printing Tux in the corner of every box they ship right besides the Windows and Apple logos. Do you know who we are talking about? Probably not, but it’s Lexmark.
article link: http://tinyurl.com/yadvq5h
Typical victim complaint?
You do realise that printer manufacturers are all universally incompetent, right?
http://theoatmeal.com/comics/printers
Bad choice of printers. I know, we shouldn’t care in 2010, but still, we have to, so choose more carefully next time.
To tell success stories too, here I have a xerox phaser 8560dn and a samsung scx-5330, both working quite nicely with cups, no hassle whatsoever.
it is just as easy to say “all consumers are universally incompetent.” printers like everything thing else are a you get what you pay for thing. those cheap multi function printers you get at walmart or best buy won’t last a year; conversely a there are 15 year old laserwriters still going strong.
http://www.gnuise.co.cc/gnulinux-tips/print-to-a-windows-printer-fr…
which of course is just an updated/fixed version of the stuff you already found, but it will probably not get any easier than that. So either use the 32bit drivers on 64bit or do your fair share of windows fiddling. But honestly that doesn’t seem to be really hard or complicated.
Edit: Or wait for Googles cloud print to be ready.
Edited 2010-06-10 13:53 UTC
Can’t speak for your issue really, but I thought I would share that my HP Deskjet 6940 is amazingly well supported in Linux. Its attached to the network (I insisted on a printer with an ethernet port) and Cups picks it up from the network, detects the model number, and immediately chooses the right driver for it. Actually, this printer was way easier to set up in Linux than it was in Windows, and I’m using Slackware.
Also, no 100 MB driver installing all kinds of crap to deal with.
As for your printer… it sounds like a worthless piece of “technology”. Do you want a better solution or the best solution…. because the best solution involves an axe.
I agree, HP has provided great printer support for Unix-like operating systems, and my HP CLJ3600 works flawlessly.
I’m going to have to disagree about CUPS though. Every so often, CUPS will corrupt the print queue, and I’ll get error messages where a document should be. I just have to delete the printer and re-add it, but it’s annoying. This may be something localized to the two latest Fedora releases.
“I’m going to have to disagree about CUPS though. Every so often, CUPS will corrupt the print queue,”
I’ve never seen this happen, but honestly I rarely use the printer so it might not be an issue for that reason. I have had my printer for at least 3 or 4 years and according to the web interface my total page count is about 500.
Never seen that too.
We have more than 500 printers installed on CUPS, 2 milion jobs monthly (most from label printers) and never had any corruption. We have HP, LexMark, Epson, Zebra, Argox, Datamax, Brother and Canon printers.
Edited 2010-06-11 17:15 UTC
Why cannot printers be like keyboards, mice, or pendrives? You just plug them in, and they work. They all work way. You don’t have to install that crapware they give you – and in fact, they stopped giving it.
Why don’t printer makers agree on some standard driver? In the end, they will save money on driver development, and users will be happier.
They have a standard protocol. Two of them, actually: PCL and PostScript. Pretty much every laser printer I’ve encountered supports it.
The problem is that a lot of printers don’t support either one, especially the cheap consumer printers. The lesson here is “don’t buy cheap printers,” but it still sucks for all of those people who already have.
Would it be so hard to make even cheap printers support PCL or PS? No, not these days. But, I suspect it would take something on the order of an act of government to actually force the issue (they’d have to make it a legal requirement). This won’t happen.
If I’m not mistaken it’s a bit more complicated. I think their was an artificial scarcity.
Or it’s a patent agreement problem. PCL/PS printers printer-subset is patented or something like that.
Or their is only one manufacturer of PCL/PS-printing-chip-design company.
I don’t quiet remember.
My understanding is that it was originally a cost issue, whether for complexity reasons or licensing reasons I do not know.
There are small print servers that you can plug in to. They output postscript and can be printed to with IPP (Sans Linux specific driver for the printer). You lose the ability to use some of the printers features, but you can print. Most of the time,t hats all I need, to be able to print from Linux.
Lexmark is incredibly incompetent and doesn’t support Linux in any way, shape, or form
Just because hardware manufacturers don’t support linux doesn’t make them incompetent. They have no obligation to support any OS other than the one they advertise for.
Their choice not to support linux is surely driven by a market share / development and support ratio.
Maybe the incompetent ones are the people who buy hardware and expect it to work across all available operating systems without doing prior research.
I didn’t say such a thing. Maybe you should read more carefully. It says “and”, not “because”. Quite the difference.
Lexmark is incompetent because they are a printer manufacturer.
I read it right, I just didn’t post the full snippet. Here it is
Unless you’re very pedantic about the actual wording (which can be interpreted in different ways), this suggests that printer manufacturers are incompetent due to their lack of linux support.
If this isn’t the reason then what did you mean? I’ve always found printer manufacturers to be very competent. They sell printers which unless faulty, do the job they are supposed to do.
I’m not being picky here, I just think linux guys get mad a little unfairly when manufacturers don’t provide them with free support as per Windows.
Really dude, it doesn’t. I’m sorry, but the difference between “and” and “because” is rather massive.
The child fell and he broke his bike.
The child fell because he broke his bike.
http://theoatmeal.com/comics/printers
Trust me, as an English speaker from England, it’s perfectly valid and common to use ‘and’ in this context and have it relate to the reason of the remaining part of the statement.
I assume this is how most people will interpret it.
I feel I sound like one of those annoying, anal people picking an argument. I’m really not, I didn’t expect it to go this way
that’s how I, as an American, would interpret it as well. Language is funny. But belie e me I’d love to be good enough at my second language to only have slight issues with such tiny quibbles D:
Dear gedmurphy, I am going to have to say that I am studying in London right now and I shall testify that many English cannot spell nor do grammar any more. It seems like the international students can write English better than the natives. And I am sure to find others that will agree with me, although we would still revere the masters of the Language, who are still predominantly English, which is decidedly still hopeful.
Need me to clarify? there? affect? anyone? What a shame it is.
When the Canadians, Americans and English and Australians stop appearing on failblog for their pathetic English, we can finally say something good about the education system. Until then, “political-correctness” and all that “love” and rubbish can go rot in <insert unpleasant entity>.
“I’ve always found printer manufacturers to be very competent. They sell printers which unless faulty, do the job they are supposed to do.”
Its pretty much like the modem industry. Modems were a standard device that included certain hardware that could be easily supported. Then they changed the rules. They offloaded things to the OS and removed hardware components that normally were there, which made it much harder for other operating systems that they weren’t in bed with to support the device.
Really? A printer that doesn’t support postscript doesn’t bother you? Its not about free support… its about not making changes to devices that used to work fine but now… oh, surprise! It will only work with Windows.
Of course, if the buying public weren’t so intent on spending as little as possible for a printer then they wouldn’t fall into these traps. And they wouldn’t fall for the cheap printer that has $100 ink cartridges.
HA-HA. Oh, wow!
Please, sir, I have always had a fascination with dimensional travel and alternate worlds. How did you manage to move from your native reality in to my own? Would you be willing to teach me the technique?
Journalistic writing at its finest.
I tried a Lexmark printer with several copies of Linux around early 2000 (Caldera, Mandrake, Redhat, Suse), and despite purchasing a printer that stated it worked with Linux, it used an ancient version. None of the modern distros would talk to it. It was later that I discovered that Lexmark (and therefore Dell printers too) are much like internal modems. They function as a true device by using several windows software hooks to complete the missing hardware functionality. Without windows, you’re still screwed. Now that may have changed some with the introduction of Mac OS X, because it’s really just BSD underneath, but after buying three different Lexmark printers and not being able to get any of them to talk to Linux, I gave up and went with HP, Epson, and Brother. Lexmark can keep their trash.
Here Thom, I have a present for you. True, it’s a dirty hack that I threw together just now but it does provide some basic functionality. Basically, create the directory C:\Queue and share it. then run the following VB.NET hack on your system. Whenever you print in Linux you can just print to file and save the .PDF output to the share \\yourserver\queue and the program will send it to the default printer. there are many limitations but I’m sure it could be cleaned up:
Imports System.Diagnostics
Imports System.IO
Module modBasicQueue
Sub Main()
‘******************************Written by Matt Paulauskas*********************************
‘****************************************2010************************ *********************
Const qd = “C:\Queue\”
Console.WriteLine(“Waiting for file to print”)
Do ‘//continuous file check/print/delete loop
If Directory.GetFiles(qd).Count > 0 Then ‘//Check for files…if found send to printer and delete
For Each qFile As String In Directory.GetFiles(qd) ‘// iterate through files
Try
Dim psi As New ProcessStartInfo
With psi
.Verb = “print”
.WindowStyle = ProcessWindowStyle.Hidden
.FileName = qFile
.UseShellExecute = True
.Arguments = “/silent”
End With
‘// Display file being printed
Console.WriteLine(“Printing: ” & qFile)
Dim proc As New Process
proc.StartInfo = psi
proc.Start()
Threading.Thread.Sleep(500)
TryAgain:
‘//clean up after file has been printed
Try
File.Delete(qFile)
Catch ex As Exception
‘//file was probably locked by the app resonsible for printing it
‘//Sleep the thread for 20ms and try again
Threading.Thread.Sleep(20)
GoTo TryAgain
End Try
‘//Clean up running process
Try
proc.Kill()
Catch ex As Exception
End Try
Catch ex As Exception
Console.WriteLine(“Print Operation: ” & ex.Message)
End Try
Next
End If ‘//end file check
Threading.Thread.Sleep(1000) ‘//pause before next check
Loop
End Sub
End Module
This is an interesting approach but to make it seamless it would be better to set up a print-to-file printer that automatically saves to the share, thus avoiding the need to copy.
This might sound as obvious, but installing something like VNC will at least save you your physical trip to the other PC
When it comes down to video card and integrated graphics or a printer, by running Linux, we suffer with the smashing ignorant incompetence that the manufacturers give us.
I recently bought an Epson TX115. I like this printer. There is a driver for Linux, and it works well. But certain facilities like printing both sides of one page or check the ink levels are only written for the Windows driver. Actually, the Linux driver is a community driver instead of the Windows counterpart which is from Epson.
I am here, cheering to see the struggle of those markets as every machine is getting replaced by another operating system that is not Windows. I want to see Nvidia fall down, ATI fall down, the printer’s manufacturers fall down. It only takes 1 conscious mind to understand why we are experiencing these things today – we don’t buy hardware unless it’s supported in Linux. That’s how I have been doing and that’s how I have been teaching people – stay away from Windows-only solutions. I am sure that once people do this, these restrictions will be limited to only a few.
Video and printers, we gotta walk that step further…
I didn’t check brewsmate’s solution, but that one seems to be very elegant.
Personally, I also have a printer that’s not supported by linux (or not good, there are drivers but they don’t seem to work on new distributions). It’s one of the few things I use VirtualBox for: I use a virtual machine for printing.
I have always had issues with binary printer drivers, these days i will only buy printers that either have open source drivers (like most of HP’s printers), or printers which support standard protocols such as Postscript… If your printer relies on binary drivers then it may not work when you upgrade the OS (i have printers here which worked on xp and osx 10.4 but don’t on current versions for instance)…
If you are looking for driverless printing however, look at cups… So long as your cups server has a valid printer driver, your clients will just send postscript data to the server and it will convert that data to whatever the printer itself needs. So you could use a mac mini (mac printer drivers are more common than linux ones), or a small x86 box (when only 32bit linux drivers are available) as a temporary kludge…
Ofcourse when looking at buying a new printer, look for ones that support postscript or open drivers.
“Personally, I also have a printer that’s not supported by linux (or not good, there are drivers but they don’t seem to work on new distributions). It’s one of the few things I use VirtualBox for: I use a virtual machine for printing.”
Does that work? I’m asking out of curiosity because recently I had a scanner from someone (desperately needed to scan) and it was a paperweight in Linux. I ended up rebooting into Windows 7 to use it. Having not booted Windows for a couple of months it was the never ending annoyance of popups for outdated virus definitions, windows updates, etc.
I always sort of figured that if Linux didn’t have any way of communicating with the printer then a vm wouldn’t be able to either. If it can, then it frees me a little more.
A Linux VM wouldn’t. But if it’s just a matter of a missing driver, if a Windows VM has access to the hardware device (parallel port, USB, whatever) it can make use of that device.
It’s a wireless laser printer that works with anything.
Most of the higher end Lexmark printers with ethernet ports have built-in FTP servers that will print whatever PDF or TXT file you send to it. My x9575 has such a server and it works well. Just print your document to a PDF file and send it to printer’s ftp server.
If you have more than one computer this is possible. One computer will act like a print server accessible through samba and cups on the linux client. The print server would have windows installed, the printer drivers installed, and then you would go through the network wizard and tell it that you want this computer to function as a print server.
If a printer has a NT4 driver available you can use it and install it in CUPS.
note: i haven’t printed anything except to PDF in over 5 years, except at work (Win7 environment), so I don’t even know if NT4 drivers are still around
I had (still have but sitting in the closet) a Lexmark x6150, and the only way I found to print to it from *NIX was to set up a Windows print server (old eMachines celeron running Windows 2000) and use ghostscript and redmon for redirecting it. More details can be found at
http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html
It took patience following those instructions, but it worked pretty well. Given the low power of the server, and the insane memory and CPU requirements of ghostscript, it usually took about 2-3 minutes per page.
[EDIT: wrong printer number]
Edited 2010-06-10 19:45 UTC
Originally the Ndiswrapper project claimed that there was no reason almost any windows driver couldn’t be use with their idea. Don’t know why more work hasn’t gone into that. Why have two drivers anyway?
I would use Virtualbox (or some other VM) to have windows running on linux. I’m not sure though if you could just drag and drop from linux apps into the windows apps.
– Setup a ghostscript virtual printer on Windows
– When a job is sent to the ghostscript printer, the job is then “forwarded” to the real printer
– Share the ghostscript printer using Windows “File & Printer Sharing (SMB)”
– Add the shared printer to your linux install. When selecting drivers, choose Generic Postscript.
http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html
Excellent! Thanks!
Note comment title.
Is this new? When I saw the title I was expecting the all powerful solution to the printing problem.
I used to use a pathetic machine to be my print server using simply a Windows 98 SE share, but eventually the machine simply just died. The hardware was going, and I couldn’t even switch it on. No floppy, no cd drive, no image, nothing. I wanted to make it a network share, but even the CD drive could not make it.
When the print server went down, I simply couldn’t take it any longer (the Canon print craplet deserved the cannon) and I literally walked my father to the shops to get a supported Brother. Now I can even scan from linux.
Not to say that the Brother drivers are any less crappy, but at least the printer is moderately cheap and still functional. The immediate improvement in scanning and printing facilities made my father thank me for making him spend, though.
(The lesson to take from this is: STUDY BEFORE BUYING and just buy the right one from the start and you can save the frustrating expenditure later!)
EDIT: Anyone figured out how to allow virtual machine guests to access certain hardware? I mean, I can understand why cpus and graphics, keyboard and mice must be virtualised, first because they execute code and anything that executes code is potential danger, and second because you need to share keyboard and mice between the different guest instances and host. But why are printers and other rubbish not selectively allowed to interact with the guests? If we are allowed, then I can wean my parents completely off Windows by running the required drivers in a VM guest in Windows and letting the slave no access to the net and just as a bloated behemoth print server do its job in the sandbox.
Ideally, someone in power (or with loads of $$$) can just legalise braindeadness — like no more x86 family, no more EFI/bios and mandate coreboot+openbios/firmware, mandate PCL/PS, mandate usb multifunction printers to appear and simply a usb hub connected to a separated scanner and printer so as to be completely handled as two separate machines to the OS…
(I realise the root cause of all those above is highly linked with Windows, just like how, in the Unix Haters’ Handbook, sensible system structure gave way to coredumps under Unix. It is all just the problem with monocultures. And it is all due to the consumers taking all these nonsense. And it is all due to education, just like from the above. What is happening in schools these days?)
Edited 2010-06-10 23:37 UTC
Didn’t realise this site is no a discussion forum for Linux printing issues?
How can I post my questions?
This site is usually seen as a news site. If you have problems you generally go to the forums of the distro you have on your computer to post them there. But this is really funny because you have already succeeded in posting here and yet you don’t take the chance to post the question at hand instead of asking something else totally unrelated.
What make/model of printer and what distro and version of linux?
Then, what problem is it? Now, shoo shoo, to your forums. They will usually help you. (But you should also reply to me and link to your post in another forum, in case helpful souls from here read too.
Sorry, Thom, that your question generated such a flurry of off-topic, and often acrimonious, responses. I mean, you _did_ say you got the printer when you only ran Windows. I had the same difficulty when I first started using Linux and BSDs at home.
I don’t think I have anything new to add. I’d say your two best options are 1) the RedMon/GhostScript hack if it was reliable and doesn’t load down my HTPC box too badly (and RedMon will run on Win 7). Or 2), my favored method, spin up a stripped-down 32-bit Linux VM on your 64-bit Linux desktop and install the Lexmark driver (and CUPS or something) into it. I bet if you try hard enough you could get it small enough (and fast booting enough) to start the whole VM like an app when you need to print, or just leave it running all the time.
I’m assuming the printer is a “winprinter” (i.e., offloads some raster processing to the PC host to save a few pennies — dumbest idea printer makers ever had). I also assume the Linux machine can get to it over the wifi.
All that said, do like I did and get your next printer with Postscript. I learned from trying to make ancient Unix boxes print at work that that is by far the easiest way to go. I got a Postscript color laser for ~$320 USD, so the cost is not all that high any more.
I’m sure you also need to administrate your windows pc from your bedroom sometimes. Just stick vnc on both pc’s. Send your file from the linux pc to windows, start vnc then print from windows remotely.
I made a quick tool to simulate a RAW/JetDirect style printer on a Windows PC then redirect the job through Ghostscript to any local WIndows printer. It’s rough but works, download from http://www.stareu.net/files/OSN/
I’m sure that there is a better way of doing this, but if not (and anyone expresses any interest) then I’ll fix this up into something more usable.