[sane-devel] Canon I-Sensys MF4780w "push mode" scanning

Alexander Lyashuk mooskagh at gmail.com
Sun Aug 15 10:43:45 BST 2021


Hi sane-devel,

I have a Canon i-Sensys MF4780w network scanner/printer.

It has two ways to start scanning:
- "Remote scanner" / "pull mode", when you enable that mode on the device
and then continue on the computer.
- "Computer" / "push mode", where you select the destination and initiate
scanning from the scanner itself.

My scanner works well in "Remote scanner" mode (through the pixma backend,
I've added "mfnp://10.162.0.7" to pixma.conf).
I'd like to be able to initiate the scans from the scanner (in
"Computer"/push mode) though, so that I can set up a headless server which
will upload documents to Google Drive.

So far I failed to set it up that way, and I wonder whether there is any
hope.

When I select "Scan" -> "Computer" on my scanner,
- First I have to select the destination.
- Then I select the mode (Color/BnW/Custom1/Custom2).

I checked what Windows does to appear in the list of destinations, and it
seems that it sends an MFNP message to the scanner every 5 seconds and so.

I tried to do the same from Linux by calling `scanimage -A` in the loop.
When I did that, a selectable extra empty line indeed appeared in the list
of destinations on the scanner. I checked the messages from Windows and
Linux in network sniffer and it appears that Windows sends the hostname in
ASCII format, while on Linux it's UTF-16, that's the likely reason why the
scanner cannot display the destination name properly.
I wouldn't mind having an empty line as a hostname though as long as it
would work.

When I select "Scan" -> "Computer" -> "empty line" -> "Custom 1" (or
BnW/Custom2/Color), both --button-1 and --button-2 still show value [0] in
`scanimage -A`, so I cannot find any way to know I should start scanning.

I also tried to use scanbd, but it appears not to be able to find the
scanner at all:

[root]# SANE_CONFIG_DIR=/usr/local/etc/scanbd/ ./scanbd -f -d7
./scanbd: reading config file /usr/local/etc/scanbd/scanbd.conf
./scanbd: debug on: level: 7
./scanbd: dropping privs to uid root
./scanbd: dropping privs to gid scanner
./scanbd: drop privileges to gid: 96
./scanbd: Running as effective gid 96
./scanbd: drop privileges to uid: 0
./scanbd: Running as effective uid 0
./scanbd: dbus_init
./scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
./scanbd: SANE_CONFIG_DIR=/usr/local/etc/scanbd/
./scanbd: sane version 1.0
./scanbd: Scanning for local-only devices
./scanbd: start_sane_threads
./scanbd: no devices, not starting any polling thread
./scanbd: start dbus thread
./scanbd: Not Primary Owner (-1)
./scanbd: Name Error (Connection ":1.219" is not allowed to own the service
"de.kmux.scanbd.server" due to security policies in the configuration file)
./scanbd: udev init
./scanbd: get udev monitor
./scanbd: udev fd is non-blocking, now setting to blocking mode
./scanbd: start udev thread
./scanbd: udev thread started

Note the string "Scanning for local-only devices", does it mean it doesn't
attempt to scan network devices?

Any suggestions on what to try next would be very appreciated.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20210815/0597b18c/attachment.htm>


More information about the sane-devel mailing list