Linux: add native support for Bluetooth in client

This commit is contained in:
Philippe Teuwen 2020-04-29 01:41:22 +02:00
commit 7ca7677568
8 changed files with 151 additions and 23 deletions

View file

@ -102,7 +102,9 @@ http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp
#### Linux
#### (1) Connecting rdv4.0 with Bluetooth on Linux computer
#### (1) Connecting rdv4.0 with Bluetooth on Linux computer via native Bluetooth support in the client
This requires to have compiled the client with Bluetooth support.
1. Find the MAC address of the Bluetooth add-on, named PM3_RDV4.0.
@ -114,21 +116,9 @@ Scanning ...
Instead of `aa:bb:cc:dd:ee:ff`, you'll see your MAC address.
2. Bind your BT add-on MAC address to a serial port
2. Use Proxmark client with Bluetooth MAC address as bt:<mac>
```sh
sudo rfcomm bind rfcomm0 aa:bb:cc:dd:ee:ff
```
Replace `aa:bb:cc:dd:ee:ff` by your MAC address.
3. The blue state LED on the add-on will keep blinking after the
connection is established. Only when the Proxmark3 client opens the
`/dev/rfcomm0` port, the blue LED turns on solid, indicating that the
connection is successful.
4. Use Proxmark client on BT-serial port
```sh
./proxmark3 /dev/rfcomm0
./proxmark3 bt:aa:bb:cc:dd:ee:ff
```
The first time, your OS will ask you for pairing. The default PIN is
1234. If PIN is not typed in quickly, the client might timeout. Simply
@ -172,6 +162,39 @@ turn on solid.
./proxmark3 /dev/ttyUSB0
```
#### (1b, deprecated) Connecting rdv4.0 with Bluetooth on Linux computer via rfcomm
rfcomm is a deprecated tool which might be unavailable in your Linux distribution.
1. Find the MAC address of the Bluetooth add-on, named PM3_RDV4.0.
```sh
sudo hcitool scan
Scanning ...
aa:bb:cc:dd:ee:ff PM3_RDV4.0
```
Instead of `aa:bb:cc:dd:ee:ff`, you'll see your MAC address.
2. Bind your BT add-on MAC address to a serial port
```sh
sudo rfcomm bind rfcomm0 aa:bb:cc:dd:ee:ff
```
Replace `aa:bb:cc:dd:ee:ff` by your MAC address.
3. The blue state LED on the add-on will keep blinking after the
connection is established. Only when the Proxmark3 client opens the
`/dev/rfcomm0` port, the blue LED turns on solid, indicating that the
connection is successful.
4. Use Proxmark client on BT-serial port
```sh
./proxmark3 /dev/rfcomm0
```
See instructions above (method 1) for initial pairing.
#### MacOS
#### (1) Connecting rdv4.0 with Bluetooth on MacOS

View file

@ -25,9 +25,11 @@ Install the requirements
```sh
sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \
libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev
libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev libbluetooth-dev
```
If you don't need the native Bluetooth support in the client, you can skip the installation of `libbluetooth-dev`.
If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`), you can skip the installation of `qtbase5-dev`.
If you get some (non blocking) error at runtime such as _Gtk-Message: Failed to load module "canberra-gtk-module"_ you may have to install `libcanberra-gtk-module`.
@ -35,17 +37,21 @@ If you get some (non blocking) error at runtime such as _Gtk-Message: Failed to
## On ArchLinux
```sh
sudo pacman -Sy git base-devel readline arm-none-eabi-gcc arm-none-eabi-newlib qt5-base --needed
sudo pacman -Sy git base-devel readline arm-none-eabi-gcc arm-none-eabi-newlib qt5-base bluez --needed
```
If you don't need the native Bluetooth support in the client, you can skip the installation of `bluez`.
If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`), you can skip the installation of `qt5-base`.
## On Fedora
```sh
sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib readline-devel qt5-qtbase-devel libatomic
sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib readline-devel qt5-qtbase-devel bluez-libs-devel libatomic
```
If you don't need the native Bluetooth support in the client, you can skip the installation of `bluez-libs-devel`.
If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`), you can skip the installation of `qt5-qtbase-devel`.
## On openSUSE
@ -56,6 +62,8 @@ sudo zypper install git patterns-devel-base-devel_basis gcc-c++ readline-devel c
If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`), you can skip the installation of `libqt5-qtbase-devel`.
Note that Bluez is not available on openSUSE so the native Bluetooth support won't be available in the client.
# Clone the RRG/Iceman repository
```sh

View file

@ -19,6 +19,14 @@ make clean
make SKIPQT=1
```
On Linux hosts, if the Bluez headers and library are present, the client will be compiled with native Bluetooth support. It's possible to explicitly skip Bluetooth support with:
```
make clean
make SKIPBT=1
```
## 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.