Files
proxmark3/doc/md/Installation_Instructions/Linux-Installation-Instructions.md
2020-12-29 18:08:35 +01:00

5.2 KiB

External resources

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

On Debian / Ubuntu / Kali / ParrotOS / Raspbian

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

Update the packages list

sudo apt-get update

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 qtbase5-dev libbz2-dev libbluetooth-dev \
binutils-arm-none-eabi gdb openocd gdb-multiarch

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 qtbase5-dev.

If you don't need the debugging packages, you can skip the installation of binutils-arm-none-eabi,gdb,openocd and gdb-multiarch.

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

sudo pacman -Sy git base-devel readline bzip2 arm-none-eabi-gcc arm-none-eabi-newlib qt5-base bluez --needed

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 qt5-base.

On Fedora

sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib readline-devel bzip2-devel qt5-qtbase-devel bluez-libs-devel libatomic

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 qt5-qtbase-devel.

On openSUSE

sudo zypper install git patterns-devel-base-devel_basis gcc-c++ readline-devel libbz2-devel cross-arm-none-gcc9 cross-arm-none-newlib-devel libqt5-qtbase-devel

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

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

Clone the RRG/Iceman repository

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

Check ModemManager

⚠️ Very important ⚠️

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

Check connection

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

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

This step can be done from the RRG/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

Now you're ready to follow the compilation instructions.

(Optional) Visual Studio Code debugging

Download and install Visual Studio Code

Download and install J-Link Software and Documentation pack

On some systems arm-none-eabi-gdb was replaced with gdb-multiarch. In order to use the J-Link debugger you need to link arm-none-eabi-gdb to gdb-multiarch:

ln -s /usr/bin/gdb-multiarch /usr/bin/arm-none-eabi-gdb

Setup the Visual Studio Code configuration, by going into your project folder and run:

./.vscode/setup.sh

now launch Visual Studio Code and open your project folder

note Please install the recommended Visual Studio Code extensions in order for debugging to work.