# Function
The simwifi can provides host Settings for sim wifi on nuttx sim emulator.
The script sim_wifi.sh supports two modes that simulate wifi, HWSIM and RNC
(real network card).
- In the HWSIM mode, we simulates two wlan interfaces. The wlan0 is STA and
the wlan1 is AP. The wlan0 can connect to the wlan1 in the nuttx simulator.
- In the RNC mode, we can use the same wlan interface name on the nuttx simulator
to control the connection behavior of the real wireless card.
# Config
Before using the Sim WiFi function, we need to perform the following
configurations:
- nuttx
SIM_NETDEV_NUMBER=3
SIM_WIFIDEV_NUMBER=2
SIM_NETDEV_TAP=y
DRIVERS_IEEE80211=y
NETDEV_WIRELESS_HANDLER=y
- apps
WIRELESS_WAPI_CMDTOOL=y
SYSTEM_DHCPC_RENEW=y
NETUTILS_DHCPD=y
# Using
We can use the './tools/simwifi/sim_wifi.sh help' command to view the commands
provided by the sim_wifi.sh script and the results are as follows.
sim_wifi.sh (rename <old> <new> |
init <wan> <mode> |clean |
start_wpa <wlan0> |stop_wpa |
start_hostapd <wlan0> |stop_hostapd |
start_udhcpc <wlan0> |stop_udhcpc |
start_dhcp <wlan0> |stop_dhcp |
start_hwsim |stop_hwsim |up_hwsim |
start_net <wlan0> |stop_net <wlan0> |
start_sta <wlan0> |stop_sta |
start_ap <wlan0> [eth0] |stop_ap <wlan0> [eth0] |
start_bridge <eth0> |stop_bridge <eth0> |
show | help)
- Init the simwifi, the command format is as follows:
sudo ./tools/simwifi/sim_wifi.sh init <wan> <mode>
The <wan> is the name of the interface for accessing the Internet.
The <mode> is the simwifi mode, HWSIM and RNC.
Setting HWSIM:
sudo ./tools/simwifi/sim_wifi.sh init eno1 HWSIM
Setting RNC:
sudo ./tools/simwifi/sim_wifi.sh init eno1 RNC
- In HWSIM mode:
Start the hwsim services, the command is as follows.
sudo ./tools/simwifi/sim_wifi.sh start_hwsim
Stop the hwsim services, the command is as follows
sudo ./tools/simwifi/sim_wifi.sh stop_hwsim
- In RNC mode:
Maybe the real wireless card name format is not wlanx, in this case
we need to change it to wlanx format. The command is as follows
sudo simwifi rename <old_name> wlanx
* Set the real wireless network card to STA mode.
sudo ./tools/simwifi/sim_wifi.sh start_sta wlan0
* Set the real wireless network card to AP mode.
sudo ./tools/simwifi/sim_wifi.sh start_ap wlan0
Finally we can clean up all the files, configurations and services of the simwifi.
sudo ./tools/simwifi/sim_wifi.sh clean
# Location problems
We can use the following command to locate the problem and display the
status.
cmd: sudo ./tools/simwifi/sim_wifi.sh show
log:
/var/run/simwifi
dnsmasq.conf hostapd simwifi.log udhcpc.script wpa_supplicant.pid
dnsmasq.leases hostapd.conf simwifi.state wpa_supplicant
dnsmasq.pid simwifi.conf udhcpc.pid wpa_supplicant.conf
services list
root 1880671 2046 0 10月10 ? 00:00:00 /usr/sbin/wpa_supplicant -B -c /var/run/simwifi/wpa_supplicant.conf -iwlan0 -P /var/run/simwifi/wpa_supplicant.pid
nobody 1880680 2046 0 10月10 ? 00:00:00 /usr/sbin/dnsmasq -inuttx0 -C /var/run/simwifi/dnsmasq.conf --log-debug -x /var/run/simwifi/dnsmasq.pid
root 1880672 2046 0 10月10 ? 00:00:00 /usr/sbin/udhcpc -i wlan0 -p /var/run/simwifi/udhcpc.pid -s /var/run/simwifi/udhcpc.script
bridge nuttx0
222: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master nuttx0 state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 2e:b0:bc:79:41:02 brd ff:ff:ff:ff:ff:ff
223: tap1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master nuttx0 state DOWN mode DEFAULT group default qlen 1000
link/ether a6:33:96:26:a4:1d brd ff:ff:ff:ff:ff:ff
default config
defwan:eno1
mode:rnc
state:SW_STA
wlan:wlan0
br:nuttx0
default via 10.221.127.254 dev eno1 proto dhcp metric 100
10.0.1.0/24 dev nuttx0 proto kernel scope link src 10.0.1.1
10.221.96.0/19 dev eno1 proto kernel scope link src 10.221.108.5 metric 100