archlinux 開機自動連接wifi

archlinux開機自動連接網絡

(https://bbs.archlinux.org/viewtopic.php?id=178625)
上一篇文章講到如何用命令行連接wifi,大家可以去看看。

本文參考 https://bbs.archlinux.org/viewtopic.php?id=178625

TL,DR

wpa_supplicant

# config wpa_supplicant
#/etc/wpa_supplicant/wpa_supplicant-wlp5s0.conf

# enable wpa_supplicant
systemctl enable wpa_supplicant@wlp5s0

config systemd-network

# config systemd-network
# /etc/systemd/network/00-wireless-dhcp.network
[Match]
Name=wlp5s0

[Network]
DHCP=yes

# enable systemd-networkd.service
systemctl enable systemd-networkd.service

需要工具

  1. wpa_supplicant
  2. dhcpcd

配置文件

  1. /etc/wpa_supplicant/wpa_supplicant-網卡名.conf

  2. /etc/systemd/network/00-wireless-dhcp.network

步驟

1. wpa_supplicant

1.1 查看網卡名字

ip link
# 1: lo
# 2: enp4s0
# 3: wlp5s0
  1. lo 是loop設備
  2. enp4s0 是有線設備
  3. wlp5s0 是無線設備

注意我的網卡名是 wlp5s0,下文中的wlp5s0 都需替換成你的

1.2 生成 wpa_supplicant.conf文件

將生成的wpa_supplicant.conf 放到/etc/wpa_supplicant/文件夾下,並重命名,格式爲:

wpa_supplicant-網卡名.conf

例如我的就是:

wpa_supplicant-wlp5s0.conf
通過修改原始配置文件

man wpa_supplicant.conf 知道原始配置文件在

/usr/share/doc/wpa_supplicant/wpa_supplicant.conf
通過wpa_passphrase生成配置文件
# wpa_passphrase MyNetwork SuperSecretPassphrase > /etc/wpa_supplicant/wpa_supplicant-wlp5s0.conf
通過下面的格式

priority 越大優先級越高

country=CN
update_config=1
network={
	ssid="SSID"
	psk="Passwd"
	key_mgmt=WPA-PSK
	priority=9
	id_str="identify which wifi is"
}

network={
	ssid="SSID"
	psk="Passwd"
	key_mgmt=WPA-PSK
	priority=8
	id_str="identify which wifi is"
}

1.3 用systemctl啓動wpa_supplicant服務

systemctl enable wpa_supplicant@wlp5s0

注意arch bbs 原回答多寫了.conf,後面也有跟帖指出了這個問題。

2. systemd-networkd

2.1 配置systemd-network的配置文件

創建/etc/systemd/network/00-wireless-dhcp.network,archbbs中說這個名字隨意。

[Match]
Name=wlp5s0

[Network]
DHCP=yes

2.2 用systemctl設置啓動服務systemd-networkd.service

systemctl enable systemd-networkd.service

回顧

1.3systemctl enable wpa_supplicant@wlp5s0中,我們看到:

Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /usr/lib/systemd/system/[email protected].

查看/usr/lib/systemd/system/[email protected],其中有一行:

ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I

這裏的%I 就是systemctl enable wpa_supplicant@wlp5s0中的wlp5s0,它通過%I來傳遞設備名,所以我們也就知道之前爲什麼要把配置文件這樣命名了

/etc/wpa_supplicant/wpa_supplicant-網卡名.conf
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章