Can you run
which python
Can you run
which python
which python3
/usr/local/bin/python3
python3 --version
Python 3.13.0
Okay try running the above command for brew to install pm3 on arm64
You’re missing some dependencies and that’s the best way to satisfy them
well, some progress it seems. It was able to install via brew & flash boot_rom , but it’s failing with the full_image.
::update::
the successful bootrom flash and failed full_image was from the git-built boot rom & full_image compiled files. I realized that the brew install was likely different and found the brew-installed versions in /usr/local/bin and attempted flashing from their and the brew boot rom failed with the following error (which is similar to the failed full image from the self-compiled git image.
Waiting for Proxmark3 to appear on /dev/tty.usbmodemiceman1
🕚 40 found
[!!] 🚨 ====================== OBS ! ===========================================
[!!] 🚨 Note: Your bootloader does not understand the new CMD_BL_VERSION command
[!!] 🚨 It is recommended that you first update your bootloader alone,
[!!] 🚨 reboot the Proxmark3 then only update the main firmware
[!!] 🚨 ------------- Follow these steps -------------------
[!!] 🚨 1) ./pm3-flash-bootrom
[!!] 🚨 2) ./pm3-flash-fullimage
[!!] 🚨 3) ./pm3
[=] ---------------------------------------------------
[=] Available memory on this board: UNKNOWN
[!!] 🚨 ====================== OBS ! ======================================
[!!] 🚨 Note: Your bootloader does not understand the new CHIP_INFO command
[=] Permitted flash range: 0x00100000-0x00140000
[!!] 🚨 ====================== OBS ! ========================================
[!!] 🚨 Note: Your bootloader does not understand the new START_FLASH command
[+] Loading usable ELF segments:
[+] 0: V 0x00100000 P 0x00100000 (0x00000200->0x00000200) [R X] @0x94
[+] 1: V 0x00200000 P 0x00100200 (0x000014b0->0x000014b0) [R X] @0x298
[+] Flashing...
[+] Writing segments for file: /usr/local/Cellar/proxmark3/HEAD-0f9cb05/bin/../share/proxmark3/firmware/bootrom.elf
[+] 0x00100000..0x001001ff [0x200 / 1 blocks]
[!] ⚠️ Communicating with Proxmark3 device failed
[!!] 🚨 Error: Unexpected reply 0x0000 (expected ACK)
[!!] 🚨 Error writing block 0 of 1
[!] ⚠️ The flashing procedure failed, follow the suggested steps!
[+] All done
[=] Have a nice day!
Ehh…
What’s this…
My bet is that the memory size is the problem. Iceman requires 512kb but there are many easy versions out there with only 256kb of memory… any stickers or indicators on the proxmark3 itself that might indicate memory size?
I saw that - Will double check shortly but don’t recall seeing anything to that effect. It’s whatever dt sent me - should have been 512 - I think that’s an artifact of it not being able to read the memory value.
So I think this is because you have two versions of proxmark installed. It’s why I recommend deleting the brew version now that you have the dependencies and only using the git fork.
So now from the git folder, start the guide over and do a fresh compile.
There’s also a note about converting from an hid device I have to look into that may be your problem
confirmed it has a 512 sticker on it.
Brew uninstalled it - recompiled still failed with the following errors and warnings:
warning: search path '/usr/local/opt/openssl@1.1/lib' not found
ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.4.0/lib/libcrypto.3.dylib': found architecture 'x86_64', required architecture 'arm64'
Undefined symbols for architecture arm64:
ld: symbol(s) not found for architecture arm64
<...omitted...>
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[-] CC pcf7931.c
make[1]: *** [brute_key] Error 1
make: *** [mfd_aes_brute/all] Error 2
make: *** Waiting for unfinished jobs....
<...omitted...>
ld: warning: ignoring file '/usr/local/Cellar/jansson/2.14/lib/libjansson.4.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/lz4/1.10.0/lib/liblz4.1.10.0.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/gd/2.3.3_6/lib/libgd.3.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/readline/8.2.13/lib/libreadline.8.2.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/python@3.13/3.13.0_1/Frameworks/Python.framework/Versions/3.13/Python': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/qt@5/5.15.15_2/lib/QtWidgets.framework/Versions/5/QtWidgets': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/qt@5/5.15.15_2/lib/QtGui.framework/Versions/5/QtGui': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/qt@5/5.15.15_2/lib/QtCore.framework/Versions/5/QtCore': found architecture 'x86_64', required architecture 'arm64'
Undefined symbols for architecture arm64:
<...omitted...>
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [proxmark3] Error 1
make: *** [client/all] Error 2
brew uninstall --ignore-dependencies python@3.12
brew reinstall python@3.11
If this doesn’t work I think I need to see if you’re using the arm version of homebrew.
The results of
Brew Config
Should say Rosetta is true.
But to be safe if the above commands didn’t work post the results of brew Config please
Removed 3.13 and reinstalled 3.11 with same results. Rosetta is installed. brew config details below:
brew config
HOMEBREW_VERSION: 4.4.4
ORIGIN: https://github.com/Homebrew/brew
HEAD: 824efa8836dc226aa92dbbf7404c1b4a66707cca
Last commit: 4 days ago
Core tap HEAD: 3bb613245204e179f5ddeac9f61aa7bbfda64ac8
Core tap last commit: 2 days ago
Core tap JSON: 07 Nov 23:50 UTC
Core cask tap JSON: 07 Nov 23:50 UTC
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.ERHuxeJq5j/org.macosforge.xquartz:0
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 3.3.5 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/3.3.5/bin/ruby
CPU: octa-core 64-bit westmere
Clang: 16.0.0 build 1600
Git: 2.15.0 => /usr/local/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.1-x86_64
CLT: 16.1.0.0.1.1729049160
Xcode: N/A
Rosetta 2: true
can you run Brew Doctor and post the results
i actually think i figured out your issue.
Question regarding your mac. Did you have a mac before this Silicon one that had an intel cpu that you used migration assistant to move your files over from?
i did - yes - this was migrated from an intel mac
thats the problem…
Migration assistant moved your Intel based Homebrew config to the M1 so homebrew gets confused.
Run these commands
arch -x86_64 /usr/local/bin/brew bundle dump --global
This takes all your current Homebrew installations into a logfile. you can then search through the logfile and prune out anything you dont normally use
arch
This is just to ensure your terminal is running arm64. if it isnt then stop here.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
This just installs Homebrew and since you are on a M1 using an ARM64 terminal it will ensure it installs correctly
/opt/homebrew/bin/brew bundle install --global
This reinstalls your former applications. You’re gonna get an error message about Homebrew core. it can be ignored.
Sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" -- --path=/usr/local
This removes the Intel version of Homebrew.
Then, try your Proxmark commands and see what occurs.
looks like that did it - I did reinstall brew after the last removal, then went back through the original steps (button trick was required) and I have pm3 functioning now.
Thank you for working through this with me! Greatly appreciated!
Glad i got you squared away!!!
Posting here because this seems to have the most OSX Proxmark Information.
Ran into an odd issue setting up the Proxmark Environment on an Old Macbook i rarely use. There was an issue after i updated and every make attempt gave me errors about
IoStream not found
and the one that had me stumped for a few hours
/usr/local/Cellar/qt@5/5.15.16/lib/QtCore.framework/Headers/qglobal.h:45:12: fatal error: 'type_traits' file not found
45 | # include <type_traits>
| ^~~~~~~~~~~~~
1 error generated.
So i went back and forth between C++ and GCC compilers, until finally i figured to start fresh. I got lucky and started with uninstalling commandline tools
I ran:
xcode-select -p
To find the path, and then
sudo rm -rf /Library/Developer/CommandLineTools
To remove it when i verified the path.
i ran xcode-select -p
again just to verify it was removed and to mysuprise there was ANOTHER CommandLineTools installed in developer.
So i removed that version too
sudo rm -rf /Applications/Xcode.app/Contents/Developer
Then i reinstalled commandline tools
xcode-select --install
and everything worked. No clue how multiple versions ended up on this machine, but i was chasing my tail trying to figure it out for almost a full day.
Thanks to @Aoxhwjfoavdlhsvfpzha for attempting to help.
Glad you got it working!