一、修改wifi的節點名
1.找到wifi模塊的PID和VID
ifconfig查看wifi模塊網絡節點的名字,發現是wlx44876393bb3a(wlx+mac地址)
通過udevadm info -a + /sys/class/net/wlx44876393bba路徑的命令去查看wlx44876393bba的總線號,端口號和vid和pid對應的driver設備。
udevadm info -a /sys/class/net/wlx44876393bba
udevadm info -a /sys/class/net/wlan0
udevadm info -a /sys/class/net/wlan0 | grep -i "idVendor\|idProduct\|driver"
2.創建udev規則文件去修改wifi模塊節點的名字
找到之前修改4G/5G的名字創建的udev規則文件,在這基礎上去修改
因為這個物理接口除了4G/5G模塊顯示usb0
還有wifi模塊也要接在這里,那wifi模塊我們不顯示usb0,需要顯示為wlan0
所以我們在以前的基礎上新添一些條件,增加了pid和vid去分辨4g/5g模塊和wifi模塊
sudo vi /etc/udev/rules.d/10-4g-rename.rules
3.生效規則
sudo udevadm control --reload
sudo udevadm trigger
4.其它的替代方案
新建高優先級規則(文件名需排在前面)?
比如之前的4G/5G的模塊名字修改的規則文件名是10-4g-rename.rules,是10開頭的
那我就在建一個9開頭的09-wifi-rename.rules。
9開頭的文件:09-wifi-rename.rules優先級比10開頭的文件高:10-4g-rename.rules
09-wifi-rename.rules生成的規則會覆蓋10-4g-rename.rules 的規則。
sudo vi /etc/udev/rules.d/09-wifi-rename.rules
二、NetworkManager配置wifi模塊的客戶端模式并自動獲取ip,配置wifi模塊的AP模式。
1. 配置wifi模塊的客戶端模式并自動獲取ip
參考下面的wifi模塊的AP模式配置,
可以使用2.1的方法通過命令去添加配置。
也可以使用2.2的方法通過nmtui圖形化去配置。
2. 配置wifi模塊的AP模式。
2.1 使用NetworkManager的命令添加AP連接的配置 (也可以通過 nmtui 圖形化配置 AP?去配置,效果是一樣的,如2.2所示)
sudo nmcli con add type wifi ifname wlan0 \con-name MyAP \autoconnect no \ssid MyWiFiAP \mode ap \ipv4.method shared \wifi-sec.key-mgmt wpa-psk \wifi-sec.psk "12345678"
```bash
#創建成功的提示
Connection 'MyAP' (df6dce52-6834-4ce7-9885-e0ba943d36ac) successfully added.
2.2 使用NetworkManager的 nmtui 圖形化配置 AP?
2.21 使用nmtui打開圖形化界面
sudo nmtui
2.22 操作流程:
① 選擇 ??Edit a connection?? → ??Add??
② 選擇 ??Wi-Fi?? 類型
③ 配置參數:
- Profile name: MyAP
- Device: wlan0
- SSID: MyWiFiAP
- Mode: ??Access Point??
- Security: ??WPA & WPA2 Personal??
- Password: 12345678
- IPv4 CONFIGURATION:Shared
- Automatically connect :不選中,取消掉自動連接
三、客戶端模式與AP模式之間的切換指令
sudo nmcli con down "wlan0" # 關閉客戶端連接
sudo nmcli con up "MyAP" # 啟動 AP
如圖所示:
四、完整的流程演示
# 1、加載8188-wifi模塊驅動
root@IMX8-Tronlong:/usr/demo/wifi# insmod 8188eu.ko# 2、假設已經配置好了wifi模塊的客戶端模式,加載完驅動會顯示wlan0和wlan1,并使用客戶端模式自動獲取到ip。
root@IMX8-Tronlong:/usr/demo/wifi# ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.146 netmask 255.255.255.0 broadcast 192.168.1.255inet6 240e:3b2:3231:880:e1af:95f0:c304:2e05 prefixlen 64 scopeid 0x0<global>inet6 240e:3b2:3231:880:8881:b94f:12c2:7a prefixlen 128 scopeid 0x0<global>inet6 fe80::e2a3:1b26:c671:c609 prefixlen 64 scopeid 0x20<link>inet6 240e:3b2:3231:880:b15:3183:4c6b:e95e prefixlen 64 scopeid 0x0<global>ether 78:22:88:c9:c7:03 txqueuelen 1000 (Ethernet)RX packets 21051 bytes 3182648 (3.1 MB)RX errors 0 dropped 11238 overruns 0 frame 0TX packets 32 bytes 5188 (5.1 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500ether 7a:22:88:c9:c7:03 txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0# ③ 使用NM(NetworkManager)的命令去創建AP模式的配置
root@IMX8-Tronlong:~# sudo nmcli con add type wifi ifname wlan0 \
> con-name MyAP \
> autoconnect no \
> ssid MyWiFiAP \
> mode ap \
> ipv4.method shared \
> wifi-sec.key-mgmt wpa-psk \
> wifi-sec.psk "12345678"Connection 'MyAP' (c11659ac-8adc-4ae1-afac-94c4c347b796) successfully added.# ④ 由客戶端模式切換到AP模式
root@IMX8-Tronlong:/usr/demo/wifi# sudo nmcli con down "wlan0" # 關閉客戶端連接
Connection 'wlan0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
root@IMX8-Tronlong:/usr/demo/wifi#
root@IMX8-Tronlong:/usr/demo/wifi# sudo nmcli con up "MyAP" # 啟動 AP
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
root@IMX8-Tronlong:/usr/demo/wifi#
root@IMX8-Tronlong:/usr/demo/wifi# ifconfigwlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255inet6 fe80::a41:f9a0:aa8c:a652 prefixlen 64 scopeid 0x20<link>ether 78:22:88:c9:c7:03 txqueuelen 1000 (Ethernet)RX packets 80762 bytes 13353640 (13.3 MB)RX errors 0 dropped 60241 overruns 0 frame 0TX packets 38 bytes 6040 (6.0 KB)TX errors 0 dropped 1 overruns 0 carrier 0 collisions 0# 4.由AP模式切換到客戶端模式
root@IMX8-Tronlong:/usr/demo/wifi# sudo nmcli con down "MyAP" # 關閉 AP
Connection 'MyAP' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
root@IMX8-Tronlong:/usr/demo/wifi#
root@IMX8-Tronlong:/usr/demo/wifi# sudo nmcli con up "wlan0" # 啟動客戶端連接
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
root@IMX8-Tronlong:/usr/demo/wifi#
root@IMX8-Tronlong:/usr/demo/wifi# ifconfigwlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.146 netmask 255.255.255.0 broadcast 192.168.1.255inet6 240e:3b2:3231:880:e1af:95f0:c304:2e05 prefixlen 64 scopeid 0x0<global>inet6 240e:3b2:3231:880:8881:b94f:12c2:7a prefixlen 128 scopeid 0x0<global>inet6 fe80::e2a3:1b26:c671:c609 prefixlen 64 scopeid 0x20<link>inet6 240e:3b2:3231:880:b15:3183:4c6b:e95e prefixlen 64 scopeid 0x0<global>ether 78:22:88:c9:c7:03 txqueuelen 1000 (Ethernet)RX packets 82285 bytes 13581424 (13.5 MB)RX errors 0 dropped 60310 overruns 0 frame 0TX packets 155 bytes 29347 (29.3 KB)TX errors 0 dropped 4 overruns 0 carrier 0 collisions 0