Eu finalmente tenho tudo funcionando ...
O objetivo final para mim era fazer com que os botões digitalizados funcionassem. Até o momento eu descobri, eu tenho os botões de digitalização funcionando e digitalização em rede também.
Acontece que eu estava olhando para o lado errado, e consequentemente indo para o lado errado.
Me desculpe, eu não posso escrever a sequência exata de comandos para fazer este trabalho, já que eu fiz uma grande bagunça quando terminei. Mas espero poder pelo menos ajudar com a lógica geral disso.
Portanto, scanbd
(o serviço de botão do scanner) ou saned
(o serviço do servidor de rede do scanner) podem acessar o scanner, mas não os dois ao mesmo tempo. scanbd
bloqueia o scanner atualizando constantemente o estado do botão e saned
o bloqueia para uso como um scanner de rede.
A maneira como funciona é usando APENAS scanbd
como um serviço.
scanbd
então monitora o estado dos botões constantemente e aciona alguma ação se um botão for pressionado. Mas também consegue escutar na sane-port 6566 (tcp) . Se detectar tráfego, ele deixará de monitorar os botões e iniciará o saned
service que assumirá o controle. Quando saned
for feito como um servidor de scanner de rede, scanbd
continuará a aguardar um pressionamento de botão ou mais tráfego de rede na porta sã.
Para que isso funcione, saned
deve ser configurado duas vezes.
Tanto como servidor e cliente na mesma máquina. A parte do servidor é iniciada quando scanbd
detecta o tráfego da rede e é descrito no parágrafo acima.
A parte do cliente é iniciada manualmente quando você inicia uma verificação via scanimage
ou quando scanbd
detecta um botão. O cliente saned
deve ser configurado para se conectar a uma rede saned
servidor (a mesma máquina, portanto, localhost, 127.0.0.1 ou nome do host, backend ' rede ') - NÃO USB - evitando assim conflita com scanbd
. scanbd
, em seguida, detecta algum tráfego de rede na porta 6566 e dispara saned
como servidor, como se fosse realmente algum cliente de rede.
A configuração do cliente está em /etc/sane.d
, enquanto a configuração do servidor está em /etc/scanbd/sane.d
. A configuração do servidor deve ser copiada de /etc/sane.d
(basta copiar a pasta inteira) e modificada para funcionar como um servidor e se comunicar com o scanner via USB, ou seja, qualquer back-end que o scanner realmente usar. Em /etc/scanbd/scanbd.conf
, o SANE_CONFIG_DIR deve apontar para a parte do servidor saned
: /etc/scanbd/sane.d
Edit: Além disso, se a máquina for firewall, abra a porta 6566 e carregue o módulo do kernel nf_conntrack_sane:
sudo ufw allow 6566/tcp
sudo modprobe nf_conntrack_sane
e, se funcionar, adicione nf_conntrack_sane
a /etc/modules