mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-11-14 01:24:14 -08:00
3.4 KiB
3.4 KiB
id | title | sidebar_label |
---|---|---|
build-env | Creating a build/development environment | Building Meshtastic |
This project uses the simple PlatformIO build system. PlatformIO is an extension to Microsoft VSCode.
GUI Installation
- Install Python.
- Install Git or GitHub Desktop
- Install Microsoft Visual Studio Code
- Install PlatformIO.
- Click the PlatformIO icon on the side bar.
- Under
Quick Access, Miscellaneous, Clone Git Project
enter the URL of the Meshtastic repo found here. - Select a file location to save the repo.
- Once loaded, open the
platformio.ini
file. - At the line
default_envs
you can change it to the board type you are building for ie.tlora-v2, tlora-v1, tlora-v2-1-1.6, tbeam, heltec, tbeam0.7
(boards are listed further down in the file). - The hardware can be configured for different countries by adding a definition to the
configuration.h
file.#define HW_VERSION_US
orHW_VERSION_EU433, HW_VERSION_EU865, HW_VERSION_CN, HW_VERSION_JP
. Other country settings can be found inMeshRadio.h
. The default isHW_VERSION_US
. - Click the PlatformIO icon on the side bar. Under
Project Tasks
you can now build or upload.
:::note
To get a clean build you may have to delete the auto-generated file ./.vscode/c_cpp_properties.json
, close and re-open Visual Studio and WAIT until the file is auto-generated before compiling again.
:::
Manual Installation on Linux
- On a Linux distro (like Ubuntu), ensure you have pre-requisites installed:
sudo apt-get update
sudo apt-get install python3 python3-dev g++ zip
- Install PlatformIO (which is usually via wget/curl command).
wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py
chmod +x get-platformio.py
python3 get-platformio.py
-
Clone the repo https://github.com/meshtastic/Meshtastic-device
-
Change into the Meshtastic-device and then download submodules
cd Meshtastic-device
git submodule update --init --recursive
Note: If you get an error like this:
Compiling .pio/build/rak4631_5005/src/plugins/PositionPlugin.cpp.o
src/nrf52/NRF52CryptoEngine.cpp:3:10: fatal error: ocrypto_aes_ctr.h: No such file or directory
then you need to run that submodule command from the main Meshtastic-device directory.
- Activate the Platformio python virtual environment
source ~/.platformio/penv/bin/activate
- Build everything (optionally just build what you really need by editing platformio.ini)
./bin/build-all.sh
- See the newly built bits in release/archive/firmware-1.2.49.XXX.zip (where XXX is the git commit)
Running the Native environment on Linux
(From @caveman99 )
- linux. flavour doesn't matter. in my case it Centos stream.
- pio run -e native
- then cd .pio/build/native
- gdb program
- on the gdb prompt, execute "run"
- if it eventually coredumps it returns to the gdb prompt, then run bt for a backtrace.
- the actual name of the binary is 'program'