update instructions

This commit is contained in:
Philippe Teuwen 2019-09-03 22:54:42 +02:00
parent d4cd32b723
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.
In principle, the helper script `pm3-flash-all` should auto-detect your port, so you can just try:
```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.
> Depending on the firmware version your Proxmark3 can also appear as `/dev/tty.usbmodem881`
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
```
> Depending on the firmware version your Proxmark3 can also appear as `/dev/tty.usbmodem881`.
## Run the client
```sh
sudo proxmark3 /dev/tty.usbmodemiceman1
pm3
```
or, if the port doesn't get properly detected:
```sh
proxmark3 /dev/tty.usbmodemiceman1
```
## 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.
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
./flash-all.sh
pm3-flash-all
```
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
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:
```sh
./proxmark3.sh
pm3
```
Or, by specifying the port manually:
```sh
client/proxmark3 /dev/tty.usbmodemiceman1
proxmark3 /dev/tty.usbmodemiceman1
```

View file

@ -121,7 +121,7 @@ In short:
* unplug device
* press button and keep it pressed (IMPORTANT)
* 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
* release button
* un/plug device

View file

@ -6,7 +6,7 @@ Always use the latest repository commits from *master* branch. There are always
## 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)
* [Maybe just a false alarm?](#maybe-just-a-false-alarm)
* [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)
* [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:
@ -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.
```
./pm3-flash-bootrom.sh
./pm3-flash-fullimage.sh
pm3-flash-bootrom
pm3-flash-fullimage
```
or
```
client/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> -b bootrom/obj/bootrom.elf
proxmark3-flasher <YOUR_PORT_HERE> armsrc/obj/fullimage.elf
```
### 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.
```
./pm3-flash-fullimage.sh
pm3-flash-fullimage
```
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.
```
./pm3-flash-bootrom.sh
pm3-flash-bootrom
```
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?
@ -109,10 +109,29 @@ Instructions evolve over time so check if you're still up to date!
## 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 ...
```
@ -125,6 +144,10 @@ cd client; ./proxmark3 ...
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

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).
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
./flash-all.sh
pm3-flash-all
```
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
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:
```sh
./proxmark3.sh
pm3
```
Or, by specifying the COM port manually:
```sh
client/proxmark3.exe comX
proxmark3.exe comX
```
# 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
```
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
./flash-all.sh
pm3-flash-all
```
If port detection failed, you'll have to call the flasher manually and specify the correct port:
```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:
```sh
./proxmark3.sh
pm3
```
Or, by specifying the COM port manually:
```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.

View file

@ -24,27 +24,52 @@ git pull
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
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:
```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
client/proxmark3-flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
```
## 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:
Here, for example, for a Proxmark3 connected via USB under Linux:
```sh
cd client
./proxmark3 /dev/ttyACM0
proxmark3 /dev/ttyACM0
```
or from the local repo
```sh
client/proxmark3 /dev/ttyACM0
```
## 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.
```
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: