K230设置自动连接wifi
Published:
按照K230 linux WiFi使用指南 设置K230开发板的wifi密码. 感觉流程可以精简一些, 实现开机自动连接Wifi.
第一步, 启用无线网卡. ifconfig 或者 ip 命令都可以用, ifconfig 是相对较老的命令
# ifconfig wlan0 up
ip link set wlan0 up
第二步, 启动wpa_supplicant:
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
-B的作用是后台运行, -i指定无线网卡, -c指定配置文件. 和wifi相关的配置都可以在配置文件中写好.
所以在第二步前, 需要先准备一下配置文件. 嘉楠提供了默认的配置文件:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
key_mgmt=NONE
}
这里没有设置wifi的名称和密码, 只能用来连开放的无线网络. 如果要设置wifi的名称和密码的话, 可以先:
wpa_passphrase wifi_test 12345678
network={
ssid="wifi_test"
#psk="12345678"
psk=5c86769b524f416c47ece4465c526cf24e20ce3e565618f4a081130ae22402cc
}
用wpa_passphrase生成加密的密码, 这样可以避免wifi密码泄漏.
接着写配置文件的时候可以写多个wifi名称和密码, 并且可以指定优先级, 以应多多种场景:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="HomeWiFi"
psk="home1234"
priority=10
}
network={
ssid="OfficeWiFi"
psk="work5678"
priority=5
}
network={
ssid="MyPhone"
psk="87654321"
priority=1
}
有了wpa_supplicant的配置之后, 还需要启动udhcpc来获取ip地址:
udhcpc -i wlan0 -q
最后, 这整个流程也都可以写在一个脚本里, 比如/etc/init.d/wifi_connect.sh, 然后在系统启动的过程中调用这个脚本, 以实现开机自动启动:
#!/bin/sh
WLAN_IFACE="wlan0"
CONF_FILE="/etc/wpa_supplicant.conf"
ip link set $WLAN_IFACE up
wpa_supplicant -B -i $WLAN_IFACE -c $CONF_FILE
sleep 3
udhcpc -i $WLAN_IFACE -q
然后在/etc/init.d/rcS 中的最后调用这个脚本:
/etc/init.d/wifi_connect.sh &
这样系统启动的时候就会自动连wifi啦.
