Linux第61步_“buildroot”构建根文件系统第3步_烧写根文件系统到EMMC中_并完善开发板配置

烧录到EMMC测试,还需进一步测试和配置。

1、删除rootfs”目录下的“rootfs.tar压缩包

打开第1个终端

输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd nfs/回车”,切换到“nfs”目录

输入“ls回车”,列出“nfs”目录下的文件和文件夹

输入“cd rootfs/回车”,切换到“rootfs”目录

输入“ls回车”,列出“rootfs”目录下的文件和文件夹

输入“rm rootfs.tar/回车”,删除rootfs.tar压缩包

输入“ls回车”,列出“rootfs”目录下的文件和文件夹

输入“cd ../回车”,返回到“nfs”目录

输入“ls回车”,列出“nfs”目录下的文件和文件夹

2、将“rootfs.ext4”挂载在“/mnt/rootfs/”目录下

打开第2个终端

输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd rootfs/回车”,切换到“rootfs”目录

输入“ls回车”,列出“rootfs”目录下的文件和文件夹

输入“mv rootfs.ext4 rootfs-busybox.ext4回车,将busybox生成的“rootfs.ext4”根文件系统重命名为“rootfs-busybox.ext4”。

输入“ls回车”,列出“rootfs”目录下的文件和文件夹

输入“dd if=/dev/zero of=rootfs.ext4 bs=1M count=1024回车”,分配1G空间给“rootfs.ext4”

输入“mkfs.ext4 -L rootfs rootfs.ext4回车”,将“rootfs.ext4”格式化

输入“ls -l回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹

输入“sudo mount rootfs.ext4 /mnt/rootfs/回车”,将“rootfs.ext4”挂载在“/mnt/rootfs/”目录下

3、拷贝系统文件至“/mnt/rootfs/

回到第1个终端

输入“cd rootfs/回车”,切换到“rootfs”目录

输入“ls回车”,列出“rootfs”目录下的文件和文件夹

输入“sudo cp * /mnt/rootfs/ -drf 回车”,执行拷贝

输入密码“123456回车

5、查看挂载文件和和文件夹

输入“ls /mnt/rootfs/ -f回车”,查看“/mnt/rootfs/”目录下的文件和文件夹

输入“ls /mnt/rootfs/ -l回车

6、卸载磁盘

输入“cd /home/zgq/linux/rootfs/

输入“ls回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹

输入“sudo umount /mnt/rootfs/回车”卸载掉“rootfs”

输入“ls -l回车”,查看“/home/zgq/linux/rootfs/”目录下的文件和文件夹

至此,我们生成新的“rootfs.ext4”,这个文件可以烧录到EMMC中。

7、使用“FileZilla”将“rootfs.ext4”下载到“windows”中。

8、烧录

1)、关闭虚拟机,防止开发板连接到虚拟机

2)、将开发板上拨码开关拨到“000”位置

3)、将USB导线连接电脑的USB3.0接口,另外一端连接开发板的USB OTG接口;

4)、将USB导线连接电脑的USB3.0接口,另外一端连接到开发板的USB TTL接口;

5)、双击“STM32CubeProgrammer”图标

6)、选择上图中的USB,然后点击“Connect”

7)、点击“刷新”,直到出现USB1,表示连接成功。

8)、点击“Open file”,找到

C:\Program Files\STMicroelectronics\images\my-tfa”目录下“tf-a.tsv”打开。

9)、点击“Browse”,打开

“C:\Program Files\STMicroelectronics\images\my-tfa”目录。

10)、点击“选择文件夹”

11)、点击“Download”

12)、点击“确定”

13)、将拨码开关设置为“010”

14)、按下开发板的“复位按钮”,重新启动开发板。

9、从EMMC启动测试

1)、在串口查看EMMC是否烧录了“uImage”和“stm32mp157d-atk.dtb”

输入“ext4ls mmc 1:2回车”查看EMMC分区2“内核镜像”有哪些文件和目录

发现“uImage”和“stm32mp157d-atk.dtb”

输入“ext4ls mmc 1:3回车”查看EMMC分区3“根文件系统”有哪些文件和目录

2)、设置“bootcmd和bootargs”这两个环境变量,从EMMC启动linux系统

