Making the code work on aarch64 Ubuntu 24.04
I know that currently only Ubuntu 22.04 is supported, but that's 3+ years old and I'd like to use Braktooth on an Ubuntu 24.04 ARM (AARCH64) VM on a Mac, and so far I had to do the following:
Find and replace in ./requirements.sh:
libtbb2 -> libtbbmalloc2
libasound2 -> libasound2t64
Then add libgflags-dev and libgoogle-glog-dev to the list.
However I'm still encountering the following issue:
$ sudo ./bin/bt_exploiter
./bin/bt_exploiter: error while loading shared libraries: libglog.so.0: cannot open shared object file: No such file or directory
It seems that libgoogle-glog-dev doesn't provide libglog.so.0? I haven't been able to find the correct replacement for this yet. Any ideas? (Do you need to compile a binary specifically for U24.04 to deal with its changed libraries? Or can this requirement be removed? Google says here that the library is deprecated and will be archived in a month!)
Additional datapoint: I started from scratch on an AARCH64 Linux VM on Mac with a fresh ESP-ETHERNET-KIT (mentioned in ticket #23), and it cannot be installed due to no aarch64 support in the prerequisite ESP32 xtensa32 toolchain as shown below (ttyUSB2 was my 2nd serial port on the board.)
user@BTVM:~/Downloads/release$ python3 firmware.py flash /dev/ttyUSB2
<snip>
Tool Manager: Installing platformio/toolchain-xtensa32 @ 2.80400.210211
UnknownPackageError: Could not find the package with 'platformio/toolchain-xtensa32 @ 2.80400.210211' requirements for your system 'linux_aarch64'
I got the same issue with the first question.
The glog issue can be overcome with:
sudo cp /usr/lib/x86_64-linux-gnu/libglog.so /usr/lib/x86_64-linux-gnu/libglog.so.0
But there are other libraries, at least on Debian, which are outdated and replaced. Even if you install the newer versions and try the hacky approach of copying the libs to the expected names; you will run into issues.
I requested source code access and hope I get it in order to contribute.
@Matheus-Garbelini , @mrheinen is in my current BT class, where we can't use Braktooth directly because of this issue. I think it'd be great if you gave him access since it sounds like he's volunteering to help fix it up.
Hi @mrheinen and @XenoKovah. I've sent a gitlab invite to your emails. Thanks a lot for the interest, I wish these days I could get back on this :X
So there is some interest in the group to also eventually use miniconda environment to build and run this project in any OS without messing around with system packages. Here's the tentative environment which could at least execute braktooth binary by using LD_LIBRARY_PATH pointing to conda lib folder. Hopefully such thing can be updated into 5Ghoul's repository also.
Currently it does not build yet since wireshark require some patches to work with asciidoctor inside conda environemnt
name: sni5Gect
channels:
- conda-forge
- default
dependencies:
# Dev Tools
- sysroot_linux-64=2.34
- binutils=2.39
- zlib=1.3.1
- autoconf=2.72
- libtool=2.5.4
- automake=1.17
- pkg-config=0.29.2
- cmake==3.24.3
- ninja==1.10.1
- gcc=10.4.0
- gxx=10.4.0
- libgcc-devel_linux-64=10.4.0
- clang=18.1.8
- clangxx=18.1.8
- lld=18.1.8
- lldb=18.1.8
- libcxx=18.1.8
# SDRs Libraries
- uhd=4.8.0.0
- libbladerf=2024.05
- soapysdr=0.8.1
# Core Libraries
- glib=2.84.2
- libglib=2.84.2
- libdwarf=0.12.0
- libdwarf-dev=0.12.0
- pcsclite=2.0.0
- libboost=1.86
- libboost-devel=1.86
- libboost-headers=1.86
- libboost-python=1.86
- libboost-python-devel=1.86
- mbedtls=3.6.3.1
- libconfig=1.7.3
- fftw=3.3.10
- fftw-static=3.3.10
- liquid-dsp=1.6.0
- zeromq=4.3.5
- czmq=4.2.1
# WDissector Dev Libraries
- python=3.11.13
- sshpass
- swig=3.0.12
- freetype=2.13.3
- tbb=2022.1.0
- tbb-devel=2022.1.0
- pagmo-devel=2.19.1
- alsa-lib
- folly=2024.12.02.00
- jack
- gnutls
- gflags
- glog=0.7.1
- libevent
- libgcrypt
- libgcrypt-lib
- bison
- flex
- asciidoctor=2.0.22
- pcre2
- lz4
- libssh
- libsystemd
- libnl
- c-ares=1.34.5
- qt-main=5.15.15
- mesalib=25.0.5
- glfw=3.4
- libgl-devel=1.7.0
- libgl=1.7.0
- libgles-devel
- xorg-libxcursor
- xorg-libx11
- xorg-inputproto
- xorg-libxi
- xorg-libxinerama
- xorg-libxcb
- xorg-libxscrnsaver
- nss=3.112
- libcap=2.71
- libxslt
- doxygen
- lua=5.3.5
- ruby=3.1.2
- libpcap=1.10.4
- libpcapplusplus=22.11
- graphviz=13.0.1
- libxcrypt=4.4.36
wget https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-Linux-x86_64.sh
chmod +x Miniforge3-25.3.0-3-Linux-x86_64.sh
./Miniforge3-25.3.0-3-Linux-x86_64.sh -b -p ./venv
source venv/bin/activate
conda env create -f environment.yml
conda activate sni5Gect
# Build wdissector here
Awesome. I'll have a look starting next week!
Is there any update on this?
@Matheus-Garbelini Could you also sent me an invite to the gitlab?