1

Я пытался сделать эту работу весь день. Я почти там, но чего-то не хватает. Вот история на данный момент:

  • Debian Jessie 8.3 безголовый домашний сервер
  • Сканер / принтер Canon MP140 MFP, полностью поддерживаемый SANE, через USB
  • SANE dll.conf настроен и работает (все закомментировано, кроме net и pixma)

scanimage -p --resolution 300 --format=tiff --mode Gray -x 210 -y 297 > test300.tiff ... сканирует бумагу формата A4 в оттенках серого и сохраняет ее в формате tiff просто отлично.


sudo service scanbd status
● scanbd.service - Scanner button polling Service
   Loaded: loaded (/lib/systemd/system/scanbd.service; disabled)
   Active: active (running) since Fri 2016-02-19 19:24:03 CET; 23min ago
 Main PID: 1740 (scanbd)
   CGroup: /system.slice/scanbd.service
           └─1740 /usr/sbin/scanbd -f

Feb 19 19:24:03 server scanbd[1740]: /usr/sbin/scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'

Кажется, он работает, но не реагирует на кнопки вообще.


Я попытался остановить службу и запустить scanbd от имени пользователя root - И ЭТО РАБОТАЕТ!

sudo scanbd -f
scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
scanbd: trigger action for button-1 for device pixma:04A9172B_ABCDEF with script example.script

Итак, я думаю, что это какая-то проблема с разрешениями. Я пытался изменить /etc/scanbd.conf и заменить

user = scand  
group = scanner  

с

user = root  
group = root

но потом, когда я перезапускаю сервис scanbd, это то, что я получаю, и кнопки снова не работают:

● scanbd.service - Scanner button polling Service
   Loaded: loaded (/lib/systemd/system/scanbd.service; disabled)
   Active: active (running) since Fri 2016-02-19 20:07:11 CET; 4s ago
 Main PID: 2562 (scanbd)
   CGroup: /system.slice/scanbd.service
           └─2562 /usr/sbin/scanbd -f

Feb 19 20:07:11 server scanbd[2562]: /usr/sbin/scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
Feb 19 20:07:11 server scanbd[2562]: /usr/sbin/scanbd: Not Primary Owner (-1)
Feb 19 20:07:11 server scanbd[2562]: /usr/sbin/scanbd: Name Error (Connection ":1.96" is not allowed to own the service "de.kmux.scanbd.server" due to security policies in the configuration file)

Я, вероятно, упускаю из виду некоторые очевидные детали, но я не могу понять, что это такое. Любая помощь будет принята с благодарностью.

1 ответ1

2

У меня наконец все заработало ...

Конечной целью для меня было заставить работать кнопки сканирования. К тому времени, когда я понял это, у меня появились кнопки сканирования и сканирование по сети.

Оказывается, я смотрел на это неправильно, и, следовательно, иду на это неправильно.
Извините, я не могу записать точную последовательность команд, чтобы сделать эту работу, потому что к тому времени, когда я закончил, я запутался. Но я надеюсь, что смогу хотя бы помочь с общей логикой этого.

Таким образом, scanbd (служба кнопки сканера) или saned (служба сетевого сервера сканера) могут получить доступ к сканеру, но не оба одновременно. scanbd блокирует сканер, постоянно обновляя состояние кнопки, а saned блокирует его для использования в качестве сетевого сканера.

Это работает, используя ТОЛЬКО scanbd как сервис.
scanbd постоянно отслеживает состояние кнопок и запускает некоторые действия при нажатии кнопки. Но он также может прослушивать вменяемый порт 6566 (tcp). Если он обнаруживает трафик, он прекращает мониторинг кнопок и запускает службу saned которая затем вступает во владение. Когда saned завершает работу в качестве сервера сетевого сканера, scanbd возобновляет ожидание нажатия кнопки или увеличения сетевого трафика на sane-порту.

Чтобы это работало, saned должен быть настроен дважды.
И как сервер, и как клиент на одной машине. Серверная часть запускается, когда scanbd обнаруживает сетевой трафик и описывается в параграфе выше.

Клиентская часть запускается либо вручную, когда вы запускаете сканирование с помощью scanimage , либо когда scanbd обнаруживает нажатие кнопки. Клиент saned должен быть настроен для подключения к сетевому серверу saned (тот же компьютер, т.е. localhost, 127.0.0.1 или имя хоста, серверная часть ' net ') - НЕ USB - таким образом, чтобы избежать конфликтов с scanbd . scanbd затем обнаруживает некоторые сетевой трафик на порту 6566 и пожары на saned как сервер, так же , как если бы это было на самом деле какой - то клиент сети.

Конфигурация клиента находится в /etc/sane.d а конфигурация сервера - в /etc/scanbd/sane.d . Конфигурацию сервера необходимо скопировать туда из /etc/sane.d (просто скопировать всю папку), а затем изменить, чтобы он действовал как сервер и связывался со сканером через usb, то есть независимо от того, какой бэкэнд в действительности используется сканером. В /etc/scanbd/scanbd.conf SANE_CONFIG_DIR должен указывать на saned серверную часть: /etc/scanbd/sane.d

Изменить: Кроме того, если машина защищена брандмауэром, откройте порт 6566 и загрузите модуль ядра nf_conntrack_sane:

sudo ufw allow 6566/tcp

sudo modprobe nf_conntrack_sane

и если это сработает , добавьте nf_conntrack_sane в /etc/modules

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .