RK3568技术笔记十三 Ubuntu的编译

Ubuntu文件系统编译

在编译前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

按下述方法编译的Ubuntu系统,用户名是:dianyu 密码:1

编译Ubuntu,执行命令:

$ ./build.sh ubuntu

如下图所示:

编译完成后可以执行命令:

$ ls ./rockdev/ -al

查看Ubuntu镜像链接,如下图所示:

可以看到Ubuntu镜像文件在ubuntu目录下。

固件打包

进入源码目录(目录需按个人实际路径修改),打包固件。

固件打包前需要设置RK_ROOTFS_SYSTEM环境变量,通过设置此变量,可以决定编译哪个文件系统:

打包buildroot文件系统,则设置RK_ROOTFS_SYSTEM为buildroot,如下所示:

$ export RK_ROOTFS_SYSTEM=buildroot

打包Debian文件系统,则设置RK_ROOTFS_SYSTEM为debian,如下所示:

$ export RK_ROOTFS_SYSTEM=debian

打包Ubuntu文件系统,则设置RK_ROOTFS_SYSTEM为ubuntu,如下所示:

$ export RK_ROOTFS_SYSTEM=ubuntu

查看当前终端设置的RK_ROOTFS_SYSTEM环境变量的值,执行命令:

echo RK_ROOTFS_SYSTEM

下面以buildroot文件系统为例,进行固件打包:

配置RK_ROOTFS_SYSTEM环境变量为buildroot,执行命令:

$ export RK_ROOTFS_SYSTEM=buildroot

查看RK_ROOTFS_SYSTEM环境变量是否配置正确,执行命令:

echo RK_ROOTFS_SYSTEM

如下图所示:

可以看到输出为buildroot,说明配置正确。

说明:RK_ROOTFS_SYSTEM环境变量仅在固件打包时生效,在固件打包前还需要更新镜像,在更新镜像过程中并不依赖此环境变量。由于源码中存在多种文件系统,而更新文件系统镜像的规则为更新最后一次编译的文件系统,为了保证正确打包固件,这里选择再次编译文件系统,以确保打包的文件系统为所需要打包的文件系统。若十分确认最后一次编译的文件系统是自己需要的文件系统,则无需重新编译文件系统;若不是十分确认最后一次编译的文件系统是自己需要的文件系统建议再重新编译一次。

为了保证固件打包的正确性,选择再次编译buildroot文件系统,执行如下命令:

$ ./build.sh buildroot

完成所需镜像编译后,更新编译后的镜像文件,执行命令:

$ ./build.sh firmware

如下图所示:

更新完成后会将需要的镜像文件链接到 rockdev 目录下,如下图所示:

打包固件,执行命令:

$ ./build.sh updateimg

如下图所示:

打包完成后可以在rockdev目录下看到打包好的固件"update.img",如下图所示:

相关推荐
云和恩墨22 分钟前
数据库监控简史:从会回答到能交付——AI-DBA如何成为真正的数字同事
数据库·人工智能·dba
程序边界33 分钟前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
无敌贵点大王37 分钟前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
GeW42 分钟前
新质生产力路线图下,Linux 和数据库不能拆成两件事做
linux
云和数据.ChenGuang44 分钟前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
Linux-lucky1 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
Fruiticecake1 小时前
C 变量住在哪里,进程内存为什么越来越大:从 .data / .bss 到 smaps 排查内存增长
linux
这个DBA有点耶1 小时前
为什么删掉索引后,查询瞬间变快了?探讨MySQL的随机I/O与顺序I/O博弈
数据库·mysql·代码规范
Escalating_xu1 小时前
【Linux 网络编程】NAT、代理服务与内网穿透:从一个公网 IP,到一条真正可达的连接
linux·网络·tcp/ip
来让爷抱一个1 小时前
Linux 磁盘 100% 但 du 查不出东西,五种情况逐个排
linux·网络·chrome