ESP32-CAN/docs/rust-on-xtensa-installation...

76 lines
2.0 KiB
Markdown

# Deprecated
Installation instructions moved to: [esp-rs/rust-build](https://github.com/esp-rs/rust-build)
# Rust on Xtensa Installation for Linux x64
Following instructions are specific for ESP32 and ESP32-S series based on Xtensa architecture.
Instructions for ESP-C series based on RISC-V architecture are described in document for [ESP32-C3](../README.md#esp32-c3).
Tested OS: Ubuntu 18 x64, Ubuntu 20 x64, Mint 20 x64, OpenSUSE Thumbleweed
## Prerequisites
- rustup - installed with nightly toolchain - https://rustup.rs/
## Installation commands
```sh
sudo apt install gcc wget xz-utils
rustup toolchain install nightly
VERSION="1.55.0-dev"
ARCH="x86_64-unknown-linux-gnu"
RUST_DIST="rust-${VERSION}-${ARCH}"
RUST_SRC_DIST="rust-src-${VERSION}"
TOOLCHAIN_DESTINATION_DIR="~/.rustup/toolchains/esp"
mkdir -p ${TOOLCHAIN_DESTINATION_DIR}
wget https://github.com/esp-rs/rust-build/releases/download/v${VERSION}/${RUST_DIST}.tar.xz
tar xvf ${RUST_DIST}.tar.xz
./${RUST_DIST}/install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix="" --without=rust-docs
wget https://github.com/esp-rs/rust-build/releases/download/v${VERSION}/${RUST_SRC_DIST}.tar.xz
tar xvf ${RUST_SRC_DIST}.tar.xz
./${RUST_SRC_DIST}/install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix="" --without=rust-docs
rustup default esp
wget https://github.com/espressif/llvm-project/releases/download/esp-12.0.1-20210823/xtensa-esp32-elf-llvm12_0_1-esp-12.0.1-20210823-linux-amd64.tar.xz
tar xf xtensa-esp32-elf-llvm12_0_1-esp-12.0.1-20210823-linux-amd64.tar.xz
export PATH="`pwd`/xtensa-esp32-elf-clang/bin/:$PATH"
wget --continue https://github.com/espressif/rust-esp32-example/archive/refs/heads/main.zip
unzip main.zip
cd rust-esp32-example-main
```
## Select architecture for the build
For the ESP32 - default (Xtensa architecture):
```sh
idf.py set-target esp32
```
For the ESP32-S2 (Xtensa architecture):
```sh
idf.py set-target esp32s2
```
For the ESP32-S3 (Xtensa architecture):
```sh
idf.py set-target esp32s3
```
## Build and flash
```sh
idf.py build flash
```