4 мая 2011 г.

Debian Lenny + HPLJm1522MFP + xsane

Потребовалось подружить Debian Lenny и HP LaserJet m1522 MFP. Если с печатью все заработало практически из коробки и без вопросов (с умолчальным в ленни hplip_2.6.8b), то со сканированием возникли проблемы. Во-первых, поддержка сканирования для этой модели принтера реализована только в hplip_2.8.6, поэтому пришлось скачать и поставить (читай, доставить кучу dev-пакетов и скомпилить) свежий hplip. Сканер стал определяться hp-check-ом и scanimage -L, однако сканировать отказывался - hp-scan и xsane в один голос заявляли об ошибке ввода-вывода, плюс в syslog-е имелась фигня подобного рода:
zp python: io/hpmud/hpmud.c 483: invalid device_close state
zp python: hp-scan[8989]: error: Error during device I/O
zp python: io/hpmud/hpmud.c 341: device_cleanup: device uri=hp:/usb/HP_LaserJet_M1522nf_MFP?serial=00VNHTB1FH7B
zp python: io/hpmud/hpmud.c 353: device_cleanup: close device dd=1...
zp python: io/hpmud/hpmud.c 355: device_cleanup: done closing device dd=1
и прочие непотребства.
Пытался ставить разные версии hplip, включать пользователей в разные группы - безуспешно. Решение оказалось внезапным и местами волшебным, поэтому первопричины нижеследующих действий я пояснить не берусь. В одном из многих просмотренных багтрекерах  нашлось предложение подменить библиотеку libhpmud.so. В моем случае имела место такая картина:
ls -l /usr/lib/libhpmud*
-rwxr-xr-x 1 root root    867 Май  4 17:49 /usr/lib/libhpmud.la
lrwxrwxrwx 1 root root     17 Май  4 17:49 /usr/lib/libhpmud.so -> libhpmud.so.0.0.4
lrwxrwxrwx 1 root root     17 Май  4 17:49 /usr/lib/libhpmud.so.0 -> libhpmud.so.0.0.6
-rwxr-xr-x 1 root root 189818 Май  4 17:49 /usr/lib/libhpmud.so.0.0.4
-rwxr-xr-x 1 root root 201843 Май  4 17:34 /usr/lib/libhpmud.so.0.0.6
Поэтому я заменил симлинк  /usr/lib/libhpmud.so -> libhpmud.so.0.0.4 на /usr/lib/libhpmud.so -> libhpmud.so.0.0.6
 mv libhpmud.so libhpmud.so_
 ln -s libhpmud.so.0.0.6 libhpmud.so
Чудесным образом ошибка исчезла и xsane запустился =). Да, возвращаясь к вопросу о группах - следует все же добавить пользователя в lp и scanner.