Files
proxmark3/doc/md/Installation_Instructions/Linux-Installation-Instructions.md
2026-03-23 22:36:47 +01:00

10 KiB

Linux Installation Instructions

Table of Contents

External resources

^Top

You might want to follow one of these external resources to get an overview, but please still read carefully this page as some instructions may have evolved.

Linux Installation Video Screenshot

Install the required dependencies

^Top

On Debian / Ubuntu / Kali / ParrotOS / Raspbian / DragonOS

^Top

First what we want to do is get an update for the system. If you need to apply updates do this before installing the Proxmark3 software.
An system upgrade was carried out prior to following these instructions.

Update the packages list

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get auto-remove -y

Install the requirements

sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \
libreadline-dev gcc-arm-none-eabi libnewlib-dev qt6-base-dev \
libbz2-dev liblz4-dev zlib1g-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev

If you don't need...

👉 If you don't need the native Bluetooth support in the client,
you can skip the installation of libbluetooth-dev.

👉 If you don't need the graphical components of the Proxmark3 client (such as in hw tune),
you can skip the installation of qt6-base-dev.

👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of libpython3-dev.

👉 If you don't need support for decompressing compressed Google Smart Tap payloads in the Proxmark3 client, you can skip the installation of zlib1g-dev.

👉 If you don't need support for NFC ePaper devices,
you can skip the installation of libgd-dev.

Failed to load module...

⚠️ If you get some (non blocking) error at runtime such as Gtk-Message: Failed to load module "canberra-gtk-module"
you may have to install libcanberra-gtk-module.

On ArchLinux

^Top

sudo pacman -Syu git base-devel readline bzip2 lz4 zlib arm-none-eabi-gcc \
arm-none-eabi-newlib qt6-base bluez python gd --needed

If you don't need...

👉 If you don't need the native Bluetooth support in the client,
you can skip the installation of bluez.

👉 If you don't need the graphical components of the Proxmark3 client (such as in hw tune),
you can skip the installation of qt6-base.

👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of python.

👉 If you don't need support for decompressing compressed Google Smart Tap payloads in the Proxmark3 client, you can skip the installation of zlib.

👉 If you don't need support for NFC ePaper devices,
you can skip the installation of gd.

On Fedora

^Top

sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib \
readline-devel bzip2-devel lz4-devel zlib-ng-compat-devel qt6-qtbase-devel bluez-libs-devel \
python3-devel libatomic openssl-devel gd-devel

If you don't need...

👉 If you don't need the native Bluetooth support in the client,
you can skip the installation of bluez-libs-devel.

👉 If you don't need the graphical components of the Proxmark3 client (such as in hw tune),
you can skip the installation of qt6-qtbase-devel.

👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of python3-devel.

👉 If you don't need support for decompressing compressed Google Smart Tap payloads in the Proxmark3 client, you can skip the installation of zlib-ng-compat-devel.

👉 If you don't need support for NFC ePaper devices,
you can skip the installation of gd-devel.

On openSUSE Leap 15.6

^Top

sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \
readline-devel libbz2-devel liblz4-devel zlib-devel \
python3-devel libqt5-qtbase-devel libopenssl-devel gd-devel
sudo zypper addrepo https://download.opensuse.org/repositories/home:wkazubski/15.6/home:wkazubski.repo && \
sudo zypper --gpg-auto-import-keys refresh && \
sudo zypper install cross-arm-none-eabi-gcc15 cross-arm-none-eabi-newlib

Note that Bluez is not available on openSUSE Leap so the native Bluetooth support won't be available in the client.

Note that the instructions above are for an usage with Qt5. In case of conflict with the presence of development files of Qt6, you can force Qt5 with make SKIPQT6=1.

It is possible to compile the proxmark3 client with Qt6 but with some caveats because the default compiler is GCC 7 and Qt6 requires at least GCC 8:

  • install gcc15 gcc15-c++ instead of gcc-c++
  • install qt6-core-devel qt6-widgets-devel instead of libqt5-qtbase-devel
  • set default compiler to GCC 15 instead of GCC 7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 100 && \
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-15 100 && \
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-15 100 && \
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-15 100

On openSUSE Tumbleweed

^Top

sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \
readline-devel libbz2-devel liblz4-devel zlib-devel bluez-devel \
python3-devel qt6-core-devel qt6-widgets-devel libopenssl-devel gd-devel \
cross-arm-none-gcc12 cross-arm-none-newlib-devel

If you don't need...

👉 If you don't need the graphical components of the Proxmark3 client (such as in hw tune),
you can skip the installation of qt6-core-devel qt6-widgets-devel.

👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of python3-devel.

👉 If you don't need support for decompressing compressed Google Smart Tap payloads in the Proxmark3 client, you can skip the installation of zlib-devel.

👉 If you don't need support for NFC ePaper devices,
you can skip the installation of gd-devel.

On NixOS

^Top

While in the cloned proxmark repo, run

nix-shell tools/shell.nix

This will bring in all required packages to build the client and firmware with all available features.

Please note, the shell does not change device permissions, so your user must be a part of the dialout group. see here for information on adding your user to that group.

If you don't need...

👉 If you don't need the graphical components of the Proxmark3 client (such as in hw tune),
you can comment out qt6Packages.qtbase and qt6Packages.wrapQtAppsHook in shell.nix.

👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can comment out python3 in shell.nix.

👉 If you don't need support for decompressing compressed Google Smart Tap payloads in the Proxmark3 client, you can comment out zlib in shell.nix.

👉 If you don't need support for NFC ePaper devices,
you can comment out gd in shell.nix.

Clone the repository

^Top

git clone https://github.com/RfidResearchGroup/proxmark3.git

Check ModemManager

^Top

⚠️ Very important ⚠️

^Top

make sure ModemManager will not interfere, otherwise it could brick your Proxmark3! Read carefully this page about ModemManager and follow its instructions.

Check connection

^Top

Check the proxmark is being picked up by your computer. Plug it in, then:

sudo dmesg | grep -i usb

It should show up as a CDC device:

usb 2-1.2: Product: PM3
usb 2-1.2: Manufacturer: proxmark.org
cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device

And a new /dev/ttyACM0 should have appeared.

Get permissions to use /dev/ttyACM0

^Top

Add current user to the proper groups to get permission to use /dev/ttyACM0.

This step can be done from the Iceman Proxmark3 repo with:

make accessrights

Then, you need to logout and login in again for your new group membership to be fully effective.

To test you have the proper read & write rights, plug the Proxmark3 and execute:

[ -r /dev/ttyACM0 ] && [ -w /dev/ttyACM0 ] && echo ok

It must return ok. Otherwise this means you've got a permission problem to fix.

Compile and use the project

^Top

Now you're ready to follow the compilation instructions.