cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Trouble Connecting EOS R8 to EOS Utility on a Mac

tjdowling
Contributor

I am having issues connecting my R8 to my Mac via the EOS Utility. I have the latest software and have gone through the user manual. The message I keep getting is:

"Communication with the camera via USB cannot be established.
Start EOS Utility after closing all the apps that communicate with the camera, and then turn on the camera again."

I am unaware of any apps that I have that would be trying to communicate with my camera in the background. Anyone know what's going on? Thanks in advance.

79 REPLIES 79

The problem here is Lightroom cannot make folders “YYYY_MM_DD”. I have this format of names since 2005 and I don’t want to change it. The second problem is Lightroom does not allow to create custom folder name templates. Is it rocket science to implement?

Thank you, this would be a great solution if I didn't need live view. I take photos of the jewelry I make so I need to have the larger view while taking the photos.

Why you need to bother with the format "YYYY_MM_DD"? Just download first and then rename the folder with whatever format you want. I use DD-MM-YYYY format in LR. You can rename the folder inside Lightroom as well. 

Why? Because I'd like to spend as less effort as possible.

undies
Apprentice

I had this issue with my R10 on Mac. I found out it was Google Drive accessing the USB port - stopping the EOS Utility from accessing it. Even though I had told Google Drive to ignore the drive, it was still accessing it. Once I quit Google Drive, it popped up right away in the EOS Utility. Hope this helps.

I can confirm, that quitting Google Drive on macOS Sequoia worked for me. Thank you for the solution.

achugh
Apprentice

For anyone facing this problem on any version of MacOS or any version of EOS Utility, as has been said here across various posts, the EOS utility is looking for an exclusive connection to the camera. When it cannot receive this connection, we all see the dreaded message mentioned in the first post.

On PAGE 5, a post by "ltahb", on PAGE 7 a post by "kolkul" and on PAGE 8 a post by "miric" tells us the common applications which could take control of the USB port there by denying the exclusive access to the camera. Restarting, rebooting and going into safe mode as well as running shell scripts are various ways to stop the offending applications running in the background which could be using USB port denying exclusive access. Properly closing these applications will get you back to a working state.

MacOS native PREVIEW application, Dropbox, Google Drive, Lightroom are most common offenders which if running in the background will get you in this error situation.

Now that I know what is happening, I always check if any application is running in the background that I need to close. Once EOS utility is able to establish the connection, these applications can be started without any issue.

My assessment is that Canon's EOS Utility is looking for it be FIRST in the USB Port connection chain. I wish they can improve their connectivity like all these other applications which are NOT looking for FIRST in the connection chain for USB port access. Modern USB ports are chained, offered via hubs etc. so switching to a different port also does not help. It seems Canon does not have skilled Mac OS developers in comparison to Windows development team.

I hope this message helps someone facing this problem. It took me almost 2 years to figure it out so sharing back to make your life easier.

That's why I used my solution, because closing Dropbox and Google Drive every time I want to connect my camera and import photos via Canon EOS Utility sounds too weird. Canon does not pay me for this kind of exercise. I'm tired of playing this special Olympic game, and I started importing photos into Lightroom Classic. More than that, I bought a card reader, and now I use Finder to import my photos into my library. My "chears" to Canon 🤮

In my case, I have no alternative as I am using my EOS 5D Mark III as a webcam and I really need the EOS Utility to keep the camera from shutting down every 29 minutes and 59 seconds ( a Canon introduced limitation that has recently been removed on select few DSLR cameras so that video cameras can be sold ).

zabaat
Apprentice

This script worked VERY well for me, I had troubles with the other ones.

#!/usr/bin/env bash
# free-eos.sh — kill apps/agents that commonly seize Canon cameras on macOS
# Usage: ./free-eos.sh [--dry-run]
# Note: Does NOT kill EOS Utility itself.

set -euo pipefail

DRY_RUN=false
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=true

# Exact process names known to grab PTP/MTP cameras or Photos library tasks
# (We avoid killing EOS Utility itself.)
TARGETS=(
"PTPCamera"
"Image Capture" # Apple's Image Capture app
"Photos" # Photos app
"photoanalysisd" # Photos background analyzer
"photolibraryd" # Photos library background service (older/macOS versions)
"applephotolibraryd" # Photos library daemon (some macOS versions)
"imagent" # Can sometimes poke camera sessions
"com.apple.ImageCaptureExtension2" # Image Capture extension host (shown via -f)
)

# Patterns to match via command-line (-f) because their process names vary
PATTERNS=(
"ImageCaptureExtension"
"ICCameraDevice.*"
)

# Processes we explicitly do NOT kill (EOS Utility 3 and helpers)
PROTECT_PATTERNS=(
"EOS Utility"
"EOSUtility"
"EOSUtility3"
"Canon EOS Utility"
)

say() { echo "[free-eos] $*"; }

