Skip to content

Commit bf5a6f9

Browse files
authored
Add instructions for adding a device (#764)
1 parent a64db30 commit bf5a6f9

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

docs/WifiPerformance.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1464,6 +1464,148 @@ This section presents the performance test results, including key metrics and te
14641464

14651465
- Join our team: Become part of our passionate and dedicated team. We’re looking for [individuals who share our vision and are eager to contribute to the development of innovative testing solutions](https://forum.armbian.com/staffapplications/). Whether you have technical expertise or simply a willingness to learn, there’s a place for you here!
14661466

1467+
1468+
## Adding a New Device
1469+
1470+
This guide provides step-by-step instructions to add a new device (SBC SDIO, PCI or USB adapter) to the wireless testing infrastructure.
1471+
1472+
### 1. Prepare the Host Machine
1473+
1474+
- Ensure the board and wireless device is supported by Armbian.
1475+
- Flash Armbian image and configure basic settings
1476+
- Set hostname that reflects wireless test device (eg. rtl3070, wifiserver)
1477+
1478+
```bash
1479+
sudo hostnamectl set-hostname rtl3070
1480+
```
1481+
1482+
### 2. Identify Network Interfaces
1483+
1484+
- Use `ip link` or `iw dev` to list available interfaces.
1485+
- Identify MAC address and interface name (e.g., `wlan0`, `wlxMAC`, etc.).
1486+
1487+
### 3. Create a UDEV Rule
1488+
1489+
!!! warning
1490+
1491+
This step is only necessary if your network device does not have a predictable interface name.
1492+
1493+
- Use a predictable name like `wl<MAC>` to avoid interface conflicts.
1494+
- Add rule in `/etc/udev/rules.d/70-persistent-net.rules`:
1495+
1496+
```bash
1497+
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="wl<MAC>"
1498+
```
1499+
1500+
### 4. Get VPN access
1501+
1502+
The `TAILSCALE_AUTH_KEY` and access credentials for NetBox must be provided by the Armbian administration team. For assistance, please contact us via [https://www.armbian.com/contact/](https://www.armbian.com/contact/).
1503+
1504+
### 5. Prepare the machine
1505+
1506+
- Creates a new user (`ci`) with sudo privileges
1507+
- Configures SSH for key-based authentication only
1508+
- Installs and configures Tailscale for secure remote access
1509+
- Installs `iperf3` for network performance testing
1510+
1511+
```bash
1512+
#!/bin/bash
1513+
1514+
set -e
1515+
1516+
USERNAME="ci"
1517+
KEY_URL="https://github.armbian.com/ci.asc"
1518+
TAILSCALE_AUTH_KEY="tskey-auth-kXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
1519+
1520+
echo "[+] Creating user '$USERNAME' without password"
1521+
useradd -m -s /bin/bash "$USERNAME"
1522+
passwd -d "$USERNAME"
1523+
usermod -aG sudo "$USERNAME"
1524+
1525+
echo "[+] Setting up SSH key from $KEY_URL"
1526+
SSH_DIR="/home/$USERNAME/.ssh"
1527+
mkdir -p "$SSH_DIR"
1528+
curl -fsSL "$KEY_URL" -o "$SSH_DIR/authorized_keys"
1529+
chmod 700 "$SSH_DIR"
1530+
chmod 600 "$SSH_DIR/authorized_keys"
1531+
chown -R "$USERNAME:$USERNAME" "$SSH_DIR"
1532+
1533+
echo "[+] Disabling password authentication in SSH config"
1534+
sed -i 's/^#*\s*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
1535+
sed -i 's/^#*\s*PermitEmptyPasswords.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config
1536+
systemctl restart ssh
1537+
1538+
echo "[+] Installing Tailscale"
1539+
curl -fsSL https://tailscale.com/install.sh | sh
1540+
1541+
echo "[+] Bringing up Tailscale with provided auth key"
1542+
tailscale up --auth-key="$TAILSCALE_AUTH_KEY"
1543+
1544+
echo "[+] Installing iperf3 (non-interactive, no daemon)"
1545+
export DEBIAN_FRONTEND=noninteractive
1546+
apt-get update -qq
1547+
apt-get install -yqq iperf3
1548+
1549+
echo "[✔] Setup complete. User '$USERNAME' added, SSH key installed, Tailscale connected."
1550+
```
1551+
1552+
### 6. Register Your Location
1553+
1554+
Access: <https://stuff.armbian.com/netbox/dcim/sites/>
1555+
1556+
- Sites in NetBox represent physical locations of wireless test equipment.
1557+
- Each site have devices such as Access Points (APs), iperf3 servers, and wireless test clients.
1558+
- Register your testing location first if it doesn't exist yet. Create a new site with a clear name (e.g., Office Berlin, Lab Maribor) and add necessary data.
1559+
1560+
!!! warning
1561+
Make sure to check if site is not already define to not clutter database!
1562+
1563+
???+ success "Update Relevant Information"
1564+
1565+
- Access point SSID: `Your SSID`
1566+
- Iperf3 server IP: your local `IP address` that runs iperf3 server and can be accessible from wireless client
1567+
1568+
### 7. Register Device Type
1569+
1570+
Add [new device type](https://stuff.armbian.com/netbox/dcim/manufacturers/61/)
1571+
1572+
???+ success "Relevant data"
1573+
1574+
- Model name (CAPS): AIC8800
1575+
- Manufacturer: Generic
1576+
- Add image of the device in full HD (1920x1080) with exact same name as model AIC8800.png (CAPS name, lowercase extension)
1577+
1578+
!!! warning
1579+
1580+
Skip this step if WiFi SoC already exists in database.
1581+
1582+
### 8. Register Device
1583+
1584+
???+ success "Relevant data"
1585+
1586+
- Name: Compex WLE900VX (use commercial name)
1587+
- Device role: WiFi DUT
1588+
- Tags: USB Wireless
1589+
- Manufacturer: Generic
1590+
- Device type: AIC8800 (select the one you added previously)
1591+
- Serial number: 04:f0:21:2c:75:14 (MAC address)
1592+
- Location: where you are
1593+
- Site: name of your office, defined in previous step
1594+
- Custom Fields / class: AC (wifi classes: AX, AC, N)
1595+
1596+
- Add virtual interface (Add Components -> Interfaces)
1597+
1598+
???+ success "Relevant data"
1599+
1600+
- Name: `tailscale0`
1601+
- Type: `virtual`
1602+
1603+
Then select interface `tailscale0` and add `IP address`. Copy `IP address` from your device (example: 100.115.0.58/32) and select: Make this the primary IP for the device/VM
1604+
1605+
### 9. Run Initial Test
1606+
1607+
Run the [Wireless Performance Autotest workflow](https://github.com/armbian/armbian.github.io/actions/workflows/wireless-performance-autotest.yml) to verify whether the newly added device has been included in the test pool.
1608+
14671609
## Other resources
14681610

14691611
- [USB WiFi Adapter Information for Linux](https://github.com/morrownr/USB-WiFi)

0 commit comments

Comments
 (0)