fix atrs entry
[RRG-proxmark3.git] / doc / md / Installation_Instructions / Linux-Installation-Instructions.md
blobad96b34705ca7225ea55e92cc7aa3787fe0ddc70
1 <a id="Top"></a>
3 # Linux Installation Instructions
5 # Table of Contents
6 - [Linux Installation Instructions](#linux-installation-instructions)
7 - [Table of Contents](#table-of-contents)
8 - [External resources](#external-resources)
9 - [Install the required dependencies](#install-the-required-dependencies)
10   - [On Debian / Ubuntu / Kali / ParrotOS / Raspbian / DragonOS](#on-debian--ubuntu--kali--parrotos--raspbian--dragonos)
11     - [If you don't need...](#if-you-dont-need)
12     - [Failed to load module...](#failed-to-load-module)
13   - [On ArchLinux](#on-archlinux)
14     - [If you don't need...](#if-you-dont-need-1)
15   - [On Fedora](#on-fedora)
16     - [If you don't need...](#if-you-dont-need-2)
17   - [On openSUSE Leap 15.6](#on-opensuse-leap-156)
18   - [On openSUSE Tumbleweed](#on-opensuse-tumbleweed)
19     - [If you don't need...](#if-you-dont-need-3)
20 - [Clone the repository](#clone-the-repository)
21 - [Check ModemManager](#check-modemmanager)
22     - [⚠️ Very important ⚠️](#️-very-important-️)
23 - [Check connection](#check-connection)
24 - [Get permissions to use /dev/ttyACM0](#get-permissions-to-use-devttyacm0)
25 - [Compile and use the project](#compile-and-use-the-project)
29 # External resources
30 ^[Top](#top)
32 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.
34 * [Kali Video Installation guide](https://youtu.be/t5eBPS6lV3E "Kali Linux Installation Tutorial")
35 * [Ubuntu Video Installation guide](https://youtu.be/DThmkH8CdMo "Ubuntu Installation Tutorial")
36 * [ParrotOS Video Installation guide](https://youtu.be/Wl9AsrU4igo "ParrotOS Installation Tutorial")
38 ![Linux Installation Video Screenshot](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS/blob/master/screenshot-www.youtube.com-2019.03.17-20-44-33.png)
40 * ParrotOS: some further notes can be found at @5w0rdfish repo [Proxmark Installation for Parrot OS](https://github.com/5w0rdfish/Proxmark3-RDV4-ParrotOS)
43 # Install the required dependencies
44 ^[Top](#top)
46 ## On Debian / Ubuntu / Kali / ParrotOS / Raspbian / DragonOS
47 ^[Top](#top)
49 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.  
50 An system upgrade was carried out prior to following these instructions. 
52 Update the packages list
53 ```sh
54 sudo apt-get update
55 sudo apt-get upgrade -y
56 sudo apt-get auto-remove -y
57 ``` 
58 Install the requirements
60 ```sh
61 sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \
62 libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev \
63 libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev
64 ```
66 ### If you don't need... 
67 👉 If you don't need the native Bluetooth support in the client,  
68 you can skip the installation of `libbluetooth-dev`.
70 👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),  
71 you can skip the installation of `qtbase5-dev`.
73 👉 If you don't need support for Python3 scripts in the Proxmark3 client,  
74 you can skip the installation of `libpython3-dev`.
76 👉 If you don't need support for NFC ePaper devices,  
77 you can skip the installation of `libgd-dev`.
79 ### Failed to load module... 
80 ⚠️ If you get some (non blocking) error at runtime such as _Gtk-Message: Failed to load module "canberra-gtk-module"_  
81 you may have to install `libcanberra-gtk-module`.
84 ## On ArchLinux
85 ^[Top](#top)
87 ```sh
88 sudo pacman -Syu git base-devel readline bzip2 lz4 arm-none-eabi-gcc \
89 arm-none-eabi-newlib qt5-base bluez python gd --needed
90 ```
92 ### If you don't need... 
93 👉 If you don't need the native Bluetooth support in the client,  
94 you can skip the installation of `bluez`.
96 👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),  
97 you can skip the installation of `qt5-base`.
99 👉 If you don't need support for Python3 scripts in the Proxmark3 client,  
100 you can skip the installation of `python`.
102 👉 If you don't need support for NFC ePaper devices,  
103 you can skip the installation of `gd`.
106 ## On Fedora
107 ^[Top](#top)
109 ```sh
110 sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib \
111 readline-devel bzip2-devel lz4-devel qt5-qtbase-devel bluez-libs-devel \
112 python3-devel libatomic openssl-devel gd-devel
115 ### If you don't need... 
116 👉 If you don't need the native Bluetooth support in the client,  
117 you can skip the installation of `bluez-libs-devel`.
119 👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),  
120 you can skip the installation of `qt5-qtbase-devel`.
122 👉 If you don't need support for Python3 scripts in the Proxmark3 client,  
123 you can skip the installation of `python3-devel`.
125 👉 If you don't need support for NFC ePaper devices,  
126 you can skip the installation of `gd-devel`.
129 ## On openSUSE Leap 15.6
130 ^[Top](#top)
132 ```sh
133 sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \
134 readline-devel libbz2-devel liblz4-devel \
135 python3-devel libqt5-qtbase-devel libopenssl-devel gd-devel
136 sudo zypper addrepo https://download.opensuse.org/repositories/home:wkazubski/15.6/home:wkazubski.repo && \
137 sudo zypper --gpg-auto-import-keys refresh && \
138 sudo zypper install cross-arm-none-eabi-gcc13 cross-arm-none-eabi-newlib
141 Note that Bluez is not available on openSUSE Leap so the native Bluetooth support won't be available in the client.
143 ## On openSUSE Tumbleweed
144 ^[Top](#top)
146 ```sh
147 sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \
148 readline-devel libbz2-devel liblz4-devel bluez-devel \
149 python3-devel libqt5-qtbase-devel libopenssl-devel gd-devel \
150 cross-arm-none-gcc12 cross-arm-none-newlib-devel
153 ### If you don't need... 
154 👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),  
155 you can skip the installation of `libqt5-qtbase-devel`.
157 👉 If you don't need support for Python3 scripts in the Proxmark3 client,  
158 you can skip the installation of `python3-devel`.
160 👉 If you don't need support for NFC ePaper devices,  
161 you can skip the installation of `gd-devel`.
164 # Clone the repository
165 ^[Top](#top)
167 ```sh
168 git clone https://github.com/RfidResearchGroup/proxmark3.git
171 # Check ModemManager
172 ^[Top](#top)
174 ### ⚠️ Very important ⚠️
175 ^[Top](#top)
177 make sure ModemManager will not interfere, otherwise it could brick your Proxmark3!
178 Read carefully [this page about ModemManager](ModemManager-Must-Be-Discarded.md) and follow its instructions.
180 # Check connection
181 ^[Top](#top)
183 Check the proxmark is being picked up by your computer. Plug it in, then:
185 ```sh
186 sudo dmesg | grep -i usb
188 It should show up as a CDC device:
190 usb 2-1.2: Product: PM3
191 usb 2-1.2: Manufacturer: proxmark.org
192 cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
194 And a new `/dev/ttyACM0` should have appeared.
196 # Get permissions to use /dev/ttyACM0
197 ^[Top](#top)
199 Add current user to the proper groups to get permission to use `/dev/ttyACM0`.
201 This step can be done from the Iceman Proxmark3 repo with:
203 ```sh
204 make accessrights
207 Then, you *need* to logout and login in again for your new group membership to be fully effective.
209 To test you have the proper read & write rights, plug the Proxmark3 and execute:
210 ```sh
211 [ -r /dev/ttyACM0 ] && [ -w /dev/ttyACM0 ] && echo ok
213 It must return `ok`. Otherwise this means you've got a permission problem to fix.
215 # Compile and use the project
216 ^[Top](#top)
218 Now you're ready to follow the [compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md).