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.
Réponses:
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,
scanbd
le service du bouton du scanner ousaned
le service du serveur réseau du scanner peut accéder au scanner, mais pas les deux en même temps.scanbd
verrouille le scanner en actualisant constamment l'état du bouton et lesaned
verrouille pour l'utiliser comme scanner réseau.Cela fonctionne uniquement en utilisant UNIQUEMENT en
scanbd
tant que service.scanbd
doit 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 lesaned
service qui prend le relais. Lorsqu'ilsaned
est terminé d'être un serveur de scanner de réseau, ilscanbd
faut attendre que vous appuyiez sur un bouton ou plus de trafic réseau sur le port sain.Pour que cela fonctionne, vous
saned
devez le configurer deux fois.À la fois en tant que serveur et client sur le même ordinateur. La partie serveur commence lorsque le
scanbd
trafic 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
scanimage
ouscanbd
détecte une pression sur un bouton. Lesaned
client doit être configuré pour se connecter à unsaned
serveur 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 conflitsscanbd
.scanbd
détecte ensuite du trafic réseau sur le port 6566 et se déclenche ensaned
tant que serveur, comme s'il s'agissait en réalité d'un client réseau.La configuration du client est active pendant
/etc/sane.d
que 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.conf
SANE_CONFIG_DIR, il convient de pointer sur lasaned
partie 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:
et si cela fonctionne, ajoutez
nf_conntrack_sane
à/etc/modules
la source