输入setenv bootcmd 'ext4load mmc 1:2 c2000000 uImage;ext4load mmc 1:2 c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000'

输入setenv bootargs 'console=ttySTM0,115200 root=/dev/mmcblk1p3 rootwait rw'

输入saveenv,保存“bootcmd和bootargs”的值

输入boot,启动 Linux 系统

4)、查看运行结果:

输入“ifconfig -a”

输入“ifconfig eth0 up”

输入“ifconfig”

输入“udhcpc”,自动申请IP地址

输入“ifconfig”

至此,系统移植全部学习完了。

10、设置“bootcmd和bootargs”这两个环境变量,从网络启动linux系统

输入setenv bootcmd 'tftp c2000000 uImage;tftp c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000',设置从网络启动linux系统

输入“setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.2.180:/home/zgq/linux/nfs/rootfs,proto=tcp rw ip=192.168.2.178:192.168.2.180:192.168.2.1:255.255.255.0::eth0:off'

回车

输入: saveenv,保存bootcmd的值

输入: boot,启动 Linux 系统

至此根文件系统学习完了,后面要学习linux驱动开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xtu oj 1150 n!进制 2.0

题目描述 n!进制是指每i位的权值是(i1)!,每一位的系数为0~i1。 比如n!进制的21 2*2! 1*1! 5。给你一个10进制数,求其n!进制的值。 输入 每行一个10进制的整数n,0≤n≤3,628,799。 输出 每行输出一个样例的结果。 样例输入 0 1 10 100 3628799样…

Linux目录操作类命令 less | grep | ln | chattr | 清除日志内容

less 用来浏览超过一页的文件 用 / 可用来查找关键字 q键退出 cat -n 3.txt | less行号显示grep 文本处理工具,以行为单位找关键字 ls -l /boot | grep ^l grep 关键字 文件名 grep runlevel /etc/inittab 参数 -i忽略大小写 -n显示行号 -v排除关键字&#xff0…

数据结构与算法java—算法时间复杂度计算

课程安排 一、数据结构与算法的重要性 数据结构:数据与数据间的关系 1.1、数据结构的研究内容 数据结构:研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科。 非数值计算问题中的数学模型不是数学方程,而是诸如…

线程安全性的原理分析学习

初步认识Volatile 一段代码引发的思考 下面这段代码,演示了一个使用volatile以及没使用volatile这个关键字,对于变量更新的影响 package com.sp.demo;/*** author : lssffy* Description :* date : 2024/2/16 18:42*/ public class VolatileDemo {publi…

类和结构体的区别

类(class)和结构体(struct)是面向对象编程(Object-Oriented Programming,OOP)中常见的两种数据类型,它们在不同的编程语言中有一些共同之处,但也存在一些区别。以下是它们…

MongoDB聚合运算符:$anyElementTrue

$anyElementTrue运算符用来对数组元素进行逻辑判断&#xff0c;如果数组的任何一个元素为true则返回true&#xff0c;否则返回false。空数组返回false。 语法 { $anyElementTrue: [ <expression> ] }<expresssion>必须是能够被解析为数组的表达式。 使用 对于内…

5G——小区搜索流程

小区搜索流程 小区搜索目标&#xff1a;读取到SIB1. 小区搜索流程概述&#xff1a;SIB1在PDSCH信道承载&#xff0c;承载SIB1的信道在哪个位置由PDCCH告诉&#xff0c;而PDCCH的基本信息由MIB告诉&#xff0c;MIB信息由广播信道PBCH广播出去&#xff0c;物理信道解调需要解调…

【机构vip教程】Charles(1):Charles的介绍及安装

Charles Charles 是在 Mac &#xff08;Charles是跨平台的 &#xff09;下常用的网络封包截取工具&#xff0c;在做移动开发、测试时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。Charles是一个HTTP代理服务器,HTTP监视器,反转代…

算法学习系列(三十五):贪心(杂)

目录 引言一、合并果子&#xff08;Huffman树&#xff09;二、排队打水&#xff08;排序不等式&#xff09;三、货仓选址&#xff08;绝对值不等式&#xff09;四、耍杂技的牛&#xff08;推公式&#xff09; 引言 上一篇文章也说过了这个贪心问题没有一个规范的套路和模板&am…

【Spring底层原理高级进阶】轻松掌握 Spring MVC 的拦截器机制:深入理解 HandlerInterceptor 接口和其实现类的用法

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…

【STM32】重定向printf函数

【STM32】重定向printf函数 重定义fputc到串口 /******************************************************************************************/ /* 加入以下代码, 支持printf函数, 而不需要选择use MicroLIB */#if 1 #include <stdio.h> #if (__ARMCC_VERSION > 6…

OpenAI 发布文生视频大模型 Sora,AI 视频要变天了,视频创作重新洗牌!AGI 还远吗?

一、一觉醒来&#xff0c;AI 视频已变天 早上一觉醒来&#xff0c;群里和朋友圈又被刷屏了。 今年开年 AI 界最大的震撼事件&#xff1a;OpenAI 发布了他们的文生视频大模型 Sora。 OpenAI 文生视频大模型 Sora 的横空出世&#xff0c;预示着 AI 视频要变天了&#xff0c;视…

【机构vip教程】Selenium(2):selenium IDE工具

Selenium IDE工具&#xff1a; 该工具是一个用于构建脚本的初级工具&#xff0c;其实是FireFox的一个插件&#xff0c;拥有一个易于使用的界面。它拥有记录功能&#xff0c;能够记录用户执行的操作&#xff0c;并可以导出为可重复使用的脚本。如果没有编程经验&#xff0c;也可…

C++ 中的 typedef 和 using

语法&#xff1a; typedef 的语法相对固定&#xff0c;而 using 在C11之后提供了更灵活的方式&#xff0c;可以定义模板别名等。模板别名&#xff1a; 在C11之后&#xff0c;using 可以用来定义模板别名&#xff0c;而 typedef 则无法做到这一点。作用域&#xff1a; 在命名空间…

MySQL持久化不为人知的一面⭐️卡顿现象的根源与对策

MySQL持久化不为人知的一面⭐️卡顿现象的根源与对策 2024新年新气象&#xff0c;小菜同学又踏上了求职之路&#xff0c;但求职路艰辛&#xff0c;新年第一次面试又被面试官给问住了 面试官&#xff1a;你有没有遇到过因为持久化&#xff0c;把线程的查询、修改请求卡住的情况…

环中最长子串/字符成环找偶数O

文章目录 题目描述输入描述输出描述示例1说明&#xff1a; 示例2说明&#xff1a; 说明&#xff1a;代码注意&#xff1a;printf中的%c 、%s 题目描述 给你一个字符串 s&#xff0c;字符串s首尾相连成一个环形 &#xff0c;请你在环中找出 ‘o’ 字符出现了偶数次最长子字符串…

Rust CallBack的几种写法

模拟常用的几种函数调用CallBack的写法。测试调用都放在函数t6_call_back_task中。我正在学习Rust&#xff0c;有不对或者欠缺的地方&#xff0c;欢迎交流指正 type Callback std::sync::Arc<dyn Fn() Send Sync>; type CallbackReturnVal std::sync::Arc<dyn Fn…

第1章 计算机系统概述(2)

1.4操作系统结构 随着操作系统功能的不断增多和代码规模的不断变大,合理的操作系统结构,对于降低操作系统复杂度,提升操作系统安全与可靠性来说变得尤为重要。 分层法: 优点: 1.便于系统调试和验证,简化系统的设计和实现 2.易于扩充和维护 缺点: 1.合理定义各层较难(依赖关系比…

python语言常见面试题:什么是Python中的生成器(Generators)?它们与迭代器有什么不同?

在Python中&#xff0c;生成器和迭代器都是用于处理可迭代对象&#xff08;iterable&#xff09;的重要工具&#xff0c;它们允许我们按需生成或访问元素&#xff0c;而不是一次性加载整个数据结构到内存中。这在处理大量数据时特别有用&#xff0c;因为它可以节省内存并提高性…

2024.2.18

使用fgets统计给定文件的行数 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) {FILE *fpNULL;if((fpfopen("./test.txt","w"))NULL){perror("open err");return -1;}fputc(h,fp);fputc(\n,fp);fput…