kill_exact() {
local name="$1"
# -x: exact match; returns nonzero if none
if pgrep -x "$name" >/dev/null 2>&1; then
local pids
pids=$(pgrep -x "$name" || true)
for pid in $pids; do
# skip protected
if ps -o command= -p "$pid" | grep -Eiq "$(IFS='|'; echo "${PROTECT_PATTERNS[*]}")"; then
say "Skipping protected process: $name (pid $pid)"
continue
fi
if $DRY_RUN; then
say "Would kill: $name (pid $pid)"
else
say "Killing: $name (pid $pid)"
kill "$pid" 2>/dev/null || true
# Give it a moment to exit gracefully; then SIGKILL if needed
sleep 0.4
if kill -0 "$pid" 2>/dev/null; then
say "Force-killing: $name (pid $pid)"
kill -9 "$pid" 2>/dev/null || true
fi
fi
done
fi
}

kill_pattern() {
local pattern="$1"
# -f: match against full command line
local pids
pids=$(pgrep -f "$pattern" || true)
for pid in $pids; do
local cmd
cmd=$(ps -o command= -p "$pid" 2>/dev/null || true)
[[ -z "$cmd" ]] && continue
# Skip protected processes
if echo "$cmd" | grep -Eiq "$(IFS='|'; echo "${PROTECT_PATTERNS[*]}")"; then
say "Skipping protected process (pattern match): $cmd (pid $pid)"
continue
fi
if $DRY_RUN; then
say "Would kill (pattern '$pattern'): $cmd (pid $pid)"
else
say "Killing (pattern '$pattern'): $cmd (pid $pid)"
kill "$pid" 2>/dev/null || true
sleep 0.4
if kill -0 "$pid" 2>/dev/null; then
say "Force-killing: $cmd (pid $pid)"
kill -9 "$pid" 2>/dev/null || true
fi
fi
done
}

# 1) Kill exact-name offenders
for name in "${TARGETS[@]}"; do
kill_exact "$name"
done

# 2) Kill by pattern (captures extension hosts / variant names)
for pat in "${PATTERNS[@]}"; do
kill_pattern "$pat"
done

# 3) Specifically swat PTPCamera’s launch-on-connect instance (sometimes re-spawns fast)
# Run this a couple of times to be sure we've caught it after relaunch.
for i in 1 2; do
kill_exact "PTPCamera"
sleep 0.2
done

# 4) Optional: politely relaunch EOS Utility 3 if installed and not already running.
# Comment this block out if you don't want auto-launch.
EOS_APP_CANDIDATES=(
"/Applications/Canon Utilities/EOS Utility/EOS Utility.app"
"/Applications/EOS Utility 3.app"
"/Applications/Canon Utilities/EOS Utility 3/EOS Utility 3.app"
)
if ! pgrep -f "EOS Utility" >/dev/null 2>&1; then
for app in "${EOS_APP_CANDIDATES[@]}"; do
if [[ -d "$app" ]]; then
if $DRY_RUN; then
say "Would launch: $app"
else
say "Launching: $app"
open -a "$app" || true
fi
break
fi
done
else
say "EOS Utility already running; not relaunching."
fi

say "Done. If EOS Utility still can’t see the camera, unplug/replug USB and re-run this script."
Holiday
Announcements

12/18/2025: New firmware updates are available.

EOS C400 - Version 1.0.4.1

EOS C80 - Version 1.0.4.1

XF605 - Version 1.0.7.1


12/15/2025: New firmware update available for EOS C50 - Version 1.0.1.1

11/20/2025: New firmware updates are available.

EOS R6 Mark III - Version 1.0.1

EOS R3 - Version 2.0.0

EOS R1 - Version 1.2.0

EOS R5 Mark II - Version 1.2.0

EOS R5 - Version 2.2.1

PowerShot G7 X Mark III - Version 1.4.0

PowerShot SX740 HS - Version 1.0.2


10/21/2025: Service Notice: To Users of the Compact Digital Camera PowerShot V1

10/15/2025: New firmware updates are available.

Speedlite EL-5 - Version 1.2.0

Speedlite EL-1 - Version 1.1.0

Speedlite Transmitter ST-E10 - Version 1.2.0


07/28/2025: Notice of Free Repair Service for the Mirrorless Camera EOS R50 (Black)

7/17/2025: New firmware updates are available.

EOS R7 - Version 1.7.1

EOS R10 - Version 1.7.0

EOS R8 - Version 1.5.0

EOS R50 - Version 1.4.0

Powershot V10 - Version 1.4.0

Powershot V1 - Version 1.1.0

EOS R50V - Version 1.1.1


05/21/2025: New firmware update available for EOS C500 Mark II - Version 1.1.5.1

02/20/2025: New firmware updates are available.

RF70-200mm F2.8 L IS USM Z - Version 1.0.6

RF24-105mm F2.8 L IS USM Z - Version 1.0.9

RF100-300mm F2.8 L IS USM - Version 1.0.8

RF50mm F1.4 L VCM - Version 1.0.2

RF24mm F1.4 L VCM - Version 1.0.3


01/22/2024: Canon Supports Disaster Relief Efforts in California
01/14/2025: Steps to resolve still image problem when using certain SanDisk SD cards with the Canon EOS R5 Mark II