主线 Linux
更新历史
日期 | 版本 | 作者 | 更新内容 |
---|---|---|---|
2023-12-08 | v1.0 | ztd |
|
该文档以 Ubuntu 22.04 为例,演示如何搭建 LonganPi 3H 开发环境并进行主线Linux的开发。
在正式合并入主线前,需要拉取 Github 仓库,获取patch开发,预计将于 2024Q1 合并入主线Linux。
一、环境配置#
首先用 git 拉取仓库到本地,并安装工具链:
二、构建#
然后进入到仓库所在目录,运行其中的脚本即可得到构建出的 uboot, kernel, dtb 和 rootfs。
生成的 Image 文件,设备树文件,会复制到该仓库目录下的 overlay/boot/ 文件夹中,生成的内核模块会复制到该仓库目录下的 overlay/usr/ 文件夹中。
接下来介绍 SDK 仓库的主要文件构成及其作用:
linux
文件夹下,存放的是 kernel 的 patch 文件,在运行 mklinux.sh 时会自动将这些 patch 打入到 kernel 源码中。
uboot
文件夹下,存放的是 uboot 的 patch 文件, 在运行 mkuboot.sh 时会自动将这些 patch 打入到uboot 源码中。
overlay
文件夹下有一些必要的文件,在运行 mkrootfs.sh 时会自动将这些文件覆盖到构建出来的 rootfs 中。
mkrootfs.sh 用于构建烧录所需要的根文件系统,可以根据需要选择是否跳过 debian rootfs 的构建,具体请看脚本中的注释。
构建完成后,接下来介绍如何制作一张启动 TF 卡,以及如何打包制作可烧录的 TF 卡启动镜像。
三、制作启动 TF 卡#
准备一张 TF 卡,先进行格式化。
然后对 TF 卡进行分区(下面中的命令请修改为自己 TF 卡对应的盘符,请仔细核对并谨慎操作),下面步骤使用 fdisk 为 TF 添加两个分区,boot 分区大小为 64M,剩余空间分配给根文件系统(uboot烧录到裸分区中,一般位于 TF 空间中的前1M):
接下来按两次回车,即可将剩余空间都分配给根文件系统。分区完成后,先不要退出 fdisk ,还需要设置第一个分区为 boot 分区:
设置完成后,输入 p 来检查刚刚的分区信息是否有误:
确认无误后,输入 w 并按下回车将刚刚的分区信息写入:
接下来对分区进行格式化:
格式化完成后烧录 uboot:
烧录 kernel:
烧录 rootfs:
完成上述步骤后,就得到了一张启动 TF 卡。
四、制作 TF 卡启动镜像#
首先制作空的 img 文件:
接下来对该 img 文件进行分区操作。类似地,使用 fdisk 命令,将其分为 boot 分区和 rootfs 分区:
使用 fdisk -l LPI3H_${DATE}.img
查看分区信息:
完成分区后,使用 losetup 命令设置循环设备:
sudo losetup -l | grep LPI3H
查看循环设备信息:
根据上面查到的循环设备信息,进行后面的操作。上面的信息中可以看到 /dev/loop3 是 img 文件,/dev/loop23 是 boot 分区,/dev/loop24 是 rootfs 分区。
对分区进行格式化
格式化完成后需要的文件 :
接下来,可以参考烧录镜像把得到的 img 镜像文件烧录到 TF 卡中。
怎样制作emmc启动镜像呢?