打印
[STM32MP1]

使用 TFTP 和 NFS 进行远程启动

[复制链接]
257|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
烟雨蒙蒙520|  楼主 | 2024-9-30 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在嵌入式系统开发中,远程启动是一种常见的方式,特别是在开发和测试阶段。以下是如何在 STM32MP1 上配置 TFTP 和 NFS 进行远程启动的步骤。

TFTP 服务器设置
安装 TFTP 服务器:

在您的 Linux 主机上安装 TFTP 服务器:
bash
复制代码
sudo apt-get install tftpd-hpa
配置 TFTP 服务器:

编辑 /etc/default/tftpd-hpa 文件:
plaintext
复制代码
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
创建 TFTP 目录并将生成的镜像文件放入:
bash
复制代码
sudo mkdir -p /var/lib/tftpboot
sudo cp ~/yocto-stm32mp/tmp/deploy/images/stm32mp1/core-image-minimal-stm32mp1.ext4 /var/lib/tftpboot
重启 TFTP 服务:

bash
复制代码
sudo service tftpd-hpa restart

使用特权

评论回复
沙发
烟雨蒙蒙520|  楼主 | 2024-9-30 21:17 | 只看该作者
NFS 服务器设置
安装 NFS 服务器:

在主机上安装 NFS 服务器:
bash
复制代码
sudo apt-get install nfs-kernel-server
配置 NFS 导出目录:

创建一个 NFS 导出目录并将根文件系统挂载:
bash
复制代码
sudo mkdir -p /srv/nfs/rootfs
sudo mount -o loop ~/yocto-stm32mp/tmp/deploy/images/stm32mp1/core-image-minimal-stm32mp1.ext4 /srv/nfs/rootfs
编辑 NFS 导出文件:

编辑 /etc/exports 文件,添加导出目录:
plaintext
复制代码
/srv/nfs/rootfs *(rw,sync,no_subtree_check)
启动 NFS 服务:

bash
复制代码
sudo exportfs -a
sudo service nfs-kernel-server restart

使用特权

评论回复
板凳
烟雨蒙蒙520|  楼主 | 2024-9-30 21:17 | 只看该作者
STM32MP1 配置远程启动
设置 Bootargs:

在 STM32MP1 的 U-Boot 中设置 Bootargs,以指向 TFTP 和 NFS:
bash
setenv serverip <TFTP_SERVER_IP>
setenv ipaddr <STM32MP1_IP>
setenv bootargs "console=ttySTM0,115200 root=/dev/nfs nfsroot=<NFS_SERVER_IP>:/srv/nfs/rootfs,rw ip=dhcp"

从 TFTP 启动:

下载内核和设备树文件:
bash
复制代码
tftp ${loadaddr} <KERNEL_IMAGE>
tftp ${fdtaddr} <DEVICE_TREE>
启动系统:

启动内核:
bash
复制代码
bootm ${loadaddr} - ${fdtaddr}

使用特权

评论回复
地板
烟雨蒙蒙520|  楼主 | 2024-9-30 21:17 | 只看该作者
总结
通过 Yocto 项目,您可以为 STM32MP1 开发板构建定制的 Linux 镜像,并使用 TFTP 和 NFS 进行远程启动,这对于开发和测试非常有用。掌握这些步骤能够帮助您快速构建和部署嵌入式系统,满足特定的应用需求。

使用特权

评论回复
5
泡椒风爪| | 2024-10-2 20:29 | 只看该作者
特别是在开发和测试阶段

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

630

帖子

0

粉丝