update instructions

This commit is contained in:
Philippe Teuwen 2019-09-03 22:54:42 +02:00
commit b577ca15e9
6 changed files with 116 additions and 36 deletions

View file

@ -31,19 +31,31 @@ brew upgrade --fetch-HEAD proxmark3
With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark3 as you plug it into a USB port. You can release the button, two of the four LEDs should stay on. You're un bootloader mode, ready for the next step. In case the two LEDs don't stay on when you're releasing the button, you've an old bootloader, start over and keep the button pressed during the whole flashing procedure. With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark3 as you plug it into a USB port. You can release the button, two of the four LEDs should stay on. You're un bootloader mode, ready for the next step. In case the two LEDs don't stay on when you're releasing the button, you've an old bootloader, start over and keep the button pressed during the whole flashing procedure.
In principle, the helper script `pm3-flash-all` should auto-detect your port, so you can just try:
```sh ```sh
sudo proxmark3-flasher /dev/tty.usbmodemiceman1 -b /usr/local/Cellar/proxmark3/HEAD-<Commit-ID>/share/firmware/bootrom.elf /usr/local/Cellar/proxmark3/HEAD-<Commit-ID>/share/firmware/fullimage.elf pm3-flash-all
``` ```
> Replace \<Commit-ID\> with the HEAD-XXXX ID displayed by brew. If port detection failed, you'll have to call the flasher manually and specify the correct port:
> Depending on the firmware version your Proxmark3 can also appear as `/dev/tty.usbmodem881`
```sh
proxmark3-flasher /dev/tty.usbmodemiceman1 -b /usr/local/share/proxmark3/firmware/bootrom.elf /usr/local/share/proxmark3/firmware/fullimage.elf
```
> Depending on the firmware version your Proxmark3 can also appear as `/dev/tty.usbmodem881`.
## Run the client ## Run the client
```sh ```sh
sudo proxmark3 /dev/tty.usbmodemiceman1 pm3
```
or, if the port doesn't get properly detected:
```sh
proxmark3 /dev/tty.usbmodemiceman1
``` ```
## Next steps ## Next steps
@ -78,14 +90,20 @@ To use the compiled client and flasher, the only difference is that the Proxmark
To flash: With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark3 as you plug it into a USB port. You can release the button, two of the four LEDs should stay on. You're un bootloader mode, ready for the next step. In case the two LEDs don't stay on when you're releasing the button, you've an old bootloader, start over and keep the button pressed during the whole flashing procedure. To flash: With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark3 as you plug it into a USB port. You can release the button, two of the four LEDs should stay on. You're un bootloader mode, ready for the next step. In case the two LEDs don't stay on when you're releasing the button, you've an old bootloader, start over and keep the button pressed during the whole flashing procedure.
In principle, the helper script `flash-all.sh` should auto-detect your port, so you can just try: In principle, the helper script `pm3-flash-all` should auto-detect your port, so you can just try:
```sh ```sh
./flash-all.sh pm3-flash-all
``` ```
If port detection failed, you'll have to call the flasher manually and specify the correct port: If port detection failed, you'll have to call the flasher manually and specify the correct port:
```sh
proxmark3-flasher /dev/tty.usbmodemiceman1 -b /usr/local/share/proxmark3/firmware/bootrom.elf /usr/local/share/proxmark3/firmware/fullimage.elf
```
or from the local repo
```sh ```sh
client/proxmark3-flasher /dev/tty.usbmodemiceman1 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf client/proxmark3-flasher /dev/tty.usbmodemiceman1 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
``` ```
@ -93,12 +111,12 @@ client/proxmark3-flasher /dev/tty.usbmodemiceman1 -b bootrom/obj/bootrom.elf arm
Similarly, to run the client, you may try: Similarly, to run the client, you may try:
```sh ```sh
./proxmark3.sh pm3
``` ```
Or, by specifying the port manually: Or, by specifying the port manually:
```sh ```sh
client/proxmark3 /dev/tty.usbmodemiceman1 proxmark3 /dev/tty.usbmodemiceman1
``` ```

