Вопрос или проблема
Я использую Chaos Calmer 15.05 (прошивка OpenWrt) на TPLINK WDR3600 и пытаюсь установить SANE + HPLIP, чтобы сканировать по локальной сети.
Я установил sane-libs и sane-daemon + зависимости из официального дистрибутивного канала (для Chaos Calmer), и поскольку HPLIP недоступен для Chaos Calmer, мне пришлось установить HPLIP для 14.07 из URL третьего дистрибутива. Я не знаю, связано ли нижеприведенное сообщение об ошибке с этой “версией”, но… В общем, используя sane-find-scanner, я обнаруживаю сканер системой, а scanimage -L возвращает:
устройство `hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a’ является многофункциональным устройством Hewlett-Packard HP_LaserJet_Professional_M1132_MFP
Однако scanimage -T возвращает:
scanimage: открытие устройства hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a не удалось: Ошибка во время I/O устройства
Кто-нибудь может мне помочь?
P.S.: Sane возвращает мне ошибку:
root@OpenWrt:~# saned -d
[saned] main: starting debug mode (level 2)
[saned] saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
[saned] do_bindings: [0] bind failed: Address already in use
[saned] do_bindings: [1] bind failed: Address already in use
[saned] do_bindings: couldn't bind an address. Exiting.
[saned] FATAL ERROR; bailing out, waiting for children...
[saned] bail_out: all children exited
Вот как я это исправил.
У меня есть маршрутизатор Archer C5 V1 с архитектурой ar71xx. Также у меня есть многофункциональный принтер и сканер HP PSC 2410. Вам понадобятся hplip, sane-daemon и cups. Программное обеспечение разбросано по всему интернету.
Шаг 1: Установите hplip и зависимости:
Используйте их отсюда: http://luizluca.github.io/openwrt/15.05/ar71xx/packages/
opkg install <luizluca url>/hplip-sane_3.15.7-1_ar71xx.ipk
opkg install <luizluca url>/hplip-common_3.15.7-1_ar71xx.ipk
opkg install sane-frontends usbutils
Убедитесь, что сканер найден:
scanimage -L
Теперь установите демон sane:
opkg install sane-daemon
opkg install xinetd
отредактируйте /etc/xinetd.d/sane-port — disable=no
/etc/init.d/xinetd enable
/etc/init.d/xinetd start
Убедитесь, что демон sane слушает на порту 6566:
netstat -an | grep 6566
Теперь установите cups, так как hplip зависит от cups:
Используйте их отсюда: http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/
opkg install <barrier_breaker url above>/libcups_1.5.4-1_ar71xx.ipk
opkg install <barrier_breaker url above>/libcupsmime_1.5.4-1_ar71xx.ipk
opkg install <barrier_breaker url above>/libcupscgi_1.5.4-1_ar71xx.ipk
opkg install <barrier_breaker url above>/libcupsppdc_1.5.4-1_ar71xx.ipk
opkg install <barrier_breaker url above>/cups_1.5.4-1_ar71xx.ipk
Я попытался запустить демона cups, но получил ошибку на libjpeg.so.62, мне пришлось создать симлинк:
ln -s /usr/lib/libjpeg.so.9.1.0 /usr/lib/libjpeg.so.62
Теперь запустите демона cups:
/etc/init.d/cupsd enable
/etc/init.d/cupsd start
Затем я установил драйвер sanetwain на мою машину с Windows и смог сканировать с использованием scanimage.
вот установленные пакеты:
root@OpenWrt:/usr/lib# opkg list-installed | grep 'sane\|hplip\|usb'
hplip-common - 3.15.7-1
hplip-sane - 3.15.7-1
kmod-ledtrig-usbdev - 3.18.23-1
kmod-usb-core - 3.18.23-1
kmod-usb-printer - 3.18.23-1
kmod-usb-uhci - 3.18.23-1
kmod-usb2 - 3.18.23-1
libsane - 1.0.25-1
libusb-1.0 - 1.0.19-1
libusb-compat - 0.1.4-1
sane-daemon - 1.0.25-1
sane-frontends - 1.0.25-1
usbutils - 007-1
Я также использую p910nd print server, слушающего на порту 9100.
С проектом Lede это немного меняется (версия Lede 17.01.2):
Используйте новый URL luizluca.github.io/lede/packages-17.01/mips_24kc (нужно добавить http перед)
opkg install (newluizluca url)/hplip-common_3.17.6-1_mips_24kc.ipk
opkg install (newluizluca url)/hplip-sane_3.17.6-1_mips_24kc.ipk
Нет необходимости устанавливать пакеты CUPS.
Ответ или решение
Ошибка «HPAIO Error during device I/O» при использовании HPLIP на маршрутизаторе TPLINK WDR3600 с прошивкой OpenWRT Chaos Calmer 15.05 указывает на проблему взаимодействия между программным обеспечением для управления принтером и оборудованием сканера. Давайте рассмотрим теоретическую основу проблемы, приведем примеры и предложим приложения для решения.
Теория
HPLIP (HP Linux Imaging and Printing) — это набор драйверов и инструментов для работы с принтерами и сканерами Hewlett-Packard на ОС Linux. Этот пакет обеспечивает поддержку принтеров HP и позволяет управлять печатью и сканированием. Ваша ошибка I/O (ввода/вывода) указывает на проблемы в коммуникации между драйверами, установленными на маршрутизатор, и вашим устройством.
Одной из причин может быть использование версии HPLIP, несовместимой с вашей версией OpenWRT (Chaos Calmer 15.05). Установка пакетов из сторонних источников или другой версии OpenWRT может вызвать конфликты, так как разные сборки могут иметь несовместимые компоненты или зависимые библиотеки.
Также стоит обратить внимание на конфигурацию сетевых служб и порты, особенно если возникает ошибка «Address already in use» при запуске sane-daemon.
Пример
Вы упомянули, что используете пакеты из стороннего репозитория для версии OpenWRT Barrier Breaker. Проблема может заключаться в несовместимости библиотек или модулей ядра, которые могли измениться между версиями прошивок Chaos Calmer и Barrier Breaker. Это становится очевидным в случае возникновения ошибок ввода-вывода, когда драйверы и службы не могут корректно взаимодействовать с вашим сканером.
Другим примером возможной проблемы может быть сетевое окружение, в котором адреса IP и порты уже заняты другими службами, что мешает правильному запуску и обнаружению устройств.
Применение
Рассмотрим пошаговый процесс устранения неполадок и решения проблемы:
-
Проверка совместимости:
- Убедитесь, что используемые пакеты HPLIP и SANE полностью совместимы с вашей версией OpenWRT. Желательно использовать пакетные сборки, специально разработанные для вашей версии ОС.
-
Установка необходимых пакетов:
- Перестаньте использовать пакеты из сторонних репозиториев, если они не соответствуют вашей версии OpenWRT. Обратите внимание на официальные или совместимые сборки.
-
Настройка сетевой службы:
- Проверьте, работают ли нужные сервисы на используемых портах. Если saned выдает ошибку о том, что адрес уже используется (Address already in use), это может означать, что на том же порту уже работает другой процесс.
-
Тестирование доступности устройств:
- Используйте команду
sane-find-scanner
для определения доступности сканера. Если устройство найдено, это указывает на то, что проблема вероятнее всего в стороне программного обеспечения.
- Используйте команду
-
Диагностика:
- Убедитесь, что ваши службы сканирования устанавливаются и запускаются корректно. Также убедитесь, что правильные драйверы загружены для вашей модели сканера. Иногда, вручную собранные драйверы или изменения в конфигурации ядра могут помочь в решении проблем совместимости.
-
Логирование и отладка:
- Включите подробное логирование для служб HPLIP и SANE, чтобы собрать информацию о возникающих ошибках и их причинах. Это можно сделать, запустив службы с ключами для отладки.
-
Тестирование других решений:
- Если ни один из методов не помогает, попробуйте использовать другие версии OpenWRT или даже рассмотрите возможность обновления до более новой версии прошивки, если это возможно для вашего устройства.
Заключение
Проблемы ввода-вывода с HPLIP часто связаны с несовместимостью программного обеспечения и оборудованием. Подходя к решению проблемы систематически — анализируя совместимость драйверов, корректность установленных библиотек и правильность сетевых конфигураций — вы сможете устранить большинство неполадок. Примите во внимание сложность управления Linux-системами в нестандартных средах, таких как OpenWRT, и готовьтесь к необходимости проведения отладки и тестирования различных конфигураций.