mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-01-06 16:27:22 +08:00
Document compilation options
This commit is contained in:
parent
e51b4f0fdd
commit
cbfd195abf
3 changed files with 102 additions and 33 deletions
|
@ -1,6 +1,7 @@
|
|||
# Proxmark3 RDV4.0 Dedicated Github
|
||||
|
||||
This repo is based on iceman fork for Proxmark3. It is dedicated to bringing the most out of the new features for Proxmark3 RDV4.0 new hardware and design.
|
||||
Note that it also supports other Proxmark3 platforms as well!
|
||||
|
||||
[![Build status](https://ci.appveyor.com/api/projects/status/ct5blik2wa96bv0x/branch/master?svg=true)](https://ci.appveyor.com/project/iceman1001/proxmark3-ji4wj/branch/master)
|
||||
[![Latest release](https://img.shields.io/github/release/RfidResearchGroup/proxmark3.svg)](https://github.com/RfidResearchGroup/proxmark3/releases/latest)
|
||||
|
@ -15,7 +16,7 @@ This repo is based on iceman fork for Proxmark3. It is dedicated to bringing the
|
|||
|[Development](#development) | [Important notes on ModemManager for Linux users](/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md) | [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) |
|
||||
|[Why didn't you base it on official PM3 Master?](#why-didnt-you-base-it-on-official-pm3-master)| [Homebrew (Mac OS X) & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md) | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md)|
|
||||
|[PM3 GUI](#pm3-gui)|[Setup and build for Windows](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md)|[Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)|
|
||||
|[Issues](#issues)|[Blue shark manual](/doc/bt_manual_v10.md) ||
|
||||
|[Issues](#issues)|[Blue shark manual](/doc/bt_manual_v10.md) |[Advanced compilation parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md)|
|
||||
|[Notes on UART](/doc/uart_notes.md)|||
|
||||
|[Notes on Frame format](/doc/new_frame_format.md)|||
|
||||
|[Notes on Termux / Android](/doc/termux_notes.md)|||
|
||||
|
|
|
@ -1,5 +1,16 @@
|
|||
# Compilation instructions
|
||||
|
||||
## Tuning compilation parameters
|
||||
|
||||
The client and the Proxmark3 firmware should always be in sync.
|
||||
Nevertheless, the firmware can be tuned depending on the Proxmark3 platform and options.
|
||||
|
||||
Indeed, the RRG/Iceman fork can be used on other Proxmark3 hardware platforms as well.
|
||||
|
||||
Via some definitions, you can adjust the firmware for a given platform, but also to add features like the support of the Blue Shark add-on or to select which standalone mode to embed.
|
||||
|
||||
To learn how to adjust the firmware, please read [Advanced compilation parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md).
|
||||
|
||||
## Get the latest commits
|
||||
|
||||
```sh
|
||||
|
@ -15,48 +26,23 @@ make clean && make all
|
|||
|
||||
## Flash the BOOTROM & FULLIMAGE
|
||||
|
||||
In most cases, you can run the script `flash-all.sh` which try to auto-detect the port to use, on several OS.
|
||||
|
||||
For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
|
||||
|
||||
```sh
|
||||
client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
|
||||
```
|
||||
|
||||
## Run the client
|
||||
|
||||
```sh
|
||||
cd client
|
||||
./proxmark3 /dev/ttyACM0
|
||||
```
|
||||
In most cases, you can run the script `proxmark3.sh` which try to auto-detect the port to use, on several OS.
|
||||
|
||||
## Compiling for other boards
|
||||
For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
|
||||
|
||||
Available boards
|
||||
|
||||
| BOARD | PLATFORM |
|
||||
|:---------------:|:---------------------------------------|
|
||||
| `PM3RDV4` (def) | Proxmark3 rdv4 with AT91SAM7S512 |
|
||||
| `PM3EVO` | Proxmark3 EVO with AT91SAM7S512 |
|
||||
| `PM3EASY` | Proxmark3 rdv3 Easy with AT91SAM7S256 |
|
||||
| `PM3RDV2` | Proxmark3 rdv2 with AT91SAM7S512 |
|
||||
| `PM3OLD256` | Proxmark3 V1 with AT91SAM7S256 |
|
||||
| `PM3OLD512` | Proxmark3 V1 with AT91SAM7S512 |
|
||||
|
||||
Create a file named `Makefile.platform` in the root directory of the repository:
|
||||
Here, for example, for a Proxmark3 connected via USB under Linux:
|
||||
|
||||
```sh
|
||||
# PLATFORM=${BOARD}
|
||||
# Following example is to compile sources for Proxmark3 rdv3 Easy
|
||||
PLATFORM=PM3EASY
|
||||
```
|
||||
|
||||
From this point:
|
||||
|
||||
```sh
|
||||
# Clean and compile
|
||||
make clean && make all
|
||||
|
||||
# Flash the BOOTROM & FULLIMAGE
|
||||
client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
|
||||
|
||||
# Run the client
|
||||
cd client
|
||||
./proxmark3 /dev/ttyACM0
|
||||
```
|
||||
|
|
82
doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md
Normal file
82
doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Advanced compilation parameters
|
||||
|
||||
The client and the Proxmark3 firmware should always be in sync.
|
||||
Nevertheless, the firmware can be tuned depending on the Proxmark3 platform and options.
|
||||
|
||||
Indeed, the RRG/Iceman fork can be used on other Proxmark3 hardware platforms as well.
|
||||
|
||||
Via some definitions, you can adjust the firmware for a given platform, but also to add features like the support of the Blue Shark add-on or to select which standalone mode to embed.
|
||||
|
||||
## Client
|
||||
|
||||
The client doesn't depend on the capabilities of the Proxmark3 it's connected to.
|
||||
So you can use the same client for different Proxmark3 platforms, given that everything is running the same version.
|
||||
|
||||
## Firmware
|
||||
|
||||
By default, the firmware is of course tuned for the Proxmark3 Rdv4.0 device, which has built-in support for 256kb onboard flash SPI memory, Sim module (smart card support), FPC connector.
|
||||
These features make it very different from all other devices, there is non other like this one.
|
||||
|
||||
**Recommendation**: if you don't have a RDV4, we strongly recommend your device to have at least a 512kb arm chip, since this repo is on the very edge of 256kb limit.
|
||||
|
||||
A firmware built for the RDV4 can still run on the other platforms as it will auto-detect during boot that external SPI and Sim are not present, still it will boot faster if it's tuned to the platform.
|
||||
|
||||
If you need to tune things and save the configuration, create a file `Makefile.platform` in the root directory of the repository, see `Makefile.platform.sample`.
|
||||
For an up-to-date exhaustive list of options, you can run `make PLATFORM=`.
|
||||
|
||||
## PLATFORM
|
||||
|
||||
Here are the supported values you can assign to `PLATFORM` in `Makefile.platform`:
|
||||
|
||||
| PLATFORM | DESCRIPTION |
|
||||
|-----------------|----------------------------------------|
|
||||
| PM3RDV4 (def) | Proxmark3 rdv4 with AT91SAM7S512 |
|
||||
| PM3EVO | Proxmark3 EVO with AT91SAM7S512 |
|
||||
| PM3EASY | Proxmark3 rdv3 Easy with AT91SAM7S256 |
|
||||
| PM3RDV2 | Proxmark3 rdv2 with AT91SAM7S512 |
|
||||
| PM3OLD256 | Proxmark3 V1 with AT91SAM7S256 |
|
||||
| PM3OLD512 | Proxmark3 V1 with AT91SAM7S512 |
|
||||
|
||||
By default `PLATFORM=PM3RDV4`.
|
||||
|
||||
Known issues:
|
||||
|
||||
* 256kb Arm chip devices: The compiled firmware image from this repo may/will be too large for your device.
|
||||
* PM3 Evo: it has a different led/button pin assignment. It tends to be messed up.
|
||||
|
||||
## PLATFORM_EXTRAS
|
||||
|
||||
Here are the supported values you can assign to `PLATFORM_EXTRAS` in `Makefile.platform`:
|
||||
|
||||
| PLATFORM_EXTRAS | DESCRIPTION |
|
||||
|-----------------|----------------------------------------|
|
||||
| BTADDON | Proxmark3 rdv4 BT add-on |
|
||||
|
||||
By default `PLATFORM_EXTRAS=`.
|
||||
|
||||
If you have installed a Blue Shark add-on on your RDV4, define `PLATFORM_EXTRAS=BTADDON` in your `Makefile.platform`.
|
||||
|
||||
|
||||
## STANDALONE
|
||||
|
||||
The RRG/Iceman fork gives you to easily choose which standalone mode to embed in the firmware.
|
||||
|
||||
Here are the supported values you can assign to `STANDALONE` in `Makefile.platform`:
|
||||
|
||||
| STANDALONE | DESCRIPTION |
|
||||
|-----------------|----------------------------------------|
|
||||
| | No standalone mode
|
||||
| LF_SAMYRUN (def)| HID26 read/clone/sim - Samy Kamkar
|
||||
| LF_ICERUN | standalone mode skeleton - iceman
|
||||
| LF_PROXBRUTE | HID ProxII bruteforce - Brad Antoniewicz
|
||||
| LF_HIDBRUTE | HID corporate 1000 bruteforce - Federico dotta & Maurizio Agazzini
|
||||
| HF_YOUNG | Mifare sniff/simulation - Craig Young
|
||||
| HF_MATTYRUN | Mifare sniff/clone - Matías A. Ré Medina
|
||||
| HF_COLIN | Mifare ultra fast sniff/sim/clone - Colin Brigato
|
||||
| HF_BOG | 14a sniff with ULC/ULEV1/NTAG auth storing in flashmem - Bogito
|
||||
|
||||
By default `STANDALONE=LF_SAMYRUN`.
|
||||
|
||||
## Next step
|
||||
|
||||
See [Compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md)
|
Loading…
Reference in a new issue