RK3308--固件编译

快捷路径

相关路径:cd work/hxy/RK3308/sdk-1.5/

添加依赖包

若编译遇到报错,可以视报错信息,安装对应的软件包。当时下面一大段依赖包直接添加时,不能实现(可能是因为中间有换行符),后面就一个一个添加了

推荐Linux服务器系统版本

Ubuntu 16.04.2 LTS Linux version 4.4.0-62-generic (buildd@lcy01-30) (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 install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip device-tree-compiler liblz4-tool

buildroot编译所需

#sudo apt-get install libfile-which-perl sed make binutils gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3 git repo texinfo pkg-config cmake tree texinfo

交叉编译工具链介绍

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.imgrk3308_loader_v2.05.133.binuboot.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)

#makemake 出来后能在 buildroot/output 目录下看到)

#./mkfirmware.sh(完成编译后执行 SDK 根目录下的 mkfirmware.sh 脚本生成固件)所有烧写所需的镜像将都会拷贝于 rockdev 目录,如下:

  • boot.img
  • misc.img
  • parameter.txt
  • recovery.img
  • MiniLoaderAll.bin(即 rk3308_loader_v2.05.133.bin)
  • oem.img
  • userdata.img
  • rootfs.img
  • trust.img
  • uboot.img

自动编译

为了提高编译的效率,降低人工编译可能出现的误操作,该 SDK 中集成了全自动化编译脚本,方便固件编译、备份,在控制台上使用以下命令:./build.sh

路径:

  • Y:\hxy\RK3308\sdk-1.5\device\rockchip\common(全自动化编译脚本原始文件)
  • Y:\hxy\RK3308\sdk-1.5\device\rockchip\rk3308

文件:

  • build.sh
  • BoardConfig.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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值