====从网络启动系统==== 本章介绍如何通过 TFTP 和 NFS 将系统映像传输到目标,并挂载 NFS 根文件系统。 一、在开发机上安装配置TFTP和NFS相关软件 1、安装TFTP服务器 以Ubuntu 22.04为例 sudo apt install tftpd-hpa sudo mkdir /tftpboot sudo chmod 1777 /tftpboot 2、配置tftp服务器 nano /etc/default/tftpd-hpa 改为: TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure" 重启sudo service tftpd-hpa restart 3、安装nfs sudo apt install nfs-kernel-server sudo mkdir -p /exports/nfsroot-ccmp25_dvk 然后在/etc/exports中修改: sudo nano /etc/exports /exports/nfsroot-ccmp25_dvk *(rw,no_root_squash,async,no_subtree_check) 重启:sudo service nfs-kernel-server restart 二、在开发机上准备好固件环境 1. 准备设备镜像构件 * 内核文件:Image.gz * 设备树:ccmp25-dvk.dtb * 适用于您的硬件的设备树overlay文件:如ccmp25_wifi.dtbo等 * 压缩的根文件系统:.tar.xz 2. 解压根文件系统到NFS的目录 sudo tar xvfp image.tar.xz -C /exports/nfsroot-ccmp25_dvk 3. 将内核*.bin 文件复制到TFTP目录 sudo cp .bin /tftpboot 4. 将设备树 *.dtb 文件复制到TFTP目录 sudo cp .dtb /tftpboot 5. (可选)将设备树overlay *.dtbo 文件复制到TFTP目录 sudo cp .dtbo /tftpboot 二、配置设备的网络设置 1、获取目标的动态 IP或者设置静态 IP: setenv autoload no dhcp 或直接静态 setenv ipaddr 192.168.3.222 2. 配置安装了 TFTP 和 NFS 服务器的开发工作站的 IP setenv serverip 192.168.3.1 三、从TFTP+NFS 网络引导 1. 设置包含 rootfs 的目录以挂载 setenv rootpath /exports/nfsroot-ccmp25_dvk 2. 指定设备树 (*.dtb) 文件名 setenv fdt_file .dtb 3. (可选)使用逗号分隔的列表指定要应用的设备树叠加 (*.dtbo) 文件 setenv overlays .dtbo,.dtbo 4. 建立内核文件 (*.bin) 名称。 setenv imagegz .bin 5. 保存 saveenv 6. 从 TFTP 引导。 dboot linux tftp 现在,目标从 TFTP 服务器加载内核和设备树,并从 NFS 服务器加载根文件系统。 四、完全从 NFS 引导 为避免将 TFTP 用于内核和设备树文件并从 NFS 引导所有内容,请将内核 *.bin 和设备树 *.dtb 文件复制到开发工作站的 NFS 导出目录(而不是 TFTP 目录)。 dboot linux nfs