Hi Oliver,

Finally I see some macOS users around…

I’m really glad you have found a solution. It’s a while “we” not-expert 
Macintosh users cannot use sane-backends anymore. (We used to use Mattias 
Ellert pkgs…)

Anyway I cannot help you, I would though.

I would like to try this patch, how can I do?

Another thing: since the Mac recognize the USB Scanner already, would it be 
possible to utilize the default macOS library for handling usb devices? So 
configuring sane-backends with this instead of libusb. I’m just asking. I tried 
searching something, I found old Apple Developer articles about it – e.g. 
https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/USBBook/USBIntro/USBIntro.html#//apple_ref/doc/uid/TP40002643-TPXREF101

As a Mac enthusiast I would really like something “native”. (Hope you 
understand what I mean)

Best,
Umberto

PS:
I sent it again since I didn’t made “reply to all” (mailing list too).
Have a nice day.

> Il giorno 26 apr 2019, alle ore 19:56, Oliver Schwartz 
> <[email protected]> ha scritto:
> 
> Hi all,
> 
> I dived into scanning with SANE on MacOS using homebrew in the last few days.
> 
> Back in 2017 two problems were reported ( 
> https://alioth-lists.debian.net/pipermail/sane-devel/2017-July/035508.html ) 
> : The first one, old dependencies on libusb-compat was resolved in homebrew. 
> The second one, sanei_usb barking at unconfigured devices, was not addressed 
> as far as I can see and in fact the same problem bit me when using the 
> snapscan backend.
> 
> I did some googling and found this remark from the libusb-devel mailing list: 
> ( https://sourceforge.net/p/libusb/mailman/message/27491908/ )
> 
>> … OS X won't 
>> automatically configure a device if its descriptors are 
>> vendor-specific (meaning that the device must be configured through 
>> libusb).  But Linux will.
> 
> Looking at the code in sanei_usb.c, libusb_scan_devices() ignores devices 
> that are not configured. sanei_usb_open() returns SANE_STATUS_INVAL when the 
> device is not configured. If it is configured, it is actually configured 
> again.
> 
> I made a crude patch that just continues execution for non-configured devices 
> (this is against sane-backends-1.0.27):
> 
> diff --git a/sanei/sanei_usb.c b/sanei/sanei_usb.c
> index e4b23dc..294c64b 100644
> --- a/sanei/sanei_usb.c
> +++ b/sanei/sanei_usb.c
> @@ -936,7 +936,7 @@ static void libusb_scan_devices(void)
>         DBG (1,
>              "%s: device 0x%04x/0x%04x at %03d:%03d is not configured\n", 
> __func__,
>              vid, pid, busno, address);
> -       continue;
> +       /* continue; */
>       }
> 
>       ret = libusb_get_config_descriptor (dev, 0, &config0);
> @@ -1640,7 +1640,7 @@ sanei_usb_open (SANE_String_Const devname, SANE_Int * 
> dn)
>       if (config == 0)
>       {
>         DBG (1, "sanei_usb_open: device `%s' not configured?\n", devname);
> -       return SANE_STATUS_INVAL;
> +       /*return SANE_STATUS_INVAL; */
>       }
> 
>       result = libusb_get_device_descriptor (dev, &desc);
> 
> 
> This works for me and I can now use scanimage on MacOS with my scanner. 
> However, this is hardly the final solution. Can someone with more knowledge 
> on USB comment on this? Is the check for non-configured devices really useful 
> when the device is actually configured later? Should this check only be 
> removed on MacOS? Are there any side effects to be expected?
> 
> Kind regards,
> 
> Oliver
> 
> 
> -- 
> sane-devel mailing list: [email protected]
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/sane-devel
> Unsubscribe: Send mail with subject "unsubscribe your_password"
>             to [email protected]

-- 
sane-devel mailing list: [email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/sane-devel
Unsubscribe: Send mail with subject "unsubscribe your_password"
             to [email protected]

Reply via email to