SANE – Не удается получить доступ к сетевому сканеру – saned.service не запускается (код=exited, статус=1/FAILURE)

Вопрос или проблема

в течение нескольких дней я пытаюсь подключиться к Brother DCP-J315W через SANE, который хорошо работает с Win10, но я не могу запустить его на Ubuntu 24.04.

После прочтения множества форумных статей и проверки команд, таких как

friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ brsaneconfig3 -q 
  0 "DCP-195C"
  ...
 26 "DCP-J315W"
  ...
 97 "MFC-8890DW"

Устройства в сети
  0 DCPJ315W            "DCP-J315W"         I:192.168.178.23
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ ping 192.168.178.23
PING 192.168.178.23 (192.168.178.23) 56(84) байт данных.
64 байта от 192.168.178.23: icmp_seq=1 ttl=255 время=4.07 мс
64 байта от 192.168.178.23: icmp_seq=2 ttl=255 время=2.56 мс
64 байта от 192.168.178.23: icmp_seq=3 ttl=255 время=2.72 мс

64 байта от 192.168.178.23: icmp_seq=4 ttl=255 время=3.00 мс
64 байта от 192.168.178.23: icmp_seq=5 ttl=255 время=2.80 мс
64 байта от 192.168.178.23: icmp_seq=6 ttl=255 время=3.27 мс
^C
--- статистика ping для 192.168.178.23 ---
6 пакетов передано, 6 получено, 0% потеря пакетов, время 5008 мс
rtt мин/сред/макс/мдел = 2.557/3.069/4.065/0.498 мс
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ scanimage -L

Сканеры не найдены. Если вы ожидали увидеть что-то другое,
проверьте, что сканер подключен, включен и обнаружен
с помощью инструмента sane-find-scanner (если применимо). Пожалуйста, прочтите
документацию, которая поставляется с этим программным обеспечением (README, FAQ, manpages).
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ 

и файлов конфигурации, я обнаружил, что saned.service не запускается. Другие действия (перезапуск, остановка) не имеют на него никакого влияния.

friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl status saned.service
× saned.service - LSB: Сетевой сервер сканера SANE
     Загружен: загружено (/etc/init.d/saned; сгенерировано)
     Активно: неудача (Результат: код выхода) с Пт 2025-01-31 06:05:51 CET; прошло 44 мин
       Документы: man:systemd-sysv-generator(8)
    Процесс: 19072 ExecStart=/etc/init.d/saned start (код=завершен, статус=1/ОШИБКА)
        CPU: 26ms

31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19072]:  * Запуск сетевого сервера сканера SANE saned
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: saned (AF-indep+IPv6) от sane-backends 1.2.1-debian стартует
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: do_bindings: [1] привязка не удалась: адрес уже используется
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: do_bindings: [0] привязка не удалась: адрес уже используется
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: do_bindings: не удалось привязать адрес. Выход.
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: ФАТАЛЬНАЯ ОШИБКА; спасение, ожидание завершения дочерних процессов...
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx saned[19079]: bail_out: все дочерние завершены
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: saned.service: контр. процесс завершился с кодом, статус=1/ОШИБКА
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: saned.service: ошибка с результатом 'код выхода'.
31 янв 06:05:51 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: Не удалось запустить saned.service - LSB: сетевой сервер сканера SANE.
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl status saned.socket
● saned.socket - входящий сокет saned
     Загружен: загружено (/etc/systemd/system/saned.socket; включено; пресет: включено)
     Активно: активно (прослушивание) с Пт 2025-01-31 04:38:59 CET; прошло 2ч 11мин
     Слушаю: [::]:6566 (Stream)
   Принято: 6; Подключено: 0;
      Задачи: 0 (ограничение: 18842)
     Память: 8.0K (пик: 268.0K)
        CPU: 3ms
     CGroup: /system.slice/saned.socket

31 янв 04:38:59 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: Прослушивание saned.socket - входящий сокет saned.
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl restart saned.service
Работа для saned.service завершилась неудачно, поскольку управляющий процесс завершился с ошибкой.
См. "systemctl status saned.service" и "journalctl -xeu saned.service" для подробностей.
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl stop saned.service
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl restart saned.service
Работа для saned.service завершилась неудачно, поскольку управляющий процесс завершился с ошибкой.
См. "systemctl status saned.service" и "journalctl -xeu saned.service" для подробностей.
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl stop saned.service
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$ sudo systemctl status saned.service
× saned.service - LSB: Сетевой сервер сканера SANE
     Загружен: загружено (/etc/init.d/saned; сгенерировано)
     Активно: неудача (Результат: код выхода) с Пт 2025-01-31 06:54:07 CET; прошло 15с
       Документы: man:systemd-sysv-generator(8)
    Процесс: 27668 ExecStart=/etc/init.d/saned start (код=завершен, статус=1/ОШИБКА)
        CPU: 29ms

