Analyse SANE, boutons de numérisation et autorisations de service


1

J'ai essayé de faire ce travail toute la journée. J'y suis presque mais il manque encore quelque chose. Voici l'histoire jusqu'à présent:

  • Serveur domestique sans tête Debian Jessie 8.3
  • Scanner / imprimante Canon MP140 MFP entièrement pris en charge par SANE, via USB
  • SANE dll.conf configuré et fonctionnel (tout commenté sauf net et pixma )

scanimage -p --resolution 300 --format=tiff --mode Gray -x 210 -y 297 > test300.tiff ... numérise un papier au format A4 en niveaux de gris et l'enregistre au format 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'

Il semble fonctionner mais ne réagit pas du tout aux boutons.


J'ai essayé d'arrêter le service et de démarrer scanbd en tant que root - AND IT WORKS!

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

Donc, je suppose que c'était une sorte de problème d'autorisations. J'ai essayé de changer /etc/scanbd.conf et de remplacer

user = scand  
group = scanner  

avec

user = root  
group = root

mais alors quand je redémarre le service scanbd, voici ce que je reçois, et les boutons ne fonctionnent plus:

● 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)

Je néglige probablement des détails évidents, mais je ne peux pas vraiment comprendre ce que c'est. Toute aide serait grandement appréciée.



@MariusMatutiae Oui, je l'ai vu. Ça a l'air similaire mais d'après ce que je peux voir, c'est un tout autre problème. Environnement différent également - Debian 6 et un ancien combo Sane / Scanbd. Et quelques fichiers manquants qui sont présents dans mon cas.
vto80

Réponses:


2

J'ai enfin tout fonctionne ...

L'objectif final pour moi était de faire fonctionner les boutons de numérisation. Au moment où j'ai compris, les boutons de numérisation fonctionnaient ET la numérisation réseau également.

Il s'est avéré que je ne le voyais pas comme il fallait et que je ne le faisais pas non plus.
Je suis désolé, je ne peux pas écrire la séquence exacte des commandes pour que cela fonctionne, car j’ai fait un sacré bordel au moment où j’avais terminé. Mais j'espère que je peux au moins aider avec la logique générale de celui-ci.

Ainsi, scanbdle service du bouton du scanner ou sanedle service du serveur réseau du scanner peut accéder au scanner, mais pas les deux en même temps. scanbdverrouille le scanner en actualisant constamment l'état du bouton et le sanedverrouille pour l'utiliser comme scanner réseau.

Cela fonctionne uniquement en utilisant UNIQUEMENT en scanbdtant que service.
scanbddoit ensuite surveiller en permanence l’état des boutons et déclencher une action si un bouton est enfoncé. Mais il peut également écouter sur le sane-port 6566 (tcp) . S'il détecte du trafic, il cesse de surveiller les boutons et lance le sanedservice qui prend le relais. Lorsqu'il sanedest terminé d'être un serveur de scanner de réseau, il scanbdfaut attendre que vous appuyiez sur un bouton ou plus de trafic réseau sur le port sain.

Pour que cela fonctionne, vous saneddevez le configurer deux fois.
À la fois en tant que serveur et client sur le même ordinateur. La partie serveur commence lorsque le scanbdtrafic réseau est détecté et est décrite dans le paragraphe ci-dessus.

La partie client est démarrée manuellement lorsque vous lancez une numérisation via scanimageou scanbddétecte une pression sur un bouton. Le sanedclient doit être configuré pour se connecter à un sanedserveur de réseau (la même machine, donc localhost, 127.0.0.1 ou nom d’hôte, backend ' net ') - PAS USB - évitant ainsi les conflits scanbd. scanbddétecte ensuite du trafic réseau sur le port 6566 et se déclenche en sanedtant que serveur, comme s'il s'agissait en réalité d'un client réseau.

La configuration du client est active pendant /etc/sane.dque celle du serveur est active /etc/scanbd/sane.d. La configuration du serveur doit y être copiée /etc/sane.d(il suffit de copier le dossier entier), puis modifiée pour servir de serveur et communiquer avec le scanner via USB, c'est-à-dire quel que soit le système utilisé par le scanner. Dans /etc/scanbd/scanbd.confSANE_CONFIG_DIR, il convient de pointer sur la sanedpartie serveur:/etc/scanbd/sane.d

Edit: en outre, si la machine est dotée d’un pare-feu, ouvrez le port 6566 et chargez le module de noyau nf_conntrack_sane:

sudo ufw allow 6566/tcp

sudo modprobe nf_conntrack_sane

et si cela fonctionne, ajoutez nf_conntrack_saneà/etc/modules

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.