0%

Linux开发板连接WPA加密的AP路由器

前言

Linux目前有两种方法配置网络:

  • wireless-tools
  • wpa_supplicant

iw支持的驱动较多,但只支持WEP加密;wpa_supplicant有部分驱动支持不完善,但支持WEP、WPA、WPA2加密。

由于WEP在现在市面的路由器中已经几乎被淘汰,因此使用wpa_supplicant进行连接。wpa_supplicant初次配置较为复杂,但配置一次后,下次遇到该AP时就可以自动连接。

初次配置

1. 启动网卡和程序

编辑配置文件/etc/wpa_supplicant.conf,写入如下内容(如没有该文件则新建):

1
2
ctrl_interface=/var/run/wpa_supplicant
update_config=1

update_config=1表示允许更改配置。

启动无线网卡:

1
ifconfig wlan0 192.168.15.11 up

启动wpa_supplicant:

1
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &

其中,-i指定网卡,-c指定配置文件。

进入wpa_cli界面:

1
wpa_cli

image-20210104140919495

在CLI界面中,可以输入各种命令修改网卡配置。

注意,在CLI中回退字符时,需要按Ctrl + Backspace,直接按Backspace会被当做一般的字符输入。

2. 扫描AP

使用scan命令扫描网络,扫描完毕后使用scan_results查看网络:

1
2
3
4
5
6
7
> scan

......

>> scan_results

... ...

image-20210104141252417

3. 增加网络

使用add_network增加网络,会增加一个网络编号。然后使用list_network查看网络信息:

1
2
3
4
5
> add_network
0
> list_network
network id / ssid / bssid / flags
0 any [DISABLED]

4. 设定SSID和密码

1
2
3
4
> set_network 0 ssid "HONOR315"
OK
> set_network 0 psk "12345678"
OK

5. 使能网络连接

使用enable_network命令使能网络连接,出现CTRL-EVENT-CONNECTED表示已经连接完毕。

1
2
3
4
> enable_network 0

... ...
<3>CTRL-EVENT-CONNECTED - Connection to 94:37:f7:a5:1f:80 completed [id=0 id_str=]

6. 保存配置

使用status命令查看网络状态。输入save 保存配置。

1
2
3
4
5
6
> status

... ...

> save
OK

image-20210104142841287

最后输入quit退出CLI,回到终端。

1
> quit

此时可以查看网卡状态:

1
2
ifconfig wlan0
iw wlan0 info

image-20210104143255326

查看配置文件,已经发生变化:

1
cat /etc/wpa_supplicant.conf
image-20210127142631483

7. 网卡连通测试

电脑ping开发板:

image-20210104143620004

开发板ping电脑:

image-20210104143707464

加入开机自启动

经过以上配置,只要wlan0网卡启动,且AP在信号范围内,就会自动进行连接。

如果有多个AP,可以在wpa_supplicant.conf中添加优先级:

1
2
3
4
5
6
7
8
ctrl_interface=/var/run/wpa_supplicant
update_config=1

network={
ssid="CNV315"
psk="12345678"
priority=2
}

不过,这样仍然需要手动启动网卡和wpa_supplicant,需要输入2条命令。因此,将命令加入开机加载的脚本,以便开机自启动。

编辑/etc/rc.local,在文件末尾添加以下内容:

1
2
3
# start wlan0 with static ip
ifconfig wlan0 192.168.15.11 up
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &

注意如果最后一行有exit 0,要将命令添加在exit 0之前。

之后重启开发板,将自动启动网卡并连接AP。

参考资料:

wpa_supplicant使用方法(简体中文,与英文不同步)

wpa_supplicant使用方法(英文原版)

wpa_supplicant 配置与应用