Crappy Scanners And Linux

Recently we got a new HP Scanner. It’s a good, nice, and generally works without any complaints.

The scanner I used before was a crappy scanner with a no-name brand nobody knows, picked up for almost nothing at some cheapskate-store (since I very rarely need to scan something). The installation of the drivers for the thing was always a pain, including copying files around, right clicking .inf files, reciting incantations and whatnot… And then hoping that it wouldn’t throw a general “TWAIN error” at me.

Seriously, what is that anyway? People who know something about this whole TWAIN thing know it’s a pain. According to Wikipedia, it stands for Technology (or Toolkit or Thing) Without An (or Any) Intelligent (or Important or Interesting) Name, which is just cheesy. Hell, I even think that Microsoft’s new WIA (or: Windows Imaging Acquisition) is better.

Anyway: a few weeks ago, my Windows machine gave up scanning, maybe it had something to do with the fact that I was running Windows x64, I don’t know. Reinstalling drivers: no dice. Moving files around: no dice. Installing drivers for other scanners (one can try): no dice. Unplugging the damn thing and throwing it out of the window… err… no dice.

Until now. I was thinking: “Hey look, there’s that stupid old scanner, maybe this will work on Linux…” So I promised myself that I would spent a few minutes (not more) trying to get this to work, before dumping it completely.

I connect the scanner to a free USB port… nothing happens. No worries, after fiddling around I find out about xsane (hey, go easy on me, I’m still a bit of a Linux noob), so I try that, and get a nice bunch of error messages… perfect.

Failed to open device 'artec_eplus48u:libusb:001:002': invalid argument

Really? So my crappy brand scanner is actually an Artec. Fine, after searching a bit on Google I find the following suggestions, export this:

export SANE_DEBUG_ARTEC_EPLUS48U=9

And then run again, we now get some more information:

[artec_eplus48u] Try to open firmware file: "/usr/share/sane/artec_eplus48u/Artec48.usb"

[artec_eplus48u] Cannot open firmware file "/usr/share/sane/artec_eplus48u/1200.usb"

[artec_eplus48u] download_firmware_file failed

Apparently, .usb is a Windows driver, so good luck getting it. Luckily, the drivers where still on my other machine, so I do a search for every .usb I can find. Artec48.usb gets found and copied over to the directory xsane suggests: /usr/share/sane/artec_eplus48 (had to create it).

I tried again… And it frickin’ works! What a piece of cake.

If you happen to have the same problem, and want the Artec48.usb driver, you may drop me a note.

I’m happy, now this scanner still can be a little bit of use. This is what I like about Linux: if you have a problem: continue fiddling and trying without giving up. In the end it’ll work out and you’ll have learned a lot of things (which is great).