跳到主要内容

WIFI

快速使用

[提示]

首先,请确保开发板的天线已正确连接,否则将无法搜索或连接到 Wi-Fi 网络。

  1. 切换到超级用户模式:

    sudo su 
  2. 扫描WIFI:

    nmcli dev wifi
  3. 连接到WIFI网络(“wifi_name”和“wifi_password”需要替换为您的实际 WiFi 的 SSID 和密码。):

    nmcli dev wifi connect "wifi_name" password "wifi_password"
  4. 显示“ successfully”就成功连接无线网络了,主板下次开机会自动连接到您指定的 WiFi。

    root@aura:/home/aura# nmcli dev wifi connect Luckfox-5G password luckfox12345
    Device 'wlan0' successfully activated with 'eb3c1765-e312-484c-b71b-740c5b988c34'.

1. Linux网络接口命名

在Linux发行版中,Debian采用的是"Predictable Network Interface Names"(可预测的网络接口命名)方案来命名网络接口。这种命名方案旨在提供一种一致和可预测的方式来标识和引用系统中的网络接口,以取代传统的非规则命名方式。它基于接口的属性、硬件位置和其他标识符来确定命名。根据"Predictable Network Interface Names"方案,网络接口的命名策略包括以下几种:

  1. 如果 Firmware 或者 BIOS 提供的板载设备的索引号可用就用此命名. 例如 eno1.
  2. 如果 Firmware 或者 BIOS 提供的 PCI-E 扩展插槽索引号可用就用此命名. 例如 ens1.
  3. 如果硬件接口的物理或者位置信息可用就用此命名. 例如 enp2s0.
  4. 如果网络接口的 MAC 地址可用就用此命名. 例如 enx525400d5e0fb
  5. 传统的内核原生命名方式. 例如 eth0.

Consistent Network Device Naming(一致的网络设备命名)是Linux中用于无线网络接口命名的规范。它旨在提供一致、可预测和稳定的命名方式,以减少系统重启或硬件更改时可能引起的接口命名变化。·在一致的网络设备命名规范中,无线网络接口的命名通常包含以下信息:

  1. 接口类型:命名以"wl"作为前缀表示无线网络接口。

  2. 设备物理位置或拓扑关系:使用一个数字作为标识符,例如"0",来表示无线网接口在系统中的位置或顺序。在默认情况下,第一个检测到的无线网接口将被命名为"wlan0",第二个为"wlan1",依此类推。

  3. 接口所在总线和设备的物理位置:使用一系列的字符和数字来表示接口所连接的总线和设备的物理位置。其中,以下字符和数字具有特定的含义:

    • w: 代表无线网络接口。
    • l: 代表内核中的网络设备(Linux)。
    • p: 代表PCI总线。
    • s: 代表槽口(slot)。
    • 数字: 代表总线和槽口的编号。

    例如,命名为"wlp3s0"的接口表示连接在PCI总线上第3个槽口的无线网络接口。

2. 使用 udev 规则分配用户定义的网络接口名称

  1. 显示所有网络接口及其 MAC 地址:

    linaro@linaro-alip:~$ sudo ip link list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 1a:7a:d7:64:5d:56 brd ff:ff:ff:ff:ff:ff
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
    link/ether b8:2d:28:43:ad:b0 brd ff:ff:ff:ff:ff:ff
  2. 使用以下内容创建文件 /etc/udev/rules.d/70-custom-ifnames.rules:

    SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="be:5d:ab:aa:e4:79",ATTR{type}=="1",NAME="eth0"
    SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="b8:2d:28:43:ad:b0",ATTR{type}=="1",NAME="eth1"
  3. 重启设备:

    sudo reboot
  4. 验证每个 MAC 地址的接口名称是否与规则文件的 NAME 参数中设置的值相匹配:

    linaro@linaro-alip:~$ sudo ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: RJ-45: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 1a:7a:d7:64:5d:56 brd ff:ff:ff:ff:ff:ff
    3: WIFI: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
    link/ether b8:2d:28:43:ad:b0 brd ff:ff:ff:ff:ff:ff

3. Network Manager 简介

在上手教程中,我们学习了如何使用 nmcli 连接WiFi。本节我们将详细介绍 nmcli 的用法。

Network Manager Command-Line Interface(nmcli)是一个命令行工具,用于在 Linux 和 Unix 系统中管理网络连接。它是 Network Manager 的命令行前端,允许用户通过终端或 Shell 脚本进行网络配置和管理。nmcli可以用于创建、显示、编辑、删除、激活和停用网络连接,同时也可以控制和显示网络设备的状态。

  1. 使用 --help 查看nmcli命令组成:

    linaro@linaro-alip:~$ nmcli --help
    Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

    OPTIONS
    -o[verview] overview mode (hide default values)
    -t[erse] terse output
    -p[retty] pretty output
    -m[ode] tabular|multiline output mode
    -c[olors] auto|yes|no whether to use colors in output
    -f[ields] <field1,field2,...>|all|common specify fields to output
    -g[et-values] <field1,field2,...>|all|common shortcut for -m tabular -t -f
    -e[scape] yes|no escape columns separators in values
    -a[sk] ask for missing parameters
    -s[how-secrets] allow displaying passwords
    -w[ait] <seconds> set timeout waiting for finishing operations
    -v[ersion] show program version
    -h[elp] print this help

    OBJECT
    g[eneral] NetworkManager's general status and operations
    n[etworking] overall networking control
    r[adio] NetworkManager radio switches
    c[onnection] NetworkManager's connections
    d[evice] devices managed by NetworkManager
    a[gent] NetworkManager secret agent or polkit agent
    m[onitor] monitor NetworkManager changes
  2. 常用命令

    命令作用
    nmcli n显示 NetworkManager 是否接管网络设置
    nmcli n on设定 NetworkManager 接管网络
    nmcli n off取消 NetworkManager 接管网络
    nmcli c status查看连接简略信息
    nmcli c show查看连接详细信息
    nmcli c up/down ifname启动/关闭指定连接(ifname 网卡)
    nmcli c show(s) ifname查看ifname网卡的连接详细信息
    nmcli c delete(de) wlan0删除指定连接
    nmcli d status显示所有网络接口设备的状态
    nmcli d show查看设备详细信息
    nmcli d sh wlan0显示某一特定设备的详细信息
    nmcli d connect(c) wlan0连接设备
    nmcli d disconnect(c) wlan0断开设备
    • 其中 c 为 connection 的简写,d 为 device 的简写。