开发板与虚拟机组网、

局面:开发板、PC(Ubuntu系统)、网线直连PC:设置Ubuntu系统:1.设置桥接模式,桥接到PC的有线网卡上;2.手动配置IP V4的地址信息,注意和开发板保持在同一网段即可;设置开发板:1.开发板以eMMc方式启动,其间有提前固化的uboot;2.通过串口工具配置开发板的IP V4的地址信息,注意保持网段一致;测试:通过开发板或者Ubuntu测试是否可以PING通对端。

uboot源码makefile分析、

//方式一
》首先在README确定格式为make  <board name>_defconfig》 执行make  fsmp1a_defconfig, 出现以下错误信息: Can't find default configuration "arch/../configs/fsmp1a_defconfig"!make[1]: *** [scripts/kconfig/Makefile:110: fsmp1a_defconfig] Error 1make: *** [Makefile:564: fsmp1a_defconfig] Error 2根据错误信息分析可知,在arch/../configs/目录下,没有找到fsmp1a_defconfig配置文件。》 在arch/../configs/目录下,查看配置文件,分析哪个配置文件时stm32mp1的配置文件使用linux@ubuntu:configs$ ls   stm32mp*_defconfig 命令查看配置文件,得到以下两个配置文件,stm32mp15_basic_defconfig       -----> 非安全模式下的默认配置文件stm32mp15_trusted_defconfig     -----> 安全模式下的默认配置文件》最终确定了板子的名字为stm32mp15_basic或者stm32mp15_trusted/ /方式二
》因为uboot源码使用makefile进行管理编译,所以在makefile文件中可以找到make <board_name>_defconfig对应的目标信息:1>在uboot源码顶层目录下,打开Makefile文件,搜索:config564 %config: scripts_basic outputmakefile FORCE565     $(Q)$(MAKE) $(build)=scripts/kconfig $@2>在uboot源码顶层目录下,打开Makefile文件,搜索:config,使用echo将变量信息进行打印564 %config: scripts_basic outputmakefile FORCE565     @echo $(Q)566     @echo $(MAKE)567     @echo $(build)568     @echo $@                                                                                                 569     $(Q)$(MAKE) $(build)=scripts/kconfig $@3>在uboot源码顶层目录下执行: make fsmp1a_defconfig,会出现如下打印信息@make-f ./scripts/Makefile.build objfsmp1a_defconfig4>总结:通过以上命令打印可知$(Q)取消回显,所以将$(Q)去掉,在次执行 make fsmp1a_defconfig,查看打印信息make -f ./scripts/Makefile.build obj=scripts/kconfig fsmp1a_defconfig = make obj=scripts/kconfig fsmp1a_defconfig》通过方法2分析可知,到指定scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig1>在scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig109 %_defconfig: $(obj)/conf110     $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)  2>在scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig,使用echo命令,对变量信息进行打印109 %_defconfig: $(obj)/conf110     @echo $(Q)111     @echo $(silent)112     @echo $(SRCARCH)113     @echo $@114     @echo $(Kconfig)115    $(Q)  $< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)  3>在uboot源码顶层目录下执行: make fsmp1a_defconfig,会出现如下打印信息@..fsmp1a_defconfigKconfig4>总结:通过以上命令打印可知$(Q)取消回显,所以将$(Q)去掉,在次执行 make fsmp1a_defconfig,查看打印信息scripts/kconfig/conf  --defconfig=arch/../configs/fsmp1a_defconfig Kconfig
》总结:make <board_name>_defconfig执行过程scripts/kconfig/conf:通过file命令进行查看,可知是一个elf可执行文件--defconfig=arch/../configs/fsmp1a_defconfig:板子目标文件Kconfig:uboot源码目录下配置文件通过以上分析可知:conf是一个可执行文件,--defconfig=arch/../configs/fsmp1a_defconfig和Kconfig作为参数传递给conf

uboot安全启动与非安全启动方式、

安全版本的FSBL为TF-A。非安全版本的FSBL为uboot

uboot源码配置与编译流程、

1.进入uboot源码顶层目录下
2.配置交叉编译工具链,打开uboot源码顶层目录下Makefile文件,搜索:CROSS_COMPILE将以下内容更改为:262 ifeq ($(HOSTARCH),$(ARCH))263 CROSS_COMPILE ?=      更改为:262 ifeq (arm,arm)263 CROSS_COMPILE ?=arm-linux-gnueabihf-
3. 在uboot源码顶层目录下配置支持fsmp1a开发板,非安全版本默认配置文件make stm32mp15_basic_defconfig成功现象:## configuration written to .config#
4.在uboot源码顶层目录下执行基于图形化界面配置信息make menuconfig
5.设备树相关文件dts--------->设备树源文件(相当于C语言中.c文件)dtsi--------->设备树头文件(相当于C语言中.h文件)DTC--------->设备树编译工具(相当于C语言中gcc编译器) dtb--------->生成设备树可执行文件格式:/{{节点相关信息;            };};
6.在uboot源码顶层目录下,进入arch/arm/dts目录下,查看DK1公板相关设备树内容1>进入arch/arm/dts目录下,通过命令查看:ls stm32*stm32mp157a-dk1.dtsstm32mp157a-dk1-u-boot.dtsistm32mp15xx-dkx.dtsi2>进入arch/arm/dts目录下,将DK1公板设备树内容复制一份为FSMP1A平台相关内容cp stm32mp157a-dk1.dts stm32mp157a-fsmp1a.dtscp stm32mp157a-dk1-u-boot.dtsi stm32mp157a-fsmp1a-u-boot.dtsicp stm32mp15xx-dkx.dtsi stm32mp15xx-fsmp1x.dtsi3>进入arch/arm/dts目录下,打开设备树stm32mp157a-fsmp1a.dts,需要更改以下内容12 #include "stm32mp15xx-dkx.dtsi"13 14 / {                                                                                                           15     model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";16     compatible = "st,stm32mp157a-dk1", "st,stm32mp157";更改为12 #include "stm32mp15xx-fsmp1x.dtsi"13 14 / {15     model = "HQYJ STM32MP157A-FSMP1A Discovery Board";16     compatible = "hqyj,stm32mp157a-fsmp1a", "st,stm32mp157";   4>进入arch/arm/dts目录下,打开Makefile文件,添加FSMP1A平台设备树内容945 dtb-$(CONFIG_STM32MP15x) += \946     stm32mp157a-dk1.dtb \947     stm32mp157a-fsmp1a.dtb \  ------>这一行为需要添加的内容
7.对uboot源码进行编译time make -j4 all
8.成功现象u-boot-spl.stm32u-boot.img

制作TF启动盘

1.将TF卡插入到读卡器中,并将读卡器插入到电脑USB口,需要连接到虚拟机
2.查看TF卡分区linux@ubuntu:~/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0/u-boot-stm32mp-v2020.10-stm32mp-r2$ ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4  /dev/sdb5
3.首先删除原有分区sudo parted -s /dev/sdb mklabel msdos成功现象:linux@ubuntu:~/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0/u-boot-stm32mp-v2020.10-stm32mp-r2$ ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  4.对 tf 进行重新分区,需要注意查看打印信息是否分区成功sudo sgdisk --resize-table=128 -a 1 -n 1:34:545 -c 1:fsbl1 -n 2:546:1057 -c2:fsbl2 -n 3:1058:5153 -c 3:ssbl -n 4:5154:136225 -c 4:bootfs -n 5:136226 -c 5:rootfs -A 4:set:2 -p/dev/sdb -g解释:sgdisk:分区--resize-table=128 -a 1:对齐-n:创建一个新的分区1:第一个分区34:起始块号545:终止块号-c 1:fsbl1:分区名字-A 4:set:2:设置分区表属性-p/dev/sdb -g:打印分区表
5.查看分区是否成功,ls /dev/sd*linux@ubuntu:~/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0/u-boot-stm32mp-v2020.10-stm32mp-r2$ ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4  /dev/sdb5
6.将uboot镜像文件烧写到对应的分区中linux@ubuntu:$ sudo dd if=u-boot-spl.stm32 of=/dev/sdb1 conv=fdatasynclinux@ubuntu:$ sudo dd if=u-boot-spl.stm32 of=/dev/sdb2 conv=fdatasynclinux@ubuntu:$ sudo dd if=u-boot.img of=/dev/sdb3 conv=fdatasync解释:dd:拷贝文件命令if:input file 输入文件名字of: output file 输出文件名字conv=fdatasync:以物理方式写入

开发板与虚拟机组网、uboot源码makefile分析、uboot安全启动与非安全启动方式、uboot源码配置与编译流程、制作TF启动盘相关推荐

  1. JZ2440开发板与电脑通过网线直连,实现开发板、虚拟机、PC机三者互Ping,并成功挂接网络根文件系统

    声明: 本文提及的部分图片与内容属于韦东山老师的教学视频课程内容,本文提出的解决方案是基于韦老师教学视频中提及方案的扩展. 转载内容来自: [005_ARM裸机1期加强版_第006课_第006节_一句 ...

  2. 在这里,TQ2416系列----开发板与虚拟机之间搭建NFS

    TQ2416  开发板与虚拟机之间搭建NFS 在实际的开发中,当我们在开发板上搭建好ARM+LINUX的开发环境(uboot,linux内核,文件系统都裁剪幷移植到开发板上),专注于应用程序的开发的时 ...

  3. 如何使用电脑连接WIFI,开发板网线连接路由器,ping通开发板和虚拟机

    关于网络的各种操作真的是很令人头疼,网络也是很难学的一个板块.分享一下我这种情况如何ping通开发板和虚拟机. 首先我是只有一根网线,电脑商务本没有网口,所以只能把开发板和路由器连在一起. 开发板使用 ...

  4. 开发板和虚拟机Linux使用scp命令互传文件

    scp命令 Linux scp 命令用于 Linux 之间复制文件和目录 scp 是 secure copy 的缩写,scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令 scp ...

  5. uboot笔记之makefile分析

    uboot笔记之makefile分析开始学习uboot,对于linux我还是个新手,在这只是对学习uboot做下笔记,文中错误之处请谅解.使用的uboot版本是2009.11.  要了解一个linux ...

  6. linux下调试mini2440开发板,Linux--mini2440----mini2440开发板与虚拟机ping不通的原因

    我在调试用tftp server进行uImage下载时出现了问题,在网上找到了解决方法,跟大家分享一下! 首先确定虚拟机的链接方式: 打开edit--->Virtual Network Edit ...

  7. 解决嵌入式开发过程中开发板与虚拟机的网络通信问题

    前言 最近在做海思Hi3516的开发,奈何资源受限,只得搭建虚拟机环境.在虚拟机环境下进行开发工作,不得不说,坑是真滴多. 在虚拟机上搭建交叉编译环境,用来编译开发板所能执行的目标文件.所以就要使用N ...

  8. 主机,开发板,虚拟机三者之间相互ping通

    首先要确保三者在同一个网段,即ip地址的前三位相同 检查主机ip:cmd打开命令行,首先在当前路径是没有办法使用ping,ipconfig命令的 需要cd c:\windows\system32这个目 ...

  9. 全志V3S荔枝派zero10分钟制作TF启动卡,主线Linux,主线u-boot(超过10分钟博主直播吃奥利奥!!!)

    一,初学者(比如我)刚拿到zero时,一定是一脸懵逼的,无从下手的,通过几篇代佬们写的文章+官网资料,了解了几种启动方式 1.Camdriod 官方SDK 2.主线Uboot + Bsp 内核 3.主 ...

最新文章

  1. linux 压缩文件夹格式,Linux下常见文件格式的压缩、解压小结
  2. mysql 非正常关闭,centos非正常关机后,mysql竟然启动不了
  3. Asp.net細微的效率提升
  4. BizTalk开发系列(十九) BizTalk命名规范
  5. oracle 插入时if,关于sql:ORACLE:如果不存在则插入行-重复键错误
  6. 【方案分享】地产项目2022年新春1月系列暖场活动策划方案:新年置业,如虎添翼.pptx(附下载链接)...
  7. 关于本博客的feed订阅
  8. 嵌入式linux appace,嵌入式Linux攻略 ACE程序移植过程详细解析 — IT技术
  9. 我们和优秀工程师的差距在哪儿
  10. 20191129每日一句
  11. c++程序员面试宝典
  12. 《5分钟商学院》--刘润老师直播
  13. Python数据分析师工资怎么样?
  14. 德米特里:玩世不恭大冒险 for Mac(冒险游戏)
  15. 实现类似微信中查找“附近的人”的功能!
  16. 微信小程序 个人收支理财记账本小程序Android hbuilderx App毕业设计
  17. Python-Level1-day16:异常处理try-exceptraise语句,for迭代原理,深入手写创建迭代器;yield浅出使用生成器
  18. eclipse IDE
  19. JetBrains产品字体大小调整
  20. 沐神《动手学深度实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

热门文章

  1. 使用爱加密生成带有签名的
  2. Java项目:JSP校园二手物品交易平台网站
  3. 新基建 数据中心样板案例丨中国联通贵安云数据中心微模块机房运营
  4. 在线教育的断崖式崩溃与web3.0的衍生
  5. 数字孪生常用关键技术,有哪些软件?
  6. 药房管理系统C语言课程报告,《C语言程序设计》药房管理系统.doc
  7. 中国的独特性·《论中国》·一
  8. Mindspore-训练模型
  9. [Leetcode][Easy][Merge Intervals]
  10. Java、JSP网上电子商城的设计