金坛企业网站建设公司,用脚手架如何搭建项目做网站,杭州软件开发定制公司,响应式网站滑动1、参考NXP官方的手册《i.MX_Linux_Users_Guide.pdf》的这一章节#xff1a; 1、SD卡分区 提示#xff1a;我们常用的SD卡一个扇区的大小是512字节。 先说一下i.MX6ULL使用SD卡启动时的分区情况#xff0c;NXP官方给的镜像布局结构如下所示#xff1a; 可以看到#xff0c…1、参考NXP官方的手册《i.MX_Linux_Users_Guide.pdf》的这一章节 1、SD卡分区 提示我们常用的SD卡一个扇区的大小是512字节。 先说一下i.MX6ULL使用SD卡启动时的分区情况NXP官方给的镜像布局结构如下所示 可以看到上图将一张SD卡分成了三部分
第一部分扇区起始地址ox400bytes(2)大小为20478个扇区分区格式为原始格式用于存放uboot0x400 bytes转为10进制是1024 bytes, 刚好等于2个扇区大小这两个扇区是为了保存分区表的信息。所以从0x400地址开始存放U-boot括号中的2可以理解为从第2个扇区的起始地址开始扇区编号从0开始数起 第二部分扇区起始地址oxa0000 bytes20480个扇区大小为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/sdbd --- 删除分区 n --- 创建分区 p --- 选择为主分区 1 --- 分区编号为1 20480 --- 分区1起始扇区 500M --- 分区大小500MB p --- 显示当前分区 n --- 创建分区 p --- 选择为主分区 2 --- 分区编号为21228800 --- 分区起始地址 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 ifu-boot.imx of/dev/sdb bs1k seek1 convfsync从上面我们对SD卡分区的时候知道uboot需要从第0分区的扇区地址2开始的SD卡中一个扇区占512字节SD卡偏移1K字节处开始保存uboot。上面这条命令中bs设置dd命令的读写块为1K大小(这个数据可以任意设置设置大一点读写就快)并且设置seek1(单位为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博客