Compare commits

..

No commits in common. "2275dced88d603ca76c37ef74c764e1589e41e41" and "78bc0effc45d539a375cdff43f7284330dd6a0d5" have entirely different histories.

1 changed files with 1 additions and 32 deletions

View File

@ -119,7 +119,7 @@ Use the `esp32_deploy.py` script for deploying to multiple devices:
python3 esp32_deploy.py \
--ssid "YourSSID" \
--password "password" \
--start-ip 192.168.1.50 \
--target-ip 192.168.1.50 \
--netmask 255.255.255.0 \
--gateway 192.168.1.1 \
--iperf-dest-ip 192.168.1.10 \
@ -128,37 +128,6 @@ python3 esp32_deploy.py \
See `doc/DEPLOYMENT_GUIDE.md` for complete deployment instructions.
### USB Port Mapping (`gen_udev_rules.py`)
When deploying to multiple ESP32 devices, Linux assigns `/dev/ttyUSB*` ports that can change between reboots or when devices are reconnected. The `gen_udev_rules.py` script creates stable symbolic links (e.g., `/dev/esp_port_01`, `/dev/esp_port_02`) based on each device's USB physical topology (`ID_PATH`), ensuring consistent port identification across system reboots.
**Features:**
- Uses `ID_PATH` for stable device identification (not just port numbers)
- Creates predictable symlinks: `/dev/esp_port_01`, `/dev/esp_port_02`, etc.
- Supports full scan (generate from scratch) or incremental updates (append new devices)
- Sorts devices by physical USB topology for consistent ordering
**Usage:**
```bash
# Generate complete rules file from scratch
python3 gen_udev_rules.py --full
# Append only new devices to existing rules (default mode)
python3 gen_udev_rules.py --append
# Dry run to preview changes
python3 gen_udev_rules.py --append --dry-run
```
After generating rules, install them:
```bash
sudo cp 99-esp32-stable.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
```
The deployment script (`esp32_deploy.py`) can use these stable symlinks when `--map-ports` is used, or devices can be referenced directly by their `esp_port_XX` names.
## Project Structure
```