mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-01 05:13:01 +02:00
153 lines
5.7 KiB
Markdown
153 lines
5.7 KiB
Markdown
# Wi-Fi (Wireless LAN)
|
|
|
|
Infix includes built-in Wi-Fi client support for connecting to
|
|
wireless networks. When a compatible Wi-Fi adapter is detected, the
|
|
system automatically begins scanning for available networks.
|
|
|
|
## Current Limitations
|
|
|
|
- Only client mode is supported (no access point functionality)
|
|
- USB hotplug is not supported - adapters must be present at boot
|
|
- Interface naming may be inconsistent with multiple USB Wi-Fi adapters
|
|
|
|
## Supported Wi-Fi Adapters
|
|
|
|
Wi-Fi support is primarily tested with Realtek chipset-based adapters.
|
|
|
|
### Known Working Chipsets
|
|
|
|
- RTL8821CU
|
|
- Other Realtek chipsets may work but are not guaranteed
|
|
|
|
|
|
> [!NOTE] Some Realtek chipsets require proprietary drivers not included in the standard kernel
|
|
> Firmware requirements vary by chipset
|
|
> Check kernel logs if your adapter is not detected
|
|
|
|
## Configuration
|
|
|
|
Add a supported Wi-Fi network device. To verify that it has been
|
|
detected, look for `wifi0` in `show interfaces`
|
|
|
|
```
|
|
admin@example:/> show interfaces
|
|
INTERFACE PROTOCOL STATE DATA
|
|
lo loopback UP
|
|
ipv4 127.0.0.1/8 (static)
|
|
ipv6 ::1/128 (static)
|
|
e1 ethernet UP 02:00:00:00:00:01
|
|
ipv6 fe80::ff:fe00:1/64 (link-layer)
|
|
ipv6 fec0::ff:fe00:1/64 (link-layer)
|
|
wifi0 ethernet DOWN f0:09:0d:36:5f:86
|
|
wifi ssid: ------, signal: ------
|
|
|
|
```
|
|
Add the new Wi-Fi interface to the configuration to start scanning.
|
|
```
|
|
admin@example:/config/> set interface wifi0
|
|
admin@example:/config/> leave
|
|
```
|
|
Now the system will now start scanning in the background. To
|
|
see the result read the operational datastore for interface `wifi0` or
|
|
use the CLI
|
|
|
|
```
|
|
admin@infix-00-00-00:/> show interfaces name wifi0
|
|
name : wifi0
|
|
type : wifi
|
|
index : 3
|
|
mtu : 1500
|
|
operational status : down
|
|
physical address : f0:09:0d:36:5f:86
|
|
ipv4 addresses :
|
|
ipv6 addresses :
|
|
SSID : ----
|
|
Signal : ----
|
|
|
|
SSID ENCRYPTION SIGNAL
|
|
ssid1 WPA2-Personal excellent
|
|
ssid2 WPA2-Personal excellent
|
|
ssid3 WPA2-Personal excellent
|
|
ssid4 WPA2-Personal good
|
|
ssid5 WPA2-Personal good
|
|
ssid6 WPA2-Personal good
|
|
```
|
|
|
|
In the CLI, signal strength is reported as: excellent, good, poor or
|
|
bad. For precise values, use NETCONF or RESTCONF, where the RSSI (in
|
|
dBm) is available in the operational datastore.
|
|
|
|
Configure your Wi-Fi secret in the keystore, it should be between 8
|
|
and 63 characters
|
|
|
|
```
|
|
admin@example:/> configure
|
|
admin@example:/config/> edit keystore symmetric-key example
|
|
admin@example:/config/keystore/symmetric-key/example/> set key-format wifi-preshared-key-format
|
|
admin@example:/config/keystore/symmetric-key/example/> set cleartext-key mysecret
|
|
admin@example:/config/keystore/symmetric-key/example/> leave
|
|
admin@example:/>
|
|
```
|
|
|
|
Configure the Wi-Fi settings, set secret to the name selected above
|
|
for the symmetric key, in this case `example`.
|
|
|
|
WPA2 or WPA3 encryption will be automatically selected based on what
|
|
the access point supports. No manual selection is required unless
|
|
connecting to an open network. No support for certificate based
|
|
authentication yet.
|
|
|
|
Unencrypted network is also supported, to connect to an unencrypted
|
|
network (generally not recommended):
|
|
```
|
|
admin@example:/config/interface/wifi0/> set wifi encryption disabled
|
|
```
|
|
|
|
A valid `country-code` is also required for regulatory compliance, the
|
|
valid codes are documented in the YANG model `infix-wifi-country-codes`
|
|
|
|
|
|
```
|
|
admin@example:/> configure
|
|
admin@example:/config/> edit interface wifi0
|
|
admin@example:/config/interface/wifi0/>
|
|
admin@example:/config/interface/wifi0/> set wifi ssid ssid1
|
|
admin@example:/config/interface/wifi0/> set wifi secret example
|
|
admin@example:/config/interface/wifi0/> set wifi country-code SE
|
|
admin@example:/config/interface/wifi0/> leave
|
|
```
|
|
|
|
The Wi-Fi negotiation should now start immediately, provided that the
|
|
SSID and pre-shared key are correct. You can verify the connection by
|
|
running `show interfaces` again.
|
|
|
|
|
|
```
|
|
admin@example:/> show interfaces
|
|
INTERFACE PROTOCOL STATE DATA
|
|
lo loopback UP
|
|
ipv4 127.0.0.1/8 (static)
|
|
ipv6 ::1/128 (static)
|
|
e1 ethernet UP 02:00:00:00:00:01
|
|
ipv6 fe80::ff:fe00:1/64 (link-layer)
|
|
ipv6 fec0::ff:fe00:1/64 (link-layer)
|
|
wifi0 ethernet UP f0:09:0d:36:5f:86
|
|
wifi ssid: ssid1, signal: excellent
|
|
|
|
admin@example:/>
|
|
```
|
|
|
|
## Troubleshooting Connection Issues
|
|
|
|
Use `show wifi scan wifi0` and `show interfaces` to verify signal strength
|
|
and connection status. If issues arise, try the following
|
|
troubleshooting steps:
|
|
|
|
1. **Verify signal strength**: Check that the target network shows "good" or "excellent" signal
|
|
2. **Check credentials**: Verify the preshared key in `ietf-keystore`
|
|
3. **Review logs**: Check system logs with `show log` for Wi-Fi related errors
|
|
4. **Regulatory compliance**: Ensure the country-code matches your location
|
|
5. **Hardware detection**: Confirm the adapter appears in `show interfaces`
|
|
|
|
If issues persist, check the system log for specific error messages that can help identify the root cause.
|