31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27668]:  * Запуск сетевого сервера сканера SANE saned
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: saned (AF-indep+IPv6) от sane-backends 1.2.1-debian стартует
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: do_bindings: [1] привязка не удалась: адрес уже используется
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: do_bindings: [0] привязка не удалась: адрес уже используется
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: do_bindings: не удалось привязать адрес. Выход.
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: ФАТАЛЬНАЯ ОШИБКА; спасение, ожидание завершения дочерних процессов...
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx saned[27675]: bail_out: все дочерние завершены
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: saned.service: контр. процесс завершился с кодом, статус=1/ОШИБКА
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: saned.service: ошибка с результатом 'код выхода'.
31 янв 06:54:07 friedrich-xyz-Laptop-15-cs3xxx systemd[1]: Не удалось запустить saned.service - LSB: сетевой сервер сканера SANE.
friedrich@friedrich-xyz-Laptop-15-cs3xxx:~$

В процессе этого обучения я понял, что порт 6566 удерживается процессом инициализации, пока нет “работы” для saned.service.

Несмотря на знание, что сервис ожидает активации входящим пакетом через saned.socket, он не должен “зависать” в этом состоянии. Возможно, я ошибаюсь и не понимаю, как приложение, systemd и saned.service взаимодействуют.

Что может быть коренной причиной или даже решением?

С наилучшими пожеланиями,

FrSch

Ответ или решение

Уважаемый FrSch,

Приветствую вас и спасибо за предоставленную информацию о вашей проблеме с доступом к сетевому сканеру Brother DCP-J315W через SANE в Ubuntu 24.04. Проблема взаимодействия между сервисами и сетью требует тщательного анализа, чтобы выявить и устранить её корень.

Теоретическая часть

SANE (Scanner Access Now Easy) — это система, предоставляющая программное обеспечение для работы с различными сканерами в Unix-подобных системах. В неё входит демон saned, который позволяет другим устройствам в сети использовать функции сканера. saned.service отвечает за сетевые запросы сканирования, а saned.socket управляет прослушиваемым портом для этих запросов.

Из вашей информации видно, что saned.service не способен запуститься из-за ошибки с привязкой к порту (bind error), что обычно говорит о конфликте портов. В данном случае, ошибка «Address already in use» указывает, что порт 6566 уже используется другим процессом либо самим saned.socket.

Пример

Исходя из вывода команды systemctl, можно видеть, что saned.socket работает и активно прослушивает порт 6566. Однако, когда saned.service пытается запуститься, он не может привязаться к тому же порту, что и приводит к его сбою. Это типичный сценарий, когда два процесса пытаются использовать один и тот же порт: первый, который успел занять порт, занимает его эксклюзивно, не оставляя доступа второму.

Приложение

Для решения вашей проблемы предлагаю следующие шаги:

  1. Проверка конфигурации сокетов и сервисов:

    • Проверьте /etc/sane.d/saned.conf и убедитесь, что в нём установлены правильные настройки для сетевого адреса, с которого возможен доступ к сканеру.
    • Убедитесь, что конфигурация saned соответствует используемым IP-адресам и портам.
  2. Отключение saned.service:

    • Поскольку saned.socket активен, нет необходимости в запуске saned.service вручную. saned.socket автоматически запускает сервис при получении пакетов. Поэтому отключите автозапуск saned.service:
      sudo systemctl disable saned.service
      sudo systemctl stop saned.service
  3. Диагностика активных соединений:

    • Используйте ss или netstat для проверки активных подключений на порту 6566:
      sudo ss -tuln | grep 6566
  4. Проверка конфликтующих процессов:

    • Убедитесь, что нет других процессов, использующих порт 6566. Если это процесс системы, убедитесь в отсутствии параллельных процессов, которые могли бы влиять на работу сервиса.
  5. Обновление и проверка драйверов и библиотек SANE:

    • Убедитесь, что все пакеты SANE актуальны, особенно sane-backends, который предоставляет функционал для вашего сканера:
      sudo apt update
      sudo apt upgrade
  6. Создание и проверка udev-правил (если необходимо):

    • Иногда требуется дополнительная настройка прав доступа к устройству, если сканер видится, но недоступен. Вы можете создать файл правил в /etc/udev/rules.d/.
  7. Журналы и Отладка:

    • Используйте journalctl для более детализированной диагностики ошибок saned.service:
      journalctl -xeu saned.service

Надеюсь, данные шаги помогут вам устранить проблемы с saned.service и обеспечат стабильное подключение вашего сканера. Не стесняйтесь задавать дополнительные вопросы, если что-то останется неясным.

С уважением,
Ваш IT-эксперт.

Оцените материал
Добавить комментарий

Капча загружается...