2. 系统配置

2.1. 系统更新

出于系统安全、稳定性的考虑,推荐用户安装完系统后,通过apt命令对系统进行更新。

/etc/apt/source.list文件中,保存了apt命令的软件源列表,在安装软件前,需要先通过apt命令更新package列表。

首先打开终端命令行,输入如下命令:

sudo apt update

其次,升级所有已安装的软件包到最新版本,命令如下:

sudo apt full-upgrade

注意,推荐使用full-upgrade而不是upgrade选项,这样当相关依赖发生变动时,也会同步更新依赖包。

当运行sudo apt full-upgrade命令时,系统会提示数据下载和磁盘占用大小,但是apt不会检查磁盘空间是否充足,建议用户通过df -h命令手动检查。此外,升级过程中下载的deb文件会保存在/var/cache/apt/archives目录中,用户可以通过sudo apt clean命令删除缓存文件以释放磁盘空间。

执行apt full-upgrade命令后,可能会重新安装驱动、内核文件和部分系统软件,建议用户手动重启一下设备使更新生效,命令如下:

sudo reboot

2.2. 网络配置

本章节主要介绍开发板有线、无线网络配置的修改方法。

2.2.1. 有线网络

开发板有线网络默认采用静态IP配置,初始IP地址为192.168.1.10。用户可通过如下方法实现静态、DHCP模式的切换。

修改静态IP配置
开发板静态网络配置保存在/etc/network/interfaces文件中,通过修改addressnetmaskgateway等字段,可完成对静态IP配置的修改,metric是网络优先级配置,设置为700是为了让有线网络的优先级更低,当有线和无线网络同时使能时优先会使用无线网络,例如:

sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1 
    metric 700

修改完成后,命令行输入sudo restart_network命令让配置生效。

修改DHCP配置
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

开发板的DHCP网络配置保存在/etc/network/interfaces文件,通过修改eth0相关配置,可完成对DHCP模式的修改,例如:

sudo vim /etc/network/interfaces
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
    metric 700

修改完成后,命令行输入sudo restart_network命令让配置生效。

修改MAC地址配置
如需修改开发板默认MAC地址,可通过在/etc/network/interfaces文件中增加pre-up配置信息,指定用户需要的MAC地址,例如:

sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1 
    pre-up ifconfig eth0 hw ether 00:11:22:9f:51:27

修改完成后,命令行输入sudo restart_network命令让配置生效。

2.2.2. 无线网络

开发板集成了2.4GHz无线WiFi模块,支持Soft AP和Station两种模式,默认运行在Station模式下。下面介绍两种模式的使用方法。

2.2.2.1. Station模式

Station模式下,开发板作为客户端,接入路由器无线热点进行联网。

  • 对于使用Ubuntu Desktop版本系统的用户,可点击桌面右上角Wi-Fi图标,选择对应热点并输入密码以完成网络配置,如下图:
    image-wifi-config

  • 对于使用Ubuntu Server版本系统的用户,可通过命令行完成无线网络配置,步骤如下:

    • 使用sudo nmcli device wifi rescan命令扫描热点。如返回如下信息,说明扫描过于频繁,需要稍后再试

    root@ubuntu:~# sudo nmcli device wifi rescan
    Error: Scanning not allowed immediately following previous scan.
    
    • 使用sudo nmcli device wifi list命令列出扫描到的热点

    • 使用 sudo wifi_connect "SSID" "PASSWD"命令连接热点,返回如下信息,说明网络连接成功

    root@ubuntu:~# sudo wifi_connect "WiFi-Test" "12345678" 
    Device 'wlan0' successfully activated with 'd7468833-4195-45aa-aa33-3d43da86e1a7'.
    
    • 如果连接热点后,返回如下信息,说明热点没有找到,可以执行sudo nmcli device wifi rescan命令重新扫描后再次连接

    root@ubuntu:~# sudo wifi_connect "WiFi-Test" "12345678" 
    Error: No network with SSID 'WiFi-Test' found.
    

2.2.2.2. Soft AP模式

