通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)

embedded/2025/1/23 19:18:28/

0 硬件平台

正点原子stm32MP135开发板

stm32MP135_4">1 通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)

在产品正式发布前,为了调试方便,我们可以使用以太网加载linux内核、设备树、根文件系统以加快调试速度。本文以stm32MP135为例,介绍uboot环境变量的设置方法。

1.1 通过tftp加载linux内核、设备树

(1)将linux内核镜像、设备树文件放在tftp指定的文件夹内,将根文件系统放到nfs指定的文件夹内
在这里插入图片描述
在这里插入图片描述
注意:请先配置tftp服务器、nfs网络文件系统。

(2)配置uboot环境变量,通过tftp加载linux内核镜像、设备树文件
命令如下:

setenv bootcmd 'tftp c2000000 uImage;tftp c4000000 stm32mp135d-atk.dtb;bootm c2000000 - c4000000'  
saveenv 

功能:
(2.1)将uImage(linux内核镜像)加载到0xc2000000(属于DDR)位置
(2.2)将stm32mp135d-atk.dtb(设备树)加载到0xc4000000(属于DDR)位置
(2.3)使用bootm命令参数1指定linux内核镜像地址为0xc2000000、参数2为‘-’表示不需要指定initrd、参数3指定设备树地址为0xc4000000
配置过程相关截图如下:
在这里插入图片描述
(3)配置uboot环境变量,通过nfs使用根文件系统

setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.101.14:/home/kevin/linux/nfs/rootfs,proto=tcp rw ip=192.168.101.117:192.168.101.14:192.168.101.1:255.255.255.0::eth0:off'
saveenv

bootargs命令的参数定义如下:
在这里插入图片描述
配置过程相关截图如下:
在这里插入图片描述
重启开发板,至此就可以通过以太网启动linux了。
注意:
进入linux后出现以下提示,说明我们给根文件系统的权限不够。
在这里插入图片描述
直接使用以下命令将rootfs文件夹及其包含的所有文件权限设置为777:

chmod 777 /home/kevin/linux/nfs/rootfs
chmod -R 777 /home/kevin/linux/nfs/rootfs

这样便可以正常使用了,以下是加载过程:
在这里插入图片描述


http://www.ppmy.cn/embedded/156380.html

相关文章

论文笔记-NeruIPS2024-LLM-ESR

论文笔记-NeruIPS2024-LLM-ESR: Large Language Models Enhancement for Long-tailed Sequential Recommendation LLM-ESR:用于长尾序列推荐的大模型增强摘要1.引言2.问题定义3.LLM-ESR3.1概述3.2双视图建模3.2.1语义视图建模3.2.2协同视图建模3.2.3两级融合 3.3检索…

centos下设置服务器开机自启动 redis

在客户服务器中,服务器重启,发现 Redis 没有重启, 可以按照类似的步骤来创建自启动脚本,并将它添加到定时任务中。 解决办法: 1. 创建自启动脚本 进入服务器并创建脚本文件,例如 /usr/local/bin/redis_…

类和对象——类的对象占用内存的大小计算

类的对象大小的计算 类的对象大小的计算1 案例分析2 如何计算类对象的大小案例分析中的猜测结构体内存对齐规则 类的对象大小的计算 1 案例分析 #include<iostream>class Date { public:void Init(int year, int mouth, int day) {year year;_mouth mouth;day_ day;…

HTML知识点复习

1.src 和 href 的区别 src&#xff1a;表示对资源的引用&#xff0c; src指向的内容会嵌入到其标签里。 当浏览器解析到该元素时候&#xff0c;会暂停其他资源的下载和处理&#xff0c; 直到将该资源加载、编译、执行完毕&#xff0c;所以js脚本一般会放在页面底部 href&…

MyBatis Plus 中常用的 Service 功能

save()&#xff1a;插入单条数据 service.save(entity);removeById()&#xff1a;根据 ID 删除数据。 service.removeById(id);updateById()&#xff1a;根据 ID 更新单条数据。 service.updateById(entity);getById()&#xff1a;根据 ID 查询单条数据。 service.getById(…

模拟算法习题篇

在算法中&#xff0c;模拟是一种通过计算机程序来模拟现实世界中的过程或系统行为的方法。它的核心思想是根据题目给定的规则和逻辑&#xff0c;按照步骤细致地重现事件的发展流程&#xff0c;从而获得最终结果。 解题时如何使用模拟算法&#xff1a; 理解题目规则&#xff1a;…

HTML新春烟花

系列文章 序号目录1HTML满屏跳动的爱心&#xff08;可写字&#xff09;2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心&#xff08;简易版&#xff09;7HTML粒子爱心8HTML蓝色动态爱心9HTML跳动的爱心&#xff08;双心版&#xff09;1…

基于springboot+vue的高校社团管理系统的设计与实现

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…