arch linux使用wpa_supplicant连接无线网络

无线网卡驱动

我使用两种arch linux发行版:

  • Asahi Linux : 内置了 Apple ARM架构芯片M1 Pro MacBook Pro内置的无线网卡驱动,所以可以直接识别出 wlan0

  • 标准版 arch linux : 在 MacBook Pro 2013 later 上,由于Broadcom的授权限制默认不提供Broadcom BCM4360 802.11ac无线网卡驱动,需要独立安装 broadcom-wl-dkms 软件包

安装 broadcom-wl-dkms

在arch linux上编译安装 动态内核模块支持(DKMS) 内核模块都需要先安装操作系统内核对应头文件,否则会报错类似 ERROR: Missing sys kernel headers for module broadcom-wl...

wpa_supplicant基础配置

  • 创建 wpa_supplicant 的配置文件:

# AP scanning
echo "ap_scan=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
# ISO/IEC alpha2 country code in which the device is operating
echo "country=CN" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

wpa_passphrase <SSID> <SSID_PASSWD> | sudo tee -a /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

备注

wap_supplicant配置文件命名为 /etc/wpa_supplicant/wpa_supplicant-interface.conf 可以方便后面结合 Systemd Networkd服务 启动对应的无线网卡

对于5G的无线网络,需要配置 country code

对于隐藏AP,需要添加 ap_scan

  • 激活对应无线网卡的服务,并且激活dhcpcd (DHCP客户端):

sudo systemctl enable wpa_supplicant@wlan0.service
sudo systemctl enable dhcpcd
  • 已经配置完成,可以重启主机生效或者直接启动服务:

sudo systemctl start wpa_supplicant@wlan0.service
sudo systemctl start dhcpcd

参考