Laptop Scanner Mystery


I bought a refurbished Dell 7420e laptop to replace my aging Dell 7470. The 7470 has an S key that works irregularly.

In the past, I have used xsane to run an HP DeskJet 2600 All-in-One Printer flatbed scanner.

Walter White as HP printer engineer

HP DeskJets made me swear an oath upon the altar of God to never buy an HP product again, but that’s not the mystery at hand. I have an HP DeskJet 2600 series all-in-one, and it has a flatbed scanner. I want to use the flatbed scanner to create digital images of physical media.

I’ve used xsane for several years to run the scanner, maybe not happily, but at least without experiencing inarticulate rage. I tried to install xsane on my new Dell 7420e laptop. xsane is no longer a supported package. It is an Arch AUR package. Very well, I can download dodgy AUR packages and compile them as easily as the next guy. xsane requires gtk2, which is also no longer a supported package, but rather an AUR package. The gtk2 package does not compile, as near as I can tell, so I installed gtk2 2.24.33-3 from a package file on my older Dell 7470. Now xsane doesn’t compile: ERROR: GTK-1.2.0 or newer is needed for compiling xsane.

I looked around for a suitable xsane replacement. I found simple-scan as a supported Arch Linux package. I installed it and fired it up. It discovered one scanner, an Epson PID. The Eopson is another all-in-one device, a device that I want to use even less than I want to use the HP.

The Mystery

I installed simple-scan on my old Dell 7470. Running simple-scan on the 7470 found one and only one scanner, the HP DeskJet 2600. That’s the mystery. Why would two Arch Linux laptops, both connected to the same WiFi access point, both with the same versions of sane and simple-scan discover different scanners?

I verified versions of software, the sane package, the hplip package, the simple-scanner package, the avahi package. All the same.

I searched for anyone else who had trouble with simple-scan not discovering HP scanners. I found some really unhelpful “tutorials” that reinforced the idea that we use weak language to talk about GUIs.

I ran xsane and simple-scan under strace to see if I missed some config file. Both are advertised as using sane to talk to scanners, but strace produced wildly different system call traces for these two programs.

I uninstalled sane and simple-scan, and reinstalled sane first, then simple-scan, because I vaguely thought I’d installed simple-scan first, then installed sane. That didn’t help.

I checked the $HOME/.cache/ directory for any “app state” files. There is a $HOME/.cache/sane/xsane/ directory on my old Dell 7470 full of incomprehensible files, and a $HOME/.cache/simple-scan/ with a log file. None of that helped.

I powered off the Epson PID printer, hoping that simple-scan was actually finding a number of scanners, but presenting only the first one. No luck, now simple-scan couldn’t discover any scanners.

Finally due to some Old Unix Guy intuition, I copied the /etc/cups/ directory from old laptop (Dell 7470) to new (Dell 7420e), and used systemctl to enable and start cups, the current standards-based, open source printing system.

Confusingly, this worked. I can now use simple-scan to run the HP DeskJet 2600 all-in-one device as a flatbed scanner. This does not make any sense at all, it’s just cargo cult sysadmin.