开发板无线网络默认运行在Station模式下,如需使用Soft AP模式,请按照以下步骤进行配置。

  1. 安装hostapdisc-dhcp-server

    sudo apt update
    sudo apt install hostapd
    sudo apt install isc-dhcp-server
    
  2. 运行 sudo vim /etc/hostapd.conf命令来配置hostapd.conf,主要关注下面几个字段:

    interface=wlan0 #作为AP热点的网卡
    ssid=Sunrise #WiFi名字
    wpa=2 #0为WPA 2为WPA2 一般为2
    wpa_key_mgmt=WPA-PSK #加密算法 一般为WPA-PSK
    wpa_passphrase=12345678 #密码
    wpa_pairwise=CCMP #加密协议,一般为CCMP
    
    • 无密码的热点配置,请在hostapd.conf文件添加以下内容:

    interface=wlan0
    driver=nl80211
    ctrl_interface=/var/run/hostapd
    ssid=Sunrise
    channel=6
    ieee80211n=1
    hw_mode=g
    ignore_broadcast_ssid=0
    
    • 有密码的热点配置,请在hostapd.conf文件添加以下内容:

    interface=wlan0
    driver=nl80211
    ctrl_interface=/var/run/hostapd
    ssid=Sunrise
    channel=6
    ieee80211n=1
    hw_mode=g
    ignore_broadcast_ssid=0
    wpa=2
    wpa_key_mgmt=WPA-PSK
    rsn_pairwise=CCMP
    wpa_passphrase=12345678
    
  3. 配置isc-dhcp-server文件,步骤如下:

    • 执行 sudo vim /etc/default/isc-dhcp-server修改isc-dhcp-server文件,添加如下定义的网络接口:

    INTERFACESv4="wlan0"
    
    • 执行 sudo vim /etc/dhcp/dhcpd.conf修改dhcpd.conf文件, 取消以下字段的注释:

      authoritative;
    
    • 然后在 /etc/dhcp/dhcpd.conf文件末尾增加以下配置:

      subnet 10.5.5.0 netmask 255.255.255.0 { #网段和子网掩码
      range 10.5.5.100 10.5.5.254;#可获取的IP范围
      option subnet-mask 255.255.255.0; #子网掩码
      option routers 10.5.5.1;#默认网关
      option broadcast-address 10.5.5.31;#广播地址
      default-lease-time 600;#默认租约期限,单位秒
      max-lease-time 7200;#最长租约期限,单位秒
    }
    
  4. 停止 wpa_supplicant 服务,并重启 wlan0

    systemctl stop wpa_supplicant
    
    ip addr flush dev wlan0
    sleep 0.5
    ifconfig wlan0 down
    sleep 1
    ifconfig wlan0 up
    
  5. 按如下步骤启动 hostapd服务

    • 执行sudo hostapd -B /etc/hostapd.conf命令

     root@ubuntu:~# sudo hostapd -B /etc/hostapd.conf
    
     Configuration file: /etc/hostapd.conf
     Using interface wlan0 with hwaddr 08:e9:f6:af:18:26 and ssid "sunrise"
     wlan0: interface state UNINITIALIZED->ENABLED
     wlan0: AP-ENABLED
    
    • 通过ifconfig命令,配置无线接口wlan0的IP和网段,注意要跟第三步的配置保持一致

    sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0
    
    • 最后开启dhcp服务器,连上热点会从10.5.5.10010.5.5.255之间分配一个ip地址给客户端

    sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0
    sudo systemctl start isc-dhcp-server
    sudo systemctl enable isc-dhcp-server
    
  6. 连接开发板热点,例如 sunrise
    image-20220601203025803

  7. 如需切换回Station模式,可按如下方式进行:

    # 停止 hostapd
    killall5 -9 hostapd
    
    # 清除 wlan0 的地址
    ip addr flush dev wlan0
    sleep 0.5
    ifconfig wlan0 down
    sleep 1
    ifconfig wlan0 up
    
    # 重启 wpa_supplicant
    systemctl restart wpa_supplicant
    
    # 连接热点,,具体操作可以查看上一章节 “无线网络”
    wifi_connect "WiFi-Test" "12345678"
    