View file

@ -121,7 +121,7 @@ In short:
* unplug device * unplug device
* press button and keep it pressed (IMPORTANT) * press button and keep it pressed (IMPORTANT)
* plug in device * plug in device
* run flash command `sudo client/proxmark3-flasher /dev/ttyACM0 armsrc/obj/fullimage.elf` * run flash command `sudo proxmark3-flasher /dev/ttyACM0 /usr/local/share/proxmark3/firmware/fullimage.elf`
* wait until flash is finished * wait until flash is finished
* release button * release button
* un/plug device * un/plug device

View file

@ -6,7 +6,7 @@ Always use the latest repository commits from *master* branch. There are always
## Table of Contents ## Table of Contents
* [./pm3.sh or ./pm3-flash-*.sh doesn't see my Proxmark](#pm3sh-or-pm3-flash-sh-doesnt-see-my-proxmark) * [pm3 or pm3-flash-* doesn't see my Proxmark](#pm3-or-pm3-flash-doesnt-see-my-proxmark)
* [My Proxmark3 seems bricked](#my-proxmark3-seems-bricked) * [My Proxmark3 seems bricked](#my-proxmark3-seems-bricked)
* [Maybe just a false alarm?](#maybe-just-a-false-alarm) * [Maybe just a false alarm?](#maybe-just-a-false-alarm)
* [Find out why it would be bricked](#find-out-why-it-would-be-bricked) * [Find out why it would be bricked](#find-out-why-it-would-be-bricked)
@ -18,7 +18,7 @@ Always use the latest repository commits from *master* branch. There are always
* [File not found](#file-not-found) * [File not found](#file-not-found)
* [pixmap / pixbuf warnings](#pixmap--pixbuf-warnings) * [pixmap / pixbuf warnings](#pixmap--pixbuf-warnings)
## `./pm3.sh` or `./pm3-flash-*.sh` doesn't see my Proxmark ## `pm3` or `pm3-flash-*` doesn't see my Proxmark
Try using directly the client or flasher: Try using directly the client or flasher:
@ -44,13 +44,13 @@ Note that with the Bluetooth adapter, you *have to* use directly the client, and
The flasher refused to flash your Proxmark3? Are there any messages in *red*? The most common reason is that the Proxmark3 RDV4 firmware recently got a new bootloader able to handle larger firmwares and... the image grew over 256k almost at the same time. So your old bootloader can't flash such new images. But it's easy, you just need to flash *first* the bootloader *only*, then the image. The flasher refused to flash your Proxmark3? Are there any messages in *red*? The most common reason is that the Proxmark3 RDV4 firmware recently got a new bootloader able to handle larger firmwares and... the image grew over 256k almost at the same time. So your old bootloader can't flash such new images. But it's easy, you just need to flash *first* the bootloader *only*, then the image.
``` ```
./pm3-flash-bootrom.sh pm3-flash-bootrom
./pm3-flash-fullimage.sh pm3-flash-fullimage
``` ```
or or
``` ```
client/proxmark3-flasher <YOUR_PORT_HERE> -b bootrom/obj/bootrom.elf proxmark3-flasher <YOUR_PORT_HERE> -b bootrom/obj/bootrom.elf
client/proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf
``` ```
### Find out why it would be bricked ### Find out why it would be bricked
@ -67,21 +67,21 @@ On new bootloaders, you can release the button. If the pattern disappears, you'r
Once in bootloader mode, flash the main image. Once in bootloader mode, flash the main image.
``` ```
./pm3-flash-fullimage.sh pm3-flash-fullimage
``` ```
or or
``` ```
client/proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf
``` ```
You should be back on tracks now. In case the flasher complains about bootloader version, you can follow the button procedure and flash first your bootloader. You should be back on tracks now. In case the flasher complains about bootloader version, you can follow the button procedure and flash first your bootloader.
``` ```
./pm3-flash-bootrom.sh pm3-flash-bootrom
``` ```
or or
``` ```
client/proxmark3-flasher <YOUR_PORT_HERE> -b bootrom/obj/bootrom.elf proxmark3-flasher <YOUR_PORT_HERE> -b bootrom/obj/bootrom.elf
``` ```
### Ok, my bootloader is definitively dead, now what? ### Ok, my bootloader is definitively dead, now what?
@ -109,10 +109,29 @@ Instructions evolve over time so check if you're still up to date!
## File not found ## File not found
Depending how you launch the client, your working directory might be the root of the repository: If Proxmark3 has been installed with `make install` or packaged for your distro, the binaries should be in your path and you can call them directly:
``` ```
./pm3.sh ... pm3
proxmark3
```
and you must adapt accordingly the file path of some commands, e.g.
```
proxmark3-flasher <YOUR_PORT_HERE> /usr/local/share/proxmark3/firmware/fullimage.elf
<>
proxmark3-flasher <YOUR_PORT_HERE> /usr/share/proxmark3/firmware/fullimage.elf
pm3 --> sc upgrade f /usr/local/share/proxmark3/firmware/sim011.bin
<>
pm3 --> sc upgrade f /usr/share/proxmark3/firmware/sim011.bin
```
If you didn't install the PRoxmark but you're working from the sources directory and depending how you launch the client, your working directory might be the root of the repository:
```
./pm3 ...
client/proxmark3 ... client/proxmark3 ...
``` ```
@ -125,6 +144,10 @@ cd client; ./proxmark3 ...
Therefore client commands referring to files of the repo must be adapted, e.g. Therefore client commands referring to files of the repo must be adapted, e.g.
``` ```
client/proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf
<>
./proxmark3-flasher <YOUR_PORT_HERE> ../armsrc/obj/fullimage.elf
pm3 --> sc upgrade f tools/simmodule/sim011.bin pm3 --> sc upgrade f tools/simmodule/sim011.bin
<> <>
pm3 --> sc upgrade f ../tools/simmodule/sim011.bin pm3 --> sc upgrade f ../tools/simmodule/sim011.bin

View file

@ -54,16 +54,22 @@ pacman -S mingw-w64-x86_64-astyle
Now you're ready to follow the [compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md). Now you're ready to follow the [compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md).
To use the compiled client and flasher, the only differences are that executables end with `.exe` (e.g. `client/proxmark3-flasher.exe`) and that the Proxmark3 port is one of your `comX` ports where "X" is the com port number assigned to proxmark3 under Windows. To use the compiled client and flasher, the only differences are that executables end with `.exe` (e.g. `proxmark3-flasher.exe`) and that the Proxmark3 port is one of your `comX` ports where "X" is the com port number assigned to proxmark3 under Windows.
To flash: In principle, the helper script `flash-all.sh` should auto-detect your COM port, so you can just try: To flash: In principle, the helper script `pm3-flash-all` should auto-detect your COM port, so you can just try:
```sh ```sh
./flash-all.sh pm3-flash-all
``` ```
If COM port detection failed, you'll have to call the flasher manually and specify the correct port: If COM port detection failed, you'll have to call the flasher manually and specify the correct port:
```sh
proxmark3-flasher.exe comX -b /usr/local/share/proxmark3/firmware/bootrom.elf /usr/local/share/proxmark3/firmware/fullimage.elf
```
or from the local repo
```sh ```sh
client/proxmark3-flasher.exe comX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf client/proxmark3-flasher.exe comX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
``` ```
@ -71,13 +77,13 @@ client/proxmark3-flasher.exe comX -b bootrom/obj/bootrom.elf armsrc/obj/fullimag
Similarly, to run the client, you may try: Similarly, to run the client, you may try:
```sh ```sh
./proxmark3.sh pm3
``` ```
Or, by specifying the COM port manually: Or, by specifying the COM port manually:
```sh ```sh
client/proxmark3.exe comX proxmark3.exe comX
``` ```
# Installing on Windows with WSL # Installing on Windows with WSL
@ -141,28 +147,34 @@ and add it to your Bash profile for the next times:
echo "export DISPLAY=:0" >> ~/.bashrc echo "export DISPLAY=:0" >> ~/.bashrc
``` ```
To flash: In principle, the helper script `flash-all.sh` should auto-detect your COMX==/dev/ttySX port, so you can just try: To flash: In principle, the helper script `pm3-flash-all` should auto-detect your COMX==/dev/ttySX port, so you can just try:
```sh ```sh
./flash-all.sh pm3-flash-all
``` ```
If port detection failed, you'll have to call the flasher manually and specify the correct port: If port detection failed, you'll have to call the flasher manually and specify the correct port:
```sh ```sh
client/proxmark3-flasher /dev/ttySX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf proxmark3-flasher.exe /dev/ttySX -b /usr/local/share/proxmark3/firmware/bootrom.elf /usr/local/share/proxmark3/firmware/fullimage.elf
```
or from the local repo
```sh
client/proxmark3-flasher.exe /dev/ttySX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
``` ```
Similarly, to run the client, you may try: Similarly, to run the client, you may try:
```sh ```sh
./proxmark3.sh pm3
``` ```
Or, by specifying the COM port manually: Or, by specifying the COM port manually:
```sh ```sh
client/proxmark3 /dev/ttySX proxmark3 /dev/ttySX
``` ```
Note that it may take a quite long time for a freshly plugged Proxmark3 to be visible on a WSL /dev/ttySX port. Note that it may take a quite long time for a freshly plugged Proxmark3 to be visible on a WSL /dev/ttySX port.

View file

@ -24,27 +24,52 @@ git pull
make clean && make all make clean && make all
``` ```
## Install
This is an optional step. If you do
```sh
sudo make install
```
Then the required files will be installed on your system, by default in `/usr/local/bin` and `/usr/local/share/proxmark3`.
Maintainers can read [this doc](../Development/Maintainers.md) to learn how to modify installation paths via `DESTDIR` and `PREFIX` Makefile variables.
The commands given in the documentation assume you did the installation step. If you didn't, you've to adjust the commands paths and files paths accordingly,
e.g. calling `./pm3` or `client/proxmark3` instead of just `pm3` or `proxmark3`.
## Flash the BOOTROM & FULLIMAGE ## 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. In most cases, you can run the script `pm3-flash-all` 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: For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
```sh
proxmark3-flasher /dev/ttyACM0 -b /usr/local/share/proxmark3/firmware/bootrom.elf /usr/local/share/proxmark3/firmware/fullimage.elf
```
or from the local repo
```sh ```sh
client/proxmark3-flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf client/proxmark3-flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
``` ```
## Run the client ## Run the client
In most cases, you can run the script `proxmark3.sh` which try to auto-detect the port to use, on several OS. In most cases, you can run the script `pm3` 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: For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
Here, for example, for a Proxmark3 connected via USB under Linux: Here, for example, for a Proxmark3 connected via USB under Linux:
```sh ```sh
cd client proxmark3 /dev/ttyACM0
./proxmark3 /dev/ttyACM0 ```
or from the local repo
```sh
client/proxmark3 /dev/ttyACM0
``` ```
## Next steps ## Next steps

View file

@ -46,7 +46,9 @@ Don't not turn off your device during the execution of this command!!
Even its a quite fast command you should be warned. You may brick it if you interrupt it. Even its a quite fast command you should be warned. You may brick it if you interrupt it.
``` ```
pm3 --> sc upgrade f ../tools/simmodule/sim011.bin pm3 --> sc upgrade f /usr/local/share/proxmark3/firmware/sim011.bin
# or if from local repo
pm3 --> sc upgrade f tools/simmodule/sim011.bin
``` ```
You get the following output if the execution was successful: You get the following output if the execution was successful: