当前位置:网站首页>RK3308--固件编译
RK3308--固件编译
2022-06-10 15:29:00 【猫咪老师nia~】
快捷路径
相关路径:cd work/hxy/RK3308/sdk-1.5/
添加依赖包
若编译遇到报错,可以视报错信息,安装对应的软件包。当时下面一大段依赖包直接添加时,不能实现(可能是因为中间有换行符),后面就一个一个添加了
推荐Linux服务器系统版本
Ubuntu 16.04.2 LTS Linux version 4.4.0-62-generic ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017
kernel及u-boot编译所需
apt与apt-get的区别
#sudo apt-get update
#sudo apt-get installgit-coregnupgflexbisongperfbuild-essentialzipcurlzlib1g-devgcc-multilibg++-multiliblibc6-dev-i386lib32ncurses5-devx11proto-core-dev libx11-devlib32z1-devccachelibgl1-mesa-devlibxml2-utilsxsltprocunzipdevice-tree-compilerliblz4-tool
buildroot编译所需
#sudo apt-get installlibfile-which-perlsedmakebinutilsgccg++bashpatchgzipbzip2perltarcpiopythonunziprsyncfilebclibmpc3gitrepotexinfopkg-configcmaketreetexinfo
交叉编译工具链介绍
u-boot 及 kernel 编译工具链:
路径:Y:\hxy\RK3308\sdk-1.5\prebuilts\gcc\linux-x86\aarch64\gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu\aarch64-linux-gnu
对应版本:gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
buildroot 编译工具链:
路径:Y:\hxy\RK3308\sdk-1.5\buildroot\output\rockchip_rk3308_release\host\bin
具体编译链:aarch64-rockchip-linux-gnu-g++(从LED控制Demo那确定的)
手动编译
u-boot 编译
查看设备是 64bit 还是 32bit 用指令:uname -a
# uname -a
Linux rockchip 4.4.143 #11 SMP PREEMPT Thu Feb 17 16:05:42 CST 2022 aarch64 GNU/Linux
RK3308 64bit 编译:
#cd u-boot
#./make.sh evb-rk3308
RK3308 32bit 编译:
#./make.sh evb-aarch32-rk3308
编译完,会生成 trust.img、rk3308_loader_v2.05.133.bin、uboot.img 三个文件
kernel编译
主板丝印:RK_EVB_RK3308_DDR3P116SD4_V13
小板丝印:RK_EVB_DMIC_PDM_6C70_v11_20180427J
RK3308 EVB V13 开发板搭配不同的麦克风阵列小板,需要选用不同的板级配置文件,区分如下:
路径:Y:\hxy\RK3308\sdk-1.5\kernel\arch\arm64\boot\dts\rockchip
相关文件:rk3308-evb-dmic-pdm-v13.dts(PDM 数字麦克风)
编译指令:编译完成后,在 kernel 根目录,生成 boot.img 镜像文件.
#cd kernel
#make rk3308_linux_defconfig
#make rk3308-evb-dmic-pdm-v13.img
buildroot编译
客户按实际编译环境配置好编译依赖后,按照以下步骤配置完后,执行 make 即可
#source buildroot/build/envsetup.sh
Top of tree: /home/luckystar/work/hxy/RK3308/sdk-1.5
You're building on Linux
Lunch menu...pick a combo:
- rockchip_rk3308_64_dueros
- rockchip_rk3308_recovery
- rockchip_rk3308_release
Which would you like? [0]:
选择对应序号,如31或者30(选择30是因为编译31生成固件的时候需要一个recovery.img)
#make( make 出来后能在 buildroot/output 目录下看到)
#./mkfirmware.sh(完成编译后执行 SDK 根目录下的 mkfirmware.sh 脚本生成固件)所有烧写所需的镜像将都会拷贝于 rockdev 目录,如下:
boot.imgmisc.imgparameter.txtrecovery.imgMiniLoaderAll.bin(即 rk3308_loader_v2.05.133.bin)oem.imguserdata.imgrootfs.imgtrust.imguboot.img
自动编译
为了提高编译的效率,降低人工编译可能出现的误操作,该 SDK 中集成了全自动化编译脚本,方便固件编译、备份,在控制台上使用以下命令:./build.sh
路径:
Y:\hxy\RK3308\sdk-1.5\device\rockchip\common(全自动化编译脚本原始文件)Y:\hxy\RK3308\sdk-1.5\device\rockchip\rk3308
文件:
build.shBoardConfig.mk(可以对脚本中特定的变量进行修改)
模块部分编译
为了方便开发调试,全自动化编译脚本也支持单独模块进行编译,方便模块调试,可指定并编译部分模块。模块部分编译可参见使用说明:
./build.sh -h
====USAGE: build.sh modules====
uboot -build uboot
kernel -build kernel
rootfs -build default rootfs, currently build buildroot as default
buildroot -build buildroot rootfs
yocto -build yocto rootfs, currently build ros as default
ros -build ros rootfs
debian -build debian rootfs
pcba -build pcba
recovery -build recovery
all -build uboot, kernel, rootfs, recovery image
cleanall -clean uboot, kernel, rootfs, recovery
firmware -pack all the image we need to boot up system
updateimg -pack update image
save -save images, patches, commands used to debug
default -build all modules
例如单独编译 kernel,只需要执行以下命令:./build.sh kernel
修改BoardConfig.mk
相关路径:Y:\hxy\RK3308\sdk-1.5\device\rockchip\rk3308
边栏推荐
- 从“初代播种”到“落地生花”,广和通在5G商用三年间做了什么?
- Baidu open source ice-ba installation and operation summary
- MapReduce案例之多Map阶段求共同好友
- 剑指 Offer 06. 从尾到头打印链表
- 数字化管理中台+低代码,JNPF开启企业数字化转型的新引擎
- Wechat applet slides to the top
- Vins theory and code explanation 0 -- theoretical basis in vernacular
- 农产品期货如何开户?有没有什么资金条件?
- opencv神经网络库之SVM和ANN_MLP的使用
- How does CRM help enterprises and salespeople?
猜你喜欢

MapReduce之Reduce阶段的join操作案例

ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解2——IMU初始化

从“初代播种”到“落地生花”,广和通在5G商用三年间做了什么?

Technology sharing | quick intercom, global intercom

Beginner pytorch step pit

this和对象原型

云图说|每个成功的业务系统都离不开APIG的保驾护航

opencv#4 手写体识别:自建训练集完美

opencv神经网络库之SVM和ANN_MLP的使用

Unified certification center oauth2 certification pit
随机推荐
Jiabo gp2120tu label printer installation and use tutorial (PC)
Odoo authority management (access authority and record rules) is applied to upgrade role management
Wechat applet slides to the top
探索数据可视化开发平台FlyFish开源背后的秘密!
Summary of methods for point projection onto a plane
Tensorflow actual combat Google deep learning framework version 2 learning summary tensorflow installation
Guanghetong high computing power intelligent module injects intelligence into 5g c-v2x in the trillion market
Hutool Usage Summary (VIP collection version)
Wechat applet color gradient
从“初代播种”到“落地生花”,广和通在5G商用三年间做了什么?
MapReduce案例之排序
Cube 技术解读 | Cube 渲染设计的前世今生
[cloud native | kubernetes] in depth RC, RS, daemonset, statefulset (VII)
Unified certification center oauth2 certification pit
Google X开源抓取机械臂,无需人工标注就能一眼找到目标零件[转]
视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)
如何写一个全局的 Notice 组件?
CAP 6.1 版本发布通告
Quelqu'un a même dit que ArrayList était deux fois plus grand. Aujourd'hui, je vais vous montrer le code source ArrayList.
MapReduce之Reduce阶段的join操作案例