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

I.MX8QM创建wic镜像文件

1.说明

在使用imx8的yocto编译镜像时,最后会生成wic或wic.bz2(经解压会得到wic文件)后缀的文件。wic文件包含了bootloader、kernel镜像以及文件系统。它们会以和实际存储介质相同的方式分布在wic文件中,并包含分区情况。下面是imx8qm的分区情况,我们也将以这个为例来手动创建一个wic镜像文件。


#  ---------------- -------------- --------------
# |     | imx-boot |     boot     |    rootfs    |
#  ----------------- -------------- --------------
# ^     ^          ^              ^              ^
# |     |          |              |              |
# 0     32kiB     8MiB          72MiB            end
#
# imx-boot:bootloader
# boot:dtb文件、kernel镜像等。第一个分区,文件系统格式fat16。
# rootfs:文件系统存放位置。第二个分区,文件系统格式ext4。
# 8M以后的空间可以根据自己的需要进行调整或增加分区。
2.创建bootloader

采用下面的命令可以将bootloader写到wic文件的32kiB开始的区域。

dd of=rootfs.wic if=imx-boot-imx8qmmek.bin-flash bs=1k seek=32
# of指定输出的文件
# if指定输入的文件,这里输入文件是yocto编译uboot时生成的bin-flash。
3.创建boot和rootfs存放的空间
# 命令会在rootfs.wic文件8M向后在创建一个5G的空间,这个大小可以根据boot+rootfs的总和进行调整。
dd of=rootfs.wic if=/dev/zero bs=1M seek=8 count=5000

4.创建boot和rootfs分区
交互式创建

sudo parted rootfs.wic(parted) mklabel msdos        # 设置格式类型为msdos
(parted) mkpart p1 8M 80M   #创建p1分区/boot分区,指定开始和结束位置,所以这个分配了72M空间
(parted) set 1 boot on
(parted) mkpart p2 80M -1   #创建p2分区/rootfs分区,-1指剩下所有的空间。
(parted) print     #打印查看分区 
(parted) quit      #退出

命令创建

parted -s rootfs.wic mklabel msdos
parted -s rootfs.wic unit MB mkpart primary fat16 -- 8 80
parted -s rootfs.wic set 1 boot on
parted -s rootfs.wic unit MB mkpart primary ext4 -- 80 -2

在这里插入图片描述

5.将镜像文件虚拟成块设备并挂载虚拟文件系统
sudo losetup -f --show rootfs.wic    #镜像文件虚拟成块设备
sudo kpartx -av /dev/loop31          #挂载虚拟文件系统

注意:第二条命令的设备节点“/dev/loop31”是第一条命令的输出结果,需要根据自己的实际情况。
执行完上面的命令后就能看到这个虚拟块设备的分区情况。
在这里插入图片描述

6.对分区进行格式化。

下面对这两个分区进行格式化,这里格式化第一分区为fat16,第二分区为ext4。

sudo mkfs.msdos /dev/mapper/loop31p1
sudo mkfs.ext4 /dev/mapper/loop31p2
7.copy内容到各自的分区中
# copy to boot part
sudo mount /dev/mapper/loop31p1 /mnt
sudo cp * /mnt        //*代表Image/dtb等文件
sudo umount /mnt# copy to rootfs part
sudo mount /dev/mapper/loop31p2 /mnt
sudo cp 文件系统 /mnt        
sudo umount /mnt
注意:文件系统如果是tarball可以通过'-C'参数直接解压到挂载的目录中,如果是镜像文件可直接通过dd命令烧写"/dev/mapper/loop31p2"
8.结束

通过下面的命令想挂载和虚拟的块设备进行删除。wic镜像就完成了,可以通过uuu工具烧录到板子上验证系统是否正常启动。

sudo kpartx -d /dev/loop31
sudo losetup -d /dev/loop31

另外yocto编译生成的wic镜像文件也可以通过这种方式进行修改,步骤参见5-8。这种方式不提供修改bootloader,只能对可挂载分区里的内容就行修改,但是uuu中提供了单烧bootloader的功能,如果有修改bootloader的需求,直接通过uuu烧写bootloader即可。

9.问题

镜像烧写到板子上后通过“df -h”查看空间大小,发现最后一个存放文件系统的分区并没有完全占用剩下的磁盘,整个空间只占用了当时dd命令创建的大小,可以通过下面命令扩充分区空间让其占满整个剩余磁盘空间。注意:下面方法在"parted"命令下"mklabel"是"msdos"分区时有效。

parted -s /dev/mmcblk0 resizepart 2 -- 100%   #2代表的是分区号
resize2fs /dev/mmcblk0p2
http://www.dtcms.com/a/450975.html

相关文章:

  • 做塑料的网站名字ui网页界面设计素材
  • 哪一款软件可以自己做网站免费申请自己的网站
  • 显示英文以及字符
  • 邯郸网站建设怎么做手机访问自动跳转到wap网站的代码
  • 网站备案知识做网站界面设计注意什么
  • 专业的饰品行业网站开发网站建设推广销售人员
  • 沈阳哪家网站制作公司比较好云南建设厅查证网站
  • Memcached stats sizes 命令详解
  • 大连网站制作案例口碑营销ppt
  • 网站建设网页制作软件有哪些教育行业网站建设价格
  • 算法竞赛常见bug或错误
  • ps做网站要求高吗c 怎么做能让窗体访问网站
  • 网站怎么做排名呢如何免费找精准客户
  • 怎么看一个网站是不是织梦网站建设的外国文献
  • 钢城网站建设百度推广和优化哪个好
  • 【操作系统基础】线程
  • 有哪些高端的网站教师可以做网站吗
  • 做网站商城的目的是什么网络服务协议模板
  • 兰州网站制作公司排名app小程序网站开发是什么
  • Shadow Masks Baking Direct Occlusion
  • 刚刚上海重大宣布windows优化大师的优点
  • 自做网站fifa世界排名最新
  • 面试经典150题[048]:汇总区间(LeetCode 228)
  • 做外贸需要做国外的网站吗附近企业建站公司
  • 网络营销网站建设诊断报告seo扣费系统
  • 建设档案员证书查询网站菏泽微信小程序制作
  • 广州商城网站开发wordpress 插件 表单
  • 变色龙哈希的基本概念与特点
  • 宁波网站建设营销推广大淘客做网站
  • 网页版传奇3河南seo外包