Configure Wi-Fi to function in STA+AP mode using Ubuntu.
Requirements
Use Ubuntu v2005 and newer, OTA Update will upgrade your OS to the latest version.
Configuration Instructions
Configure wlan0 to STA
mode, and wlan1 to AP
mode.
Add Wlan1 Interface
1
| khadas@Khadas:~$ sudo iw phy phy0 interface add wlan1 type managed
|
Use ifconfig
to check if wlan1
has been added successfully:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| khadas@Khadas:~$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.193 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a2f4:5aa3:a444:7845 prefixlen 64 scopeid 0x20<link> ether 00:15:18:01:81:31 txqueuelen 1000 (Ethernet) RX packets 194992 bytes 219966606 (219.9 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 38392 bytes 2602312 (2.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 14
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 6 bytes 624 (624.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6 bytes 624 (624.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 18:93:7f:a9:9d:0e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 180 (180.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 1a:93:7f:a9:9d:0e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
Setup Wlan1 as a Hotspot
Setup wlan1
as a hotspot, and allow automatic connections.
We shall name our hotspot khadas_ap
, with password 12345678
.
2.4 GHz Frequency
1 2 3 4 5 6 7
| $ sudo nmcli con add type wifi ifname wlan1 con-name Hostspot autoconnect yes ssid khadas_ap $ sudo nmcli con modify Hostspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared $ sudo nmcli con modify Hostspot wifi-sec.key-mgmt wpa-psk $ sudo nmcli con modify Hostspot wifi-sec.psk "12345678" $ sudo nmcli con modify Hostspot ipv4.addresses 192.168.2.20/24 $ sudo nmcli con modify Hostspot ipv4.gateway 192.168.2.1 $ sudo nmcli con up Hostspot
|
5 GHz Frequency
To setup a 5GHz network, you’ll need to use the channel
argument.
We shall name our hotspot khadas_ap
, with password 12345678
.
1 2 3 4 5 6 7
| $ sudo nmcli con add type wifi ifname wlan1 con-name Hostspot autoconnect yes ssid khadas_ap $ sudo nmcli c modify Hostspot 802-11-wireless.mode ap 802-11-wireless.band a 802-11-wireless.channel 149 802-11-wireless.powersave 2 ipv4.method shared $ sudo nmcli con modify Hostspot wifi-sec.key-mgmt wpa-psk $ sudo nmcli con modify Hostspot wifi-sec.psk "12345678" $ sudo nmcli con modify Hostspot ipv4.addresses 192.168.2.20/24 $ sudo nmcli con modify Hostspot ipv4.gateway 192.168.2.1 $ sudo nmcli con up Hostspot
|
Use ifconfig
to check if everything has been setup correctly:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| khadas@Khadas:~$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.193 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a2f4:5aa3:a444:7845 prefixlen 64 scopeid 0x20<link> ether 00:15:18:01:81:31 txqueuelen 1000 (Ethernet) RX packets 194992 bytes 219966606 (219.9 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 38392 bytes 2602312 (2.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 14
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 6 bytes 624 (624.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6 bytes 624 (624.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 18:93:7f:a9:9d:0e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 180 (180.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.20 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::2069:83c5:2e4c:2614 prefixlen 64 scopeid 0x20<link> ether 1a:93:7f:a9:9d:0e txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 18 bytes 1312 (1.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
Go Online!
1、Turn off Ethernet:
1
| khadas@Khadas:~$ sudo ifconfig eth0 down
|
2、Verify that wlan0
has a working internet connection:
1 2 3 4 5 6
| khadas@Khadas:~$ sudo ping -I wlan0 www.khadas.com PING td-balancer-dc11-60-161.wixdns.net (185.230.60.161) from 192.168.124.80 wlan0: 56(84) bytes of data. 64 bytes from 185.230.60.161 (185.230.60.161): icmp_seq=1 ttl=240 time=293 ms 64 bytes from 185.230.60.161 (185.230.60.161): icmp_seq=2 ttl=240 time=316 ms 64 bytes from 185.230.60.161 (185.230.60.161): icmp_seq=3 ttl=240 time=238 ms ...
|
3、Verify that wlan1
can be used as a hotpot:
- Name: 2.4G/
khadas_ap
, 5G/khadas_ap_5G
- Password:
12345678