# Resources and notes - GH list of Self Hosted Runners: - From the [org profile](https://github.com/esp-rs) > Settings > Actions > Runners > Standard GitHub-hosted runners - You need to be admin in the organization to see this list - [List of runners](https://gitlab.espressif.cn:6688/idf/runner-hosts/-/blob/master/BR.hosts) - [CI & Services Wiki](https://espressif.gitlab-pages.espressif.cn:6688/ci-services-wiki) - [VM runners Brno](https://espressif.gitlab-pages.espressif.cn:6688/ci-services-wiki/#/ci-infra/runners/vm-runners-brno) - [How to hardcode USB device links](https://espressif.gitlab-pages.espressif.cn:6688/ci-services-wiki/#/ci-infra/runners/vm-runners-brno?id=create-fixed-usb-devices-links) - You may request SSH access to the VMs to Tomas Sebestik - If you need to reload attached devices on VM runner (because a devkit is not being detected): `ssh brno.beeswarmGH ctlvm reload -m BrnoVMRS07` - If getting a permision error: `sudo ssh brno.beeswarmGH ctlvm reload -m BrnoVMRS07` - See https://espressif.gitlab-pages.espressif.cn:6688/ci-services-wiki/#/ci-infra/runners/vm-runners-brno?id=usage-of-helper-script - Github actions runs workflows under the `espressif` user of the VMs. - If anything needs to be installed for that user, just ssh into the machine with your user and the swich to it: `sudo su espressif` # HIL Testing Runners ## espflash HIL - BrnoVMRS01 `self-hosted` `Linux` `X64` **`esp32`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32` - BrnoVMRS02 `self-hosted` `Linux` `X64` **`esp32s2`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32s2` - BrnoVMRS03 `self-hosted` `Linux` `X64` **`esp32c3`** `vm-runner` - `/dev/ttyACM0` aliased to `/dev/serial_ports/esp32c3` - BrnoVMRS04 `self-hosted` `Linux` `X64` **`esp32s3`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32s3` - BrnoVMRS05 `self-hosted` `Linux` `X64` **`esp32h2`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32h2` - BrnoVMRS06 `self-hosted` `Linux` `X64` **`esp32c6`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32c6` - BrnoVMR07 `self-hosted` `Linux` `X64` **`esp32c2-26mhz`** `vm-runner` - `/dev/ttyUSB0` aliased to `/dev/serial_ports/esp32c2` ## esp-hal HIL - BrnoRPIRS01 `self-hosted` `Linux` `ARM` **`esp32c6-usb`** - BrnoRPIRS02 `self-hosted` `Linux` `ARM` **`esp32s3-usb`** - BrnoRPIRS03 `self-hosted` `Linux` `ARM` **`esp32c3-usb`** **`rustboard`** - BrnoRPIRS04 `self-hosted` `Linux` `ARM` **`esp32h2-usb`** - BrnoRPIRS05 `self-hosted` `Linux` `ARM` **`esp32s2-jtag`** - BrnoRPIRS06 `self-hosted` `Linux` `ARM64` **`esp32-jtag`** - Its a RPi5 - BrnoRPIRS07 `self-hosted` `Linux` `ARM64` **`esp32c2-jtag`** - Its a RPi5 ## Xtensa Rust builders - linux-x86_64-self-hosted `self-hosted` `Linux` `X64` `linux-x86_64-self-hosted` - BRNOWIN004 `self-hosted` `X64` `Windows` - Used to build `x86_64-pc-windows-msvc` and `x86_64-pc-windows-gnu` - BrnoMAC0002 `self-hosted` `macOS` `ARM64` `macos-m1-self-hosted` - Used to build `aarch64-apple-darwin` # Troubleshooting ### `x86_64-pc-windows-gnu` permission issue The `Building LLVM for x86_64-pc-windows-gnu` step fails with: ``` [2618/3163] Linking CXX static library lib\libLLVMWebAssemblyDisassembler.a FAILED: lib/libLLVMWebAssemblyDisassembler.a C:\Windows\system32\cmd.exe /C "cd . && C:\msys64\mingw64\bin\cmake.exe -E rm -f lib\libLLVMWebAssemblyDisassembler.a && C:\msys64\mingw64\bin\ar.exe qc lib\libLLVMWebAssemblyDisassembler.a lib/Target/WebAssembly/Disassembler/CMakeFiles/LLVMWebAssemblyDisassembler.dir/WebAssemblyDisassembler.cpp.obj && C:\msys64\mingw64\bin\ranlib.exe lib\libLLVMWebAssemblyDisassembler.a && cd ." C:\msys64\mingw64\bin\ranlib.exe: could not create temporary file whilst writing archive: Permission denied [2619/3163] Linking CXX static library lib\libLLVMWebAssemblyAsmParser.a [2620/3163] Linking CXX static library lib\libLLVMXtensaDisassembler.a [2621/3163] Linking CXX static library lib\libLLVMXtensaDesc.a [2622/3163] Linking CXX static library lib\libLLVMX86Desc.a [2623/3163] Building CXX object lib/TextAPI/CMakeFiles/LLVMTextAPI.dir/TextStubV5.cpp.obj [2624/3163] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/StandardInstrumentations.cpp.obj [2625/3163] Building CXX object lib/TextAPI/CMakeFiles/LLVMTextAPI.dir/TextStub.cpp.obj [2626/3163] Building CXX object lib/ToolDrivers/llvm-lib/CMakeFiles/LLVMLibDriver.dir/LibDriver.cpp.obj [2627/3163] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilderPipelines.cpp.obj [2628/3163] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.obj [2629/3163] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.obj ninja: build stopped: subcommand failed. thread 'main' panicked at C:\Windows\ServiceProfiles\NetworkService\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.48\src\lib.rs:975:5: command did not execute successfully, got: exit code: 1 build script failed, must exit now note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace finished in 2290.054 seconds Build completed unsuccessfully in 0:43:10 ``` 1. ssh into `BrnoWIN004`: `ssh tunnel.BrnoWIN004` - Leave the ssh sesion open 2. Connect to it with Microsoft Remote Desktop - Address: `localhost:7777` - User: `admin` - Pass: `Espressif32` - The next steps are executed on the Windows machine 3. Open services: Search > Services 4. Open the `GitHub Action Runner (esp-rs.BNRONWIN004)` service 1. Stop the service: General tab > Stop 2. Update user: Log On tab > Browse > Enter `admin` > Check names > OK - After checking names, the field should be updated to `BRNOWIN004\admin` 3. Add password (see previous step) 4. Apply and OK 5. Start the service again 5. If there are some intermediary build artifacts, you may need to delete the `C:\actions-runnner\_work\rust-build\` folder 1. Select the folder with Shift+Click 2. Press the folder icon on the top bar 6. Close the remote sesion and the ssh session # Errors ## espflash - [ESP32 and ESP32-S2 failed with different causes](https://github.com/esp-rs/espflash/actions/runs/8591795628/attempts/1) - ESP32 issues resolved after reloading the USBs of the VM (`ssh brno.beeswarmGH ctlvm reload -m BrnoVMRS01`) - ESP32-S2 issues resolved after rebooting the VM. ## esp-hal