记将嵌入式Linux内核和根文件打包镜像包括u-boot

Posted qq_46604211

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记将嵌入式Linux内核和根文件打包镜像包括u-boot相关的知识,希望对你有一定的参考价值。

记将嵌入式Linux内核和根文件打包镜像包括u-boot

1.使用dd命令创建img镜像文件:

sudo dd if=/dev/zero of=lucky.img bs=1M count=300

2.安装工具

sudo apt install kpartx qemu-utils fdisk

3.建立分区

sudo fdisk ./lucky.img
1.使用m可以查看帮助
2.使用n快速创建分区 这里第一分区是16m
3.第二分区剩下的全部(需再按一次n重新分区)
4.记得保存 使用w进行保存
5.最后按q退出
一般都选择默认 分区大小写 +16m 表示增加16m的分区如下:

Command (m for help): n //创建分区
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p //创建主分区
Partition number (1-4, default 1): 1 //第一分区
First sector (2048-614399, default 2048): 2048 //默认 也可直接按回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-614399, default 614399): +16m //表示增加16m 若直接回车表示后面的全部为该分区的内容 所以第二分区可以直接全按回车

Created a new partition 1 of type 'Linux' and of size 16 MiB.

4.加载img文件

sudo kpartx -av ./lucky.img
加载成功会出现以下位置:
sudo kpartx -av ./lucky.img
add map loop28p1 (253:0): 0 32768 linear 7:28 2048
add map loop28p2 (253:1): 0 579584 linear 7:28 34816
说明在设备加载在/dev/loop28
而两个分区是/dev/mapper/loop28p1 和loop28p2

5.格式化两分区

第一分区为fat16(按需求 v3s是fat16)
sudo mkfs -t fat /dev/mapper/loop28p1
第二分区为ext4
sudo mkfs.ext4  /dev/mapper/loop28p2 -L rootfs

6.挂载两个分区

创建两个文件夹
mkdir -p ./boot
mkdir -p  ./rootfs
挂载两个分区到两个文件夹中
sudo mount /dev/mapper/loop28p1 ./boot/
sudo mount /dev/mapper/loop28p2 ./rootfs/
加载完后可以用 df -h命令查看是否挂载下面图有挂载成功的图

7.将boot,内核,设备树文件拷贝进boot分区中

boot需要按照芯片要求放置
以v3s为例子:
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/loop28 bs=1024 seek=8
(要放置在loop28设备内因为loop28p1 p2都是loop28目录下的可以使用磁盘命令lsblk -f查看树)
sudo cp ./zImage /home/book/lichee/packimg/boot
sudo cp ./sun8i-v3s-licheepi-zero-dock.dtb /home/book/lichee/packimg/boot


树命令查看后:

8.将根文件系统放入rootfs分区

sudo tar xvf rootfs.tar -C /挂载的tf卡第二个分区目录

9.卸载分区

sudo umount ./boot/
sudo umount ./rootfs/

10.卸载img

sudo kpartx -dv ./lucky.img

10.使用win32disk对sd卡进行镜像烧录

选好img ,设备后直接写入就ok 然后就可以使用了。

以上是关于记将嵌入式Linux内核和根文件打包镜像包括u-boot的主要内容,如果未能解决你的问题,请参考以下文章

记将嵌入式Linux内核和根文件打包镜像包括u-boot

记将嵌入式Linux内核和根文件打包镜像包括u-boot

关于 mkimage

Tina_Linux打包流程说明指南_new

linux 驱动模块开发初体验

如何解包/编辑/打包android系统的boot.img文件