diff --git a/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md b/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md index 4e225b318..ba6547cb2 100644 --- a/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md +++ b/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md @@ -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-/share/firmware/bootrom.elf /usr/local/Cellar/proxmark3/HEAD-/share/firmware/fullimage.elf +pm3-flash-all ``` -> Replace \ 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 ``` diff --git a/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md b/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md index 76a4626e3..bbf6f6ca6 100644 --- a/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md +++ b/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md @@ -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 diff --git a/doc/md/Installation_Instructions/Troubleshooting.md b/doc/md/Installation_Instructions/Troubleshooting.md index ae56ce012..e9ae8bce9 100644 --- a/doc/md/Installation_Instructions/Troubleshooting.md +++ b/doc/md/Installation_Instructions/Troubleshooting.md @@ -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 -b bootrom/obj/bootrom.elf -client/proxmark3-flasher armsrc/obj/fullimage.elf +proxmark3-flasher -b bootrom/obj/bootrom.elf +proxmark3-flasher 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 armsrc/obj/fullimage.elf +proxmark3-flasher 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 -b bootrom/obj/bootrom.elf +proxmark3-flasher -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 /usr/local/share/proxmark3/firmware/fullimage.elf +<> +proxmark3-flasher /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 armsrc/obj/fullimage.elf +<> +./proxmark3-flasher ../armsrc/obj/fullimage.elf + pm3 --> sc upgrade f tools/simmodule/sim011.bin <> pm3 --> sc upgrade f ../tools/simmodule/sim011.bin diff --git a/doc/md/Installation_Instructions/Windows-Installation-Instructions.md b/doc/md/Installation_Instructions/Windows-Installation-Instructions.md index f9eb9e988..6a821a992 100644 --- a/doc/md/Installation_Instructions/Windows-Installation-Instructions.md +++ b/doc/md/Installation_Instructions/Windows-Installation-Instructions.md @@ -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. diff --git a/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md b/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md index 1e6b24b88..7faa6a658 100644 --- a/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md +++ b/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md @@ -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 diff --git a/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md b/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md index 8ec176edb..8b88115c6 100644 --- a/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md +++ b/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md @@ -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: