openEuler Embedded网络配置

本文档介绍如何在openEuler Embedded系统中配置网络, 以树莓派4B配置为例.

环境/工具准备

设备:建议树莓派4B的出厂配置,包括树莓派4B基础套件和SD卡

编译openEuler Embedded版本的树莓派镜像, 并烧录进SD卡中, 参考 关键特性/树莓派4B支持/树莓派镜像构建指导

有线网络配置

  • 动态获取IP地址

    通过网线连接树莓派和路由器, 并启动树莓派, 此时树莓派会自动启动dhclient服务来获取IP

    因为在/etc/network/interfaces 文件中, 有线网卡默认的配置是通过DHCP自动获取, 即:

    # Wired or wireless interfaces
    auto eth0             # 系统启动后默认开启eth0网卡
    iface eth0 inet dhcp  # eth0 网卡使用DHCP来获取IP地址
    iface eth1 inet dhcp
    
  • 配置静态IP地址

    网线另一端设备未提供DHCP服务时, 此时需要在两端设备上同时配置静态IP才能正常通信

    临时配置:

    在两端同时配置IP地址, 确保在同一子网中即可通信

    ifconfig <有线网卡名称> 192.168.10.x
    

    永久配置:

    修改/etc/network/interfaces 文件中, 对应有线网卡的配置, 以eth0为例

    # 将iface eth0 inet dhcp这行改为如下形式:
    iface eth0 inet static        # eth0 网卡使用静态IP地址
        address 192.168.10.x      # IP地址
        netmask 255.255.255.0
        network 192.168.10.0
        gateway 192.168.10.1
    

    修改成功后, 需要重启networking service更新配置文件

    service networking restart
    

    更新配置文件后如果有线网卡没有自动启用的话, 可以手动使用命令up/down

    ifdown eth0
    ifup eth0
    

    最后可以通过ifconfig查看对应网卡的IP地址

    root@raspberrypi4-64:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.10.x  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:277 errors:0 dropped:0 overruns:0 frame:0
          TX packets:157 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30734 (30.0 KiB)  TX bytes:23751 (23.1 KiB)
    
    lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)
    

Wi-Fi网络配置

当前树莓派Wi-Fi网络配置包括三部分: 1.使能无线驱动 2.增加Wi-Fi配置 3.启用Wi-Fi网卡

  • 使能无线驱动

    修改/etc/network/interfaces文件中无线网卡wlan0的配置

    iface wlan0 inet dhcp
           wireless_mode managed
           wireless_essid any
           wpa-driver wext
           wpa-conf /etc/wpa_supplicant.conf
    # 当前树莓派所使用的无线网卡驱动是 nl80211系列
    # 因此将wpa-driver wext 改为 wpa-driver nl80211
    # 才能正确启动wpa_supplicant
    iface wlan0 inet dhcp
           wireless_mode managed
           wireless_essid any
           wpa-driver nl80211
           wpa-conf /etc/wpa_supplicant.conf
    

    修改完成后重启networking service使配置生效

  • 增加Wi-Fi配置

    通过wpa_supplicant配置文件增加Wi-Fi网络

    Note

    wpa_supplicant 是一款开源用户态软件, 其主要功能是提供用户和Wi-Fi驱动之间沟通的桥梁, 以及对Wi-Fi协议和加密认证. 是目前使用范围较广的Wi-Fi配置工具, 也还有其他配置工具wireless-tools, 当前openEuler Embedded仅引入wpa_supplicant工具.

    修改wpa_supplicant启动时所指定的配置文件/etc/wpa_supplicant.conf, 增加如下network字段的配置, 最简单的network配置可以只需要ssid和psk字段即可. 其他高级选项和字段可以参考: wpa_supplicant官网文档

    network={
       # ssid Wi-Fi网络名称
       ssid="home"
       # psk Wi-Fi网络密码
       psk="very secret passphrase"
       # 可选, 隐藏的网络必须指定为1
       scan_ssid=1
       # 加密类型协议, 可选, 无此字段时会默认包含 WPA-PSK WPA-EAP
       key_mgmt=WPA-PSK
    }
    

    如果担心配置文件中明文密码泄漏, 可以使用wpa_passphrase工具加密后再写入配置文件即可, 其用法为: wpa_passphrase <ssid> <psk>

    wpa_passphrase test 12345678
    # 工具会输出如下形式, 将加密后的psk复制到配置文件中, 删除明文即可
    network={
       ssid="test"
       #psk="12345678"
       psk=fe727aa8b64ac9b3f54c72432da14faed933ea511ecab15bbc6c52e7522f709a
    }
    
  • 启用Wi-Fi网卡

    使用ifup启动Wi-Fi连接并自动获取IP地址

    root@raspberrypi4-64:~# ifup wlan0
    Successfully initialized wpa_supplicant
    

    使用ifconfig命令查看wlan0网卡, 已经具有IP地址, 并可以正常通信

    root@raspberrypi4-64:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
            inet addr:192.168.10.x  Bcast:0.0.0.0  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:565 errors:0 dropped:0 overruns:0 frame:0
            TX packets:425 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:73072 (71.3 KiB)  TX bytes:51915 (50.6 KiB)
    
    lo        Link encap:Local Loopback
            inet addr:127.0.0.1  Mask:255.0.0.0
            UP LOOPBACK RUNNING  MTU:65536  Metric:1
            RX packets:2 errors:0 dropped:0 overruns:0 frame:0
            TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)
    
    wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
            inet addr:192.168.43.x  Bcast:192.168.43.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:2 errors:0 dropped:0 overruns:0 frame:0
            TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:365 (365.0 B)  TX bytes:432 (432.0 B)
    

    Attention

    当修改/etc/wpa_supplicant.conf配置文件后, 例如新增Wi-Fi网络配置或修改Wi-Fi网络配置, 需要使用ifdown wlan0来关闭网卡, ifup wlan0开启网卡使wpa_supplicant配置重新加载生效