【EASY-EAI-PI2(RV1126B)开发板试用体验】新板子到手第一件事:把 WiFi 配通

原创2026-06-25 15:55:08浏览11
11
Star

世界上我和你之间最远的距离就是没网。

当我拿到板子后,第一件事是板子在我键盘旁边会影响同时干很多事,所以第一件事是要把网调通。

1. 看有哪些网卡

ip link show
# 或
ls /sys/class/net/

输出:

lo        # 回环
eth0      # 有线,状态 DOWN
wlan0     # WiFi,关键就是这个
can0      # CAN 总线,忽略
dummy0    # 虚拟网卡

WiFi 网卡 wlan0 已经在,说明板子出厂就带了无线模块和驱动。

这个板子用的是 WS73 芯片,WiFi/BT 二合一。驱动以 .ko 文件存放在 /etc/ws73/,系统启动时自动加载:

cat /usr/bin/wifibt-init.sh
insmod /etc/ws73/plat_soc.ko
insmod /etc/ws73/wifi_soc.ko
insmod /etc/ws73/ble_soc.ko

如果 wlan0 没出现,先检查这个服务:

sudo systemctl status wifibt-init

2. 扫描 WiFi 热点

sudo iw dev wlan0 scan | grep SSID

能看到周围的 WiFi 名称列表,确认无线模块正常工作。


3. 配置 wpa_supplicant

编辑 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

sudo vim /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

内容:

ctrl_interface=/run/wpa_supplicant
update_config=1
country=CN
network={
    ssid="你的WiFi名"
    psk="你的WiFi密码"
    key_mgmt=WPA-PSK
    proto=RSN
    pairwise=CCMP
    group=CCMP
}

}

字段

说明

country=CN

地区码,决定信道和功率限制

key_mgmt=WPA-PSK

WPA2 个人版,最常见

proto=RSN

即 WPA2

pairwise/group=CCMP

AES 加密


4. 手动测试连接

先不用 systemd 服务,一步步手动验证:

# 启动 wpa_supplicant(后台运行)
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

# 看是否连上
sudo wpa_cli -i wlan0 status

输出里看到 wpa_state=COMPLETED 就说明连上了。

# DHCP 获取 IP(如果有 DHCP 服务器)
sudo dhclient wlan0

# 或者设静态 IP
sudo ip addr flush dev wlan0
sudo ip addr add 192.168.3.207/24 dev wlan0
sudo ip route add default via 192.168.3.1

验证:

ping 192.168.3.1    # 先 ping 网关
ping 8.8.8.8        # 再 ping 外网
ping baidu.com      # 最后 ping 域名

5. 做成开机自启的 systemd 服务

手动的命令在重启后就没了。把它写成 service:

sudo vim /etc/systemd/system/wifi-static.service
[Unit]
Description=WiFi static IP for wlan0
After=network.target
Before=network-online.target
Wants=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/sbin/wpa_supplicant -B -i wlan0 \
    -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ExecStart=/sbin/ip addr flush dev wlan0
ExecStart=/sbin/ip addr add 192.168.3.207/24 dev wlan0
ExecStart=/sbin/ip route add default via 192.168.3.1
ExecStop=/sbin/ip addr flush dev wlan0
ExecStop=/sbin/wpa_cli -i wlan0 terminate

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable wifi-static
sudo systemctl start wifi-static

6. DNS 配置

板子用了 systemd-resolved,DNS 解析走本地 stub:

cat /etc/resolv.conf
# nameserver 127.0.0.53

如果没有特殊需求,这步不用改。如果想用特定 DNS,可以改 /etc/systemd/resolved.conf

[Resolve]
DNS=223.5.5.5 8.8.8.8
FallbackDNS=114.114.114.114

然后 sudo systemctl restart systemd-resolved


7. 最终验证

# 1. WiFi 网卡状态
ip addr show wlan0
# inet 192.168.3.207/24 ← 有 IP

# 2. 路由表
ip route show
# default via 192.168.3.1 ← 默认网关正常

# 3. WiFi 连接状态
iwconfig wlan0
# ESSID:"liuqi"  Access Point: 10:0C:6B:F2:72:BD
# Signal level=-55 dBm ← 信号强度

# 4. 联网
ping -c 3 baidu.com
# 3 packets transmitted, 3 received ← 通了


完整的服务依赖链

板子从开机到 WiFi 可用的顺序:

sysinit.target
    
    
wifibt-init.service        → insmod 加载 WiFi 驱动模块
    
    
network.target
    
    
wifi-static.service         → wpa_supplicant 连接 AP
                            → ip addr 设静态 IP
                            → ip route 加默认网关
    
network-online.target
    
    
systemd-resolved.service    → DNS 解析

查看各服务状态:

systemctl status wifibt-init wpa_supplicant wifi-static systemd-resolved

踩过的坑

  1. WiFi 网卡没出现wifibt-init 没跑或 .ko 文件路径不对,dmesg \| grep wifi 看内核日志

  2. wpa_state=SCANNING 一直不完成 — 密码错了或加密方式不对,用 wpa_cli status 看详细信息

  3. 能 ping 通 IP 但 ping 不通域名 — DNS 没配好,检查 /etc/resolv.confsystemd-resolved

  4. 重启后 IP 丢了 — 忘了 systemctl enable wifi-static

  5. country=CN 没写 — 某些 5G 信道可能扫不到,因为地区限制了可用信道

  6. eth0 也插着网线但 WiFi 优先 — Linux 默认只有一个默认网关,在 ip route 里可以看到哪个接口被选中