找回密码
 注册
关于网站域名变更的通知
查看: 288|回复: 0
打印 上一主题 下一主题

飞凌技术贴 | OK3568-C开发板源码编译

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-3 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
文章来源:飞凌嵌入式官网
搜索【Forlinx】进入飞凌官网了解更多产品详情和行业资讯
" r8 X* L. C: x; y
主机:Ubuntu18.04
开发板:OK3568-C开发板
本文将为大家介绍在飞凌嵌入式OK3568-C开发板上进行源码编译的过程,希望能够对各位工程师小伙伴有所帮助。话不多说,我们马上进入正题。

0 s8 d* @# a% `- M/ P1、准备源码
1. 创建工作目录
$mkdir -p ~/rk3568
' p. I. _1 K  s2 T, v8 h
2. 拷贝源码
将用户资料中的源码文件OK3568-linux-source.tar.bz2.a*拷贝到虚拟机~/rk3568目录。
拷贝文件的方式有很多,笔者使用的是共享文件夹方式。
【注】OK3568源码使用分段压缩,每段最大4G,这样方便拷贝,因此有些存储器单文件最大支持4G。

5 }" t! W$ _/ W0 Y- u; q8 W
3. 解压源码
$cat OK3568-linux-source.tar.bz2.a* >OK3568-linux-source.tar.bz2
$tar -xvf OK3568-linux-source.tar.bz2
耐心等待完成即可,解压时间有点久。

4 Q7 g* J. m2 }% G. i
4. 进入源码
$cd ~/rk3568/OK3568-linux-source
目录结构

' C/ c, `: p4 |7 S8 q8 |
2、编译SDK
1. 编译前配置
在device/rockchip/ok3568/目录下,有不同板型的配置文件,选择配置文件:
$./build.shBoardConfig-ok3568.mk
相关配置介绍:
* r4 x. X9 D+ \3 U* A. l% N# l  e
2. 编译
编译u-boot
$./build.shuboot
……
编译kernel
$./build.shkernel
……
【注】编译一段时间后会弹出下图界面,需要选择,提取图中信息,VCCIO4和VCCIO6选择1800000其余选择3300000,使用上下方向按键选择选项,按回车确认选择即可。
编译recovery
$./build.shrecovery
……
编译Buildroot根文件系统
$./build.shbuildroot
制作文件系统的时间会比较久,请耐心等待编译完成。
【注1】确保作为普通用户编译Buildroot根文件系统,避免不必要的错误;
【注2】如果不想编译文件系统,也可直接从已有的镜像中解压后,将其拷贝到rockdev目录下。

* f0 U- O# H' J! z! T" t5 l2 I8 ]6 Q7 u
3. 打包固件
更新各部分镜像链接到rockdev/目录:
$./mkfirmware.sh
打包固件,生成的完整固件会保存到rockdev/目录。
$./build.shupdateimg
[PS]全自动编译
全自动编译会执行上述编译、打包操作,生成完整固件。
$./build.sh
" j1 p4 z' `8 |, Q3 M
3、分区说明
1. parameter 分区表
parameter.txt文件中包含了固件的分区信息,以parameter-buildroot.txt为例:
路径:
device/rockchip/ok3568/parameter-buildroot-fit.txt
CMDLINE属性是我们关注的地方,以uboot为例,0x00002000@0x00004000(uboot)中0x00004000为uboot分区的起始位置,0x00002000为分区的大小,以此类推。

/ o6 }2 d7 ?! x5 r6 @1 j0 z! |
2. package-file
package-file文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与parameter.txt文件保持一致。
路径:
tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
#NAME Relative path
#
#HWDEF HWDEF
package-filepackage-file
bootloader Image/MiniLoaderAll.bin
parameter Image/parameter.txt
#trust Image/trust.img
uboot Image/uboot.img
misc Image/misc.img
#resource Image/resource.img
#kernel Image/kernel.img
boot Image/boot.img
recovery Image/recovery.img
rootfs Image/rootfs.img
oem Image/oem.img
userdata Image/userdata.img
#要写入backup分区的文件就是自身(update.img)
#SELF 是关键字,表示升级文件(update.img)自身
#在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录
#在解包升级文件时,不解包SELF文件的内容。
backup RESERVED
#update-script update-script
#recover-script recover-script
- u" ?. }" T& t) E! k0 K
4、镜像制作
编译源码可直接得到镜像,但是编译时间太长,有些部分不需要再次编译,只需要从已有的镜像中解包,然后再和新编译的部分组合打包即可,下面是制作方法。
6 x# m9 Q% S  d; R+ v5 S
1. 工具安装
下载工具包:
$git clone
https://github.com/TeeFirefly/rk2918_tools.git
进入工具包目录:
$cd rk2918_tools
编译:
$make
将可执行文件拷贝到用户二进制目录:
$sudo cp afptool img_unpack img_maker mkkrnlimg/usr/local/bin
' B1 {3 g. c8 x7 h4 H0 g' u
2. 解包
将update.img拷贝到Ubuntu中,然后使用命令解包:
$img_unpack update.img img
解包到img目录,img目录会自动生成,解析成功之后,img目录下会生成loader.img和update.img。
接下来进入到img目录,使用afptool-unpack 解压:
$afptool -unpack update.img update
解压到update目录
打开update目录,里面有很多img文件。
将需要的文件复制到rockdev目录下。
0 d- ]$ a# b, v& Y  K, e
3. 合成update.img
然后源码目录以下命令即可:
$./build.shupdateimg
& ]# D; J% r1 X- ?: X/ Q& s

, p2 Y/ Q( C1 A* o4 Q; T+ R
感谢发烧友[ouxiaolong]提供本篇OK3568-C开发板试用体验文章!

% d% r) K- M) ^, n4 o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-30 00:48 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表