avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #60575] Permission denied on macOS Big Sur


From: Joerg Wunsch
Subject: Re: [bug #60575] Permission denied on macOS Big Sur
Date: Tue, 14 Dec 2021 22:17:30 +0100

As Hans Eirik Bull wrote:

> Here's the output from the dtruss.

Well, there's no errno 13 in it.

However, what is remarkable compared to my trace file is

open("/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle/Contents/MacOS/IOUSBLib\0",
 0x0, 0x1FF)               = 3 0

It uses IOUSBFamily.kext rather than

open("/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib\0",
 0x0, 0x0)                 = 3 0

IOHIDFamily.kext.

That despite of your configuration claiming successfully finding
hidapi. That might explain these "Cannot claim interface" errors, but
the question is why it doesn't use hidapi.

The respective code is:

#if defined(HAVE_LIBHIDAPI)
  /*
   * Try HIDAPI first.  LibUSB is more generic, but might then cause
   * troubles for HID-class devices in some OSes (like Windows).
   */
  serdev = &usbhid_serdev;
  for (usbpid = lfirst(pgm->usbpid); rv < 0 && usbpid != NULL; usbpid = 
lnext(usbpid)) {
    pinfo.usbinfo.flags = PINFO_FL_SILENT;
    pinfo.usbinfo.pid = *(int *)(ldata(usbpid));
    pgm->fd.usb.max_xfer = USBDEV_MAX_XFER_3;
    pgm->fd.usb.rep = USBDEV_BULK_EP_READ_3;
    pgm->fd.usb.wep = USBDEV_BULK_EP_WRITE_3;
    pgm->fd.usb.eep = 0;

    strcpy(pgm->port, port);
    rv = serial_open(port, pinfo, &pgm->fd);
  }
  if (rv < 0) {
#endif  /* HAVE_LIBHIDAPI */
#if defined(HAVE_LIBUSB)
    serdev = &usb_serdev_frame;
    for (usbpid = lfirst(pgm->usbpid); rv < 0 && usbpid != NULL; usbpid = 
lnext(usbpid)) {

...and then, it proceeds to using libusb.

What you could do now:

* verify in ac_cfg.h HAVE_LIBHIDAPI is actually set
* add some debug fprintf(stderr ...) statements above to see
  whether hidapi actually finds something

Since you already specified -vvv, usbhid_open() would have logged a
"No devices found" in case of failure. However, your messages say it's
going straight to usbdev_open() which is the libusb counterpart.

So, to me, it seems for some reason, Brew's hidapi library might be
the problem here, even though it's been found by configure.

-- 
cheers, Joerg               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/
Never trust an operating system you don't have sources for. ;-)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]