当前位置: 首页 > news >正文

imx6ull - 制作烧录SD卡

1、参考NXP官方的手册《i.MX_Linux_Users_Guide.pdf》的这一章节:

1、SD卡分区

提示:我们常用的SD卡一个扇区的大小是512字节。

先说一下i.MX6ULL使用SD卡启动时的分区情况,NXP官方给的镜像布局结构如下所示:

可以看到,上图将一张SD卡分成了三部分:

第一部分:扇区起始地址ox400bytes(2),大小为20478个扇区,分区格式为原始格式,用于存放uboot;(0x400 bytes转为10进制是1024 bytes, 刚好等于2个扇区大小;这两个扇区是为了保存分区表的信息。所以从0x400地址开始存放U-boot,括号中的2可以理解为从第2个扇区的起始地址开始,扇区编号从0开始数起)
第二部分:扇区起始地址oxa0000 bytes(20480个扇区),大小为500M(1024000个扇区),分区格式为FAT,用于存放内核和设备树;
第三部分:扇区起始地址ox25800000(1228800个扇区),大小为SD卡剩余的空间,分区格式为Ext3或Ext4,用于存放rootfs,也就是文件系统。

由于第一部分用于存放UBOOT,无文件系统格式的要求,所以我们对分区的创建从第二部分(第20480扇区所在的地址)开始就可以。

拿到一张SD卡,首先将SD卡在windows下格式化成FAT32格式:

插入ubuntu系统之前,先使用以下命令查看一下所有的磁盘:

fdisk -l

将SD卡插入ubuntu,再次输入以上命令查看一下所有磁盘,会发现多出来一个/dev/sdb设备:

其中,/dev/sdb代表的就是SD卡本身,/dev/sdb1代表的是SD卡上的分区一,且格式为FAT32。

注意:SD卡插入ubuntu后,会出现/dev/sdX,具体是/dev/sdb还是/dev/sdc又或者是/dev/sdd要视个人插入ubuntu的USB口设备情况而定。

接下来对SD卡重新分区:

fdisk /dev/sdb

d         ---> 删除分区
n         ---> 创建分区 
p         ---> 选择为主分区
1         ---> 分区编号为1
20480     ---> 分区1起始扇区
+500M     ---> 分区大小:500MB
p         ---> 显示当前分区
n         ---> 创建分区
p         ---> 选择为主分区
2         ---> 分区编号为2
1228800   ---> 分区起始地址
<enter>   ---> 敲回车,表示将剩下的所有空间都分给分区2
p         ---> 显示当前分区
w         ---> 保存

设置sdb1分区格式为FAT:

sudo mkfs.vfat /dev/sdb1

设置sdb2分区格式为Ext3或Ext4都可以

sudo mkfs.ext3 /dev/sdb2
或者
sudo mkfs.ext4 /dev/sdb2

此时SD卡的分布如下图所示:

2、拷贝uboot到SD卡

拷贝uboot到SD卡,输入以下命令:

sudo dd if=u-boot.imx of=/dev/sdb bs=1k seek=1 conv=fsync

从上面我们对SD卡分区的时候知道,uboot需要从第0分区的扇区地址2开始的,SD卡中一个扇区占512字节,SD卡偏移1K字节处开始保存uboot。上面这条命令中,bs设置dd命令的读写块为1K大小(这个数据可以任意设置,设置大一点读写就快),并且设置seek=1(单位为KB),表示从SD卡/dev/sdb开头偏移1K字节处开始写u-boot.imx,正好就是写到了u-boot在SD卡中0区所在位置处,前面预留1K字节刚好2个扇区大小保存分区表信息。

问:为什么从SD卡1K位置处存放uboot而不是从SD卡头部开始?
答:这是NXP官方手册上写前面1K字节是保存分区表的信息。

3、拷贝kernel和dtbs到SD卡
创建挂载点:

mkdir /mountpoint

挂载分区一:

mount /dev/sdb1 /mountpoint  (注意根据上面的分区这是sdb1,存放kernal image和dtbs)

使用cp命令将zImage和*.dtb文件拷贝进/mountpoint目录,然后取消挂载:

umount mountpoint

4、拷贝文件系统到SD卡
挂载分区二:

mount /dev/sdb2 /mountpoint (注意根据上面的分区这是sdb2,存放根文件系统)

解包你的文件系统,假设文件系统包为:rootfs.tar.bz2

mkdir rootfs
tar -jxvf rootfs.tar.bz2 -C rootfs/

进入文件系统目录:

cd rootfs

拷贝所有文件到/mountpoint目录:

cp -a * /mountpoint

然后取消挂载:

umount mountpoint
sync

到此,SD启动卡就已经制作完成!

1. 官方资料和工具获取

1.1 官方源码资料

Embedded Linux for i.MX Applications Processors是NXP专门针对i.MX系列维护的uboot和linux等源码,有不同的版本和分支。截至文章发布官方最新版本Linux 5.15.52_2.1.0,为了和之前的iMX6ULL维护一份代码我这里选择Linux 5.15.32_2.0.0​这个版本。下载文档资料和官方demo板的镜像包,可以参考使用。

更加详细资料获取方法请参考:iMX8MM uboot2021.04 linux5.15.32移植_arm_Sonboy(^_^)-华为云开发者联盟

参考:i.MXU6LL - 制作烧录SD卡详细步骤_imx6ullsd卡烧录程序-CSDN博客

相关文章:

  • 特征工程技巧—Bert
  • ResizeObserver监听画布尺寸改变动态渲染echarts
  • Lua 基础 04 模块
  • Linux 系统安全及应用
  • FFmpeg解复用器(解封装)简单测试【2】
  • 每日一练——分糖果2
  • 【Go语言精进之路】构建高效Go程序:零值可用、使用复合字面值作为初值构造器
  • CAPL如何发送一条UDP报文
  • 独立游戏开发的 6 个步骤
  • 游戏找不到d3dcompiler43.dll怎么办,分享5种有效的解决方法
  • 【全开源】种草分享|动态朋友圈|瀑布流|uniapp
  • MySQL—约束—外键约束(基础)
  • Scala 柯里化、sortBy方法
  • Linux配置java,maven,marshalsec环境
  • 实现Dropdown下拉菜单监听键盘上下键选中功能-React
  • 【Linux系统编程】快速查找errno错误码信息
  • Angular Elements 及其运作原理
  • DataBase in Android
  • docker python 配置
  • Java 网络编程(2):UDP 的使用
  • JavaScript-Array类型
  • Java程序员幽默爆笑锦集
  • Java多态
  • Java面向对象及其三大特征
  • node 版本过低
  • React-flux杂记
  • spring boot 整合mybatis 无法输出sql的问题
  • tab.js分享及浏览器兼容性问题汇总
  • TCP拥塞控制
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 机器学习中为什么要做归一化normalization
  • 简单数学运算程序(不定期更新)
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 设计模式走一遍---观察者模式
  • #### golang中【堆】的使用及底层 ####
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (windows2012共享文件夹和防火墙设置
  • (四) 虚拟摄像头vivi体验
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (杂交版)植物大战僵尸
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net6 Api Swagger配置
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .Net语言中的StringBuilder:入门到精通
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [C#]winform部署yolov5-onnx模型
  • [C#7] 1.Tuples(元组)
  • [caffe(二)]Python加载训练caffe模型并进行测试1