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 21:00:07 +0100

As Hans Eirik Bull wrote:

> I'm not sure what I do wrong.
> 
> After running ./configure I get the following output:
> 
> Configuration summary:
> ----------------------
> DO HAVE    libelf
> DO HAVE    libusb
> DO HAVE    libusb_1_0
> DON'T HAVE libftdi1
> DO HAVE    libftdi
> DON'T HAVE libhid
> DO HAVE    libhidapi
> DO HAVE    pthread
> DISABLED   doc
> DISABLED   parport
> DISABLED   linuxgpio
> DISABLED   linuxspi

As I'm using Macports which installs under /opt/local, I configure
with:

env LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include ./configure

My configuratiion summary looks slightly different from yours:

Configuration summary:
----------------------
DO HAVE    libelf
DO HAVE    libusb
DO HAVE    libusb_1_0
DO HAVE    libftdi1
DON'T HAVE libftdi
DON'T HAVE libhid
DO HAVE    libhidapi
DO HAVE    pthread
DISABLED   doc
DISABLED   parport
DISABLED   linuxgpio
DISABLED   linuxspi

libhidapi is present in both our summaries though, and libusb, too.
The differences in libftdi vs. libftdi1 are not important for the
Xplained Mini board.

> sudo make all

No "sudo" needed here btw., it would only be needed for "make install"
(so you can write into system directories like /usr/local).

> /Users/hans/Downloads/SVN/avrdude/avrdude 
> -C/Users/hans/Documents/Arduino/hardware/MegaCoreX/megaavr/avrdude.conf -vvv 
> -patmega4808 -cxplainedmini_updi -Pusb

You are using the avrdude executable from
/Users/hans/Downloads/SVN/avrdude but avrdude.conf from a different
directory. Depending on the differences between both, this can become
an issue.

The Xplained Mini and the ATmega4808 are supposed to be supported by
your SVN version of AVRDUDE, so use the avrdude.conf file from the
same directory as the binary.

> avrdude: jtag3_open_updi()
> avrdude: usbdev_open(): Found mEDBG CMSIS-DAP, serno: MICROUPDIPROGRAMMERX
> avrdude: usbdev_open(): error claiming interface 0: Permission denied
> avrdude: usbdev_open(): error claiming interface 1: Permission denied

Well, dtruss might hopefully help us finding the reason for that.

I don't have an Xplained Mini with the ATmega4808, only one with an
ATtiny817 but that's the same mEDBG chip and also an UPDI interface:

% ./avrdude -C avrdude.conf -c xplainedmini_updi -p attiny817

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.10s

avrdude: Device signature = 0x1e9320 (probably t817)

avrdude: safemode: Fuses OK (E:FF, H:FF, L:FF)

avrdude done.  Thank you.

> I have no idea how to use dtruss and what to do with it, sorry.

Well, you could read the man page. ;-)

It's as simple as prefixing your actual command with "sudo dtruss",
and most usefully, capturing the output in a file:

sudo truss ./avrdude -C avrdude.conf -patmega4808 -cxplainedmini_updi >& 
logfile.txt

(assuming your working directory is /Users/hans/Downloads/SVN/avrdude)

However, when looking at the output, I confess I have no idea how all
that USB stuff is actually working on MacOS. I see a lot of references
to

/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib

which apparently seems to enable HIDaccess (kext is a kernel extension
module).

Nevertheless, we might be able to spot a syscall that returned the
"permission denied" (errorcode 13, that's supposed to be the last word
in one line. For example, if I specify "-C avrdude.foo" (a
non-existing config file), the last line in my dtruss log is:

open_nocancel("avrdude.foo\0", 0x0, 0x0)                 = -1 2

The -1 is the syscall return code (i.e, a failure instead of a valid
filedescriptor number), the 2 is the errno (ENOENT, "No such file or
directory").

-- 
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]