Rack cheatsheets¶
Quick reference at the rack.
Quick reference - all DUTs¶
Gateway: Isolated: 192.168.XXX.254 (per-VLAN). Mesh: 192.168.200.254. Per-DUT VLAN change: switch-vlan <dut> <vlan> (or --restore). See duts-config Internet access.
| DUT | Port | VLAN | Power | Ch | Serial | SSH (isolated) | Mesh SSH IP (VLAN 200) |
|---|---|---|---|---|---|---|---|
| Belkin #1 | 11 | 100 | Relay | 0 | belkin-rt3200-1 | ssh dut-belkin-1 |
10.13.200.11 |
| Belkin #2 | 12 | 101 | Relay | 1 | belkin-rt3200-2 | ssh dut-belkin-2 |
10.13.200.196 |
| Belkin #3 | 13 | 102 | Relay | 2 | belkin-rt3200-3 | ssh dut-belkin-3 |
10.13.200.118 |
| Banana Pi R4 | 14 | 103 | Relay | 3 | bpi-r4 | ssh dut-bananapi |
10.13.200.169 |
| OpenWRT One | 1 | 104 | PoE | - | openwrt-one | ssh dut-openwrt-one |
10.13.200.120 |
| Librerouter 1 | 2 | 105 | Relay | 4 | librerouter-1 | ssh dut-librerouter-1 |
10.13.200.77 |
| Librerouter 2 | 3 | 106 | Relay | - | - | ssh dut-librerouter-2 |
- |
| Librerouter 3 | 4 | 107 | Relay | - | - | ssh dut-librerouter-3 |
- |
SSH (isolated) connects via labgrid-bound-connect on the DUT's isolated VLAN (default state). Mesh VLAN 200 access (e.g. test crash left DUT there): sudo labgrid-bound-connect vlan200 <mesh_ssh_ip> 22. Details: SSH access to DUTs. First time in the lab: provision_mesh_ip.py --all.
OpenWrt profiles¶
| DUT | Subtarget | Profile |
|---|---|---|
| Belkin RT3200 | mt7622 | linksys_e8450-ubi |
| Banana Pi R4 | filogic | bananapi_bpi-r4 |
| OpenWrt One | filogic | openwrt_one |
| LibreRouter 1 | generic | librerouter_librerouter-v1 |
| Gateway TL-WDR3500 | generic | tplink_tl-wdr3500-v1 |
LibreMesh feeds, menuconfig, lime packages, QEMU/vwifi: build-firmware-manual.
CI workflow quick reference¶
Trigger a firmware build and test from GitHub Actions without touching the lab manually.
Go to: GitHub → Actions → Build LibreMesh and Test on DUT → Run workflow
| Input | Example | Notes |
|---|---|---|
duts |
belkin_rt3200 or all |
Comma-separated or all |
lime_ref |
v2024.1 |
Branch, tag, or commit SHA |
openwrt_version |
23.05.5 |
Must match lime_ref |
extra_packages |
luci-app-dawn |
Prefix with - to remove |
config_file |
firmware/configs/belkin_rt3200.conf |
Optional, injected as /etc/config/<name> |
The flash_and_test job runs on the T430Runner (testbed-fcefyn). Full guide: CI: Build & Test.
SSH: Oracle VPS and OpenWrt gateway¶
From the orchestration host (same machine as Labgrid). Requires ~/.ssh/config per repo templates.
| System | Command | Notes |
|---|---|---|
| Oracle VPS (Nginx / Grafana tunnel) | ssh oracle-vps |
Host oracle-vps: public IP, typical user ubuntu, dedicated key. Provisioning: public Grafana. |
| Gateway (OpenWrt on trunk, e.g. WDR3500) | ssh gateway-openwrt |
Host gateway-openwrt with HostName 192.168.100.254, User root. In mesh, 192.168.200.254 also works. Detail: gateway §5.5. |
Switch and power scripts¶
| Script | Purpose | Example |
|---|---|---|
scripts/switch/poe_switch_control.py |
Control PoE ports on the TP-Link switch | python3 scripts/switch/poe_switch_control.py off 1 |
scripts/switch/dut_gateway.py |
Update default gateway on DUTs via SSH after VLAN change | python3 scripts/switch/dut_gateway.py --dut belkin_rt3200 |
# Power cycle OpenWRT One (PoE port 1)
python3 scripts/switch/poe_switch_control.py off 1
sleep 3
python3 scripts/switch/poe_switch_control.py on 1
# Set SWITCH_PASSWORD env var or use ~/.config/switch.conf
export SWITCH_PASSWORD=yourpassword
TP-Link SG2016P switch¶
| Field | Value |
|---|---|
| IP | 192.168.0.1 |
| SSH | ssh switch-fcefyn |
| User | admin |
| Note | Does not accept public keys; use password in SSH config |
| Manual PoE | poe_switch_control.py off 1 / on 1 (port 1 = OpenWRT One) |