编译debian的命令是https://www.bilibili.com/read/cv/build.sh debian,会执行脚本中build_debian函数。
如果linaro-$RK_DEBIAN_VERSION-alip-*.tar.gz(linaro-buster-alip-2024xxxx-1.tar.gz)不存在,就执行脚本mk-base-debian.sh,先做出这个压缩包,里边包含根文件系统的基本目录和文件。
接下来执行mk-rootfs-$RK_DEBIAN_VERSION.sh(mk-rootfs-buster.sh)脚本,进一步安装软件,配置环境。
最后执行mk-image.sh构建img镜像。
mk-base-debian.sh脚本通过ubuntu-build-service/$RELEASE-$TARGET-$ARCH(buster-desktop-arm64)下的configure脚本配置lb,再make构建基础包。
configure脚本中:
set -e :脚本中的任何一条命令出现错误,整个脚本将立即停止执行,并返回一个非零的退出代码。
lb:是live-build的简写,是一个用于创建自定义 Debian Live 系统的工具。它能够自动化 Debian Live 系统的构建过程,包括系统安装、软件包管理、系统配置等。live-build 提供了简单的配置文件,使得用户可以轻松定制自己的 Debian Live 系统,例如选择所需的软件包、调整系统设置等
test -d :检查文件是否存在并且是目录。
Makefile里边实际上也是脚本命令,make实际上就是执行lb build和其他一些操作。
-复制packages/arm64、overlay、overlay-firmware、overlay-debug内的文件到binary目录下,
-创建system/lib/modules/和vendor/etc目录并且复制wlan驱动模块到modules下
-复制qemu模拟器qemu-aarch64-static
-以binary目录为根目录,在PC端模拟嵌入式系统环境,开始给根文件系统安装软件和配置环境。
cat << EOF:从标准输入(stdin) 读取一段文本,遇到 "EOF" 就停止读取,然后将文本输出到标准输出(stdout) 中。
sudo chroot $TARGET_ROOTFS_DIR(sudo chroot binary):以binary为根目录运行新的命令行,此处相当于在PC模拟嵌入式命令行环境。
mk-image.sh将根据binary内容构建最终的img镜像。post-build.sh对编译信息和分区信息进行处理。然后通过dd命令和mkfs命令制作根文件镜像。
脚本中的其他操作大多是赋值、复制、移动、判断等,这里就不赘述了,有不懂的可以留言交流。
制作Ubuntu镜像貌似立创也提供了脚本,我这边是从b站找到的,不知道是不是立创那版。链接:https://www.bilibili.com/read/cv/?spm_id_from=333.999.0.0。
在mk-base-ubuntu-tspi.sh脚本中先下载ubuntu-base-22.04.4-base-$ARCH.tar.gz(ubuntu-base-22.04.4-base-arm64.tar.gz)基础包,然后解压安装基本的软件和配置系统信息,完成后再打包。
mk-rootfs-tspi.sh进一步安装更多的软件,包括wifi驱动、浏览器、播放器等,并且做了一些配置。
mk-image.sh同样是制作img镜像。细节有些微差别,最终的效果是一样的。
做成的Ubuntu根文件镜像下载到板子后,能够正常启动并且显示画面。
但是浏览器无法使用,也没办法安装其他浏览器,会报错;播放器也没法播放声音,没办法进入设置界面。上网和娱乐都没法用,相当于废物一个。期间更新过内核也无济于事,由于水平有限且学习的目的达到了,最终不再纠结这个,先用立创提供的好的镜像做后面的学习和实验。如果有知道如何解决这些问题的小伙伴欢迎留言交流。
到此这篇ubuntu的镜像文件(ubuntu镜像文件img)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/23378.html