2.2.3. DNS服务

DNS(Domain Name Server)是进行域名(domain name)和与之相对应的IP地址转换的服务器。

开发板DNS配置通过/etc/systemd/resolved.conf文件管理,用户可通过修改该文件完成DNS相关配置,步骤如下:

  1. 修改resolved.conf文件,添加DNS服务器地址,例如:

    DNS=8.8.8.8 114.114.114.114
    
  2. 通过如下命令,使能DNS配置:

    sudo systemctl restart systemd-resolved
    sudo systemctl enable systemd-resolved
    sudo mv /etc/resolv.conf  /etc/resolv.conf.bak
    sudo ln -s /run/systemd/resolve/resolv.conf /etc/
    

2.3. CPU调频策略

开发板采用CPU Freq驱动对CPU工作状态进行管理,默认模式为ondemand模式,此时CPU工作频率会根据负载进行动态调节,以节省功耗。用户可修改到performance模式,使CPU始终运行在最高频率下,命令如下:

sudo bash -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor'

开发板在系统中提供了超频功能,可将CPU最高频率从1.2GHz提升到1.5GHz,配置命令如下:

sudo bash -c 'echo 1 > /sys/devices/system/cpu/cpufreq/boost'

使用以上命令配置的 CPU 频率仅在当前运行中生效,如果设备重启则恢复默认配置。

注意 CPU超频会增加芯片的功耗和发热,如出现稳定性问题,可通过如下命令关闭超频功能:

sudo bash -c 'echo 0 > /sys/devices/system/cpu/cpufreq/boost'

如需查看芯片工作频率、温度等状态,可通过sudo hrut_somstatus命令查询:
image-20220714113732289

2.4. 自启动配置

Ubuntu系统添加自启动程序的方式有多种方法,本章节提供两种方法作为参考。

2.4.1. 设置自启动Service

  1. 创建启动脚本

    使用任何文本编辑器,在/etc/init.d目录下创建一个新的启动脚本,假设命名为your_script_name,以下是示例脚本的参考内容:

    #!/bin/bash
    
    ### BEGIN INIT INFO
    # Provides:          your_service_name
    # Required-Start:    $all
    # Required-Stop:     
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start your_service_name at boot time
    # Description:       Enable service provided by your_service_name
    ### END INIT INFO
    
    /path/to/your/program &
    
    exit 0
    
  2. 设置启动脚本具有可执行权限

    sudo chmod +x /etc/init.d/your_script_name
    
  3. 使用update-rc.d命令将脚本添加到系统的启动项中

    sudo update-rc.d your_script_name defaults
    
  4. 使用systemctl命令启用自启动

    sudo systemctl enable your_script_name
    
  5. 重启开发板验证自启动服务程序是否运行正常

    root@ubuntu:~# systemctl status your_script_name.service 
    ● your_script_name.service - LSB: Start your_service_name at boot time
        Loaded: loaded (/etc/init.d/your_script_name; generated)
        Active: active (exited) since Wed 2023-04-19 15:01:12 CST; 57s ago
        Docs: man:systemd-sysv-generator(8)
        Process: 2768 ExecStart=/etc/init.d/your_script_name start (code=exited, status=0/SUCCESS)
    

2.4.2. 添加到rc.local服务

rc.local是一个系统服务,用于在系统启动时自动执行一些脚本或命令。这个服务在系统启动时会被自动调用,并在系统启动完成后执行一些用户指定的脚本或命令,以便在系统启动时进行自定义配置或操作。

在早期的Linux发行版中,rc.local是系统启动过程中默认运行的最后一个服务。随着systemd的普及,rc.local被视为遗留的系统服务。

通过在sudo vim /etc/rc.local文件末尾添加启动命令的方式实现,例如:

#!/bin/bash -e
#
# rc.local
#re
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Insert what you need

exit 0