本 SDK 开发环境是在 Ubuntu 上开发测试的。我们推荐使用 Ubuntu 16.04 的系统进行编译。其他的 Linux 版本可能需要对软件包做相应调整。 除了系统要求外,还有其他软硬件方面的要求。
64 位系统,硬盘空间大于 40G。如果您进行多个构建,将需要更大的硬盘空间。
Ubuntu 14.04 软件包安装:
Ubuntu 16.04 软件包安装
安装 ARM 交叉编译工具链和编译内核相关软件包
提供两种方式给用户下载:1:Github上同步SDK;2:下载源码包(推荐国内用户使用)
下载repo工具:
初始化仓库:
下载repo工具:
下载链接:Linux-SDK GPT源码包 https://pan.baidu.com/s/1UEV7Hmpf4Dj6rbA_MI_XEw(提取码:f4hg)
拷贝到linux文件夹下
解压文件:7zxlinux-sdk-3328.7z
注意:解压完之后,用户可能会疑惑看不到文件。在linux/目录运行ls-a命令,有.repo/目录,这是我们的仓库。
注意:从Github上同步SDK时,部分国内用户会有不稳定的现象,这就需要多次运行同步命令reposync-c才可以
目录
在device/rockchip/rk3328/目录下,选择对应的板型的配置文件
本文例子:确定选用rk3328/aio-rk3328-jd4.mk
aio-rk3328-jd4.mk 相关配置介绍:
重点:
源码中默认的Linux rootfs是buildroot,如果rootfs使用buildroot,跳过此步,如果用户需要使用Ubuntu,需要通过以下步骤来配置:
以Ubuntu18.04为例
1、 下载根文件系统:ubuntu18.04 根文件系统(64位) https://pan.baidu.com/s/1lwtFtQqIRbXq-6JSiDBXYg(提取码:yo4z),放到SDK路径下;
2、 该文件为7z压缩包,解压该文件;
3、 完成上述后,得到rk3328-ubuntu1804-arm64-rootfs.img(2.6G),拷贝根文件系统到rootfs目录下;
4、 在device/rockchip/rk3328/aio-rk3328-jd4.mk中, 将“# rootfs image path”修改为:
运行完上述脚本后,在device/rockchip/目录下,生成.BoardConfig.mk 软链接 device/rockchip/rk3328/aio-rk3328-jd4.mk
完全编译运行如下命令,包含 kernel 、uboot、buildroot、recovery。 如果用户使用buildroot,可以使用完全编译。如果用户使用Ubuntu系统,则不需要使用完全编译。
注意:该脚本默认编译buildroot根文件系统,若用户需要用的根文件系统是Debian或者Ubuntu16.04时,请!先!将!对应的根文件系统准备好,不然在执行该build.sh脚本时,会在整理分区镜像、打包固件时出错,这部分操作在以下的“部分编译”中“编译rootfs”有详细说明,按照操作执行即可!
build.sh脚本运行完成后,会将分区镜像和统一固件update.img放在rockdev/目录下,同时创建IMAGE/目录备份。
本SDK支持三种根文件系统,分别是buildroot、Debian、Ubuntu;
Buildroot
编译 Buildroot 环境搭建所依赖的软件包安装命令如下:
搭建环境完成后,编译buildroot,执行如下命令:
Debian
编译 Debian 环境搭建所依赖的软件包安装命令如下:
搭建环境完成后,编译Debian,按照自身需求,执行如下命令:
完成上述后,会在rootfs目录下,生成linaro-rootfs.img.修改device/rockchip/.BoardConfig.mk中的根文件系统路径即可,参考配置前编译中的“配置Rootfs”.
Ubuntu
以Ubuntu18.04为例
1、 下载根文件系统:ubuntu18.04 根文件系统(64位) https://pan.baidu.com/s/1lwtFtQqIRbXq-6JSiDBXYg(提取码:yo4z),放到SDK路径下;
2、 该文件为7z压缩包,解压该文件;
3、 完成上述后,得到rk3328-ubuntu1804-arm64-rootfs.img(2.6G),拷贝根文件系统到rootfs目录下;
recovery分区在Ubuntu系统中不会用到,若有需要,可运行如下命令:
parameter.txt文件中包含了固件的重要信息,如以rk3288为例: 路径:device/rockchip/rk3328/parameter-ubuntu.txt
CMDLINE属性是我们关注的地方,以uboot为例 0x00002000@0x00004000(uboot)中0x00004000为uboot分区的起始位置0x00002000为分区的大小,后面相同,用户可以根据自己需要增减或者修改分区信息,但是请最少保留uboot,trust,boot,rootfs分区,这是机器能正常启动的前提条件。
分区介绍:
在parameter.txt文件中,仅仅保留了5个不可缺少的分区。
注意:若发现根文件分区大小异常时,执行如下命令:
package-file文件用于打包统一固件时确定需要的分区镜像和镜像路径,同时它需要与parameter.txt文件保持一致。 路径tools/linux/Linux_Pack_Firmware/rockdev/目录下,以package-file为例:
整理分区镜像到rockdev/目录下
提示:在运行./mkfirmware时,可能会遇到如下报错:
表示recovery分区没有找到,类似的如oem.img、userdata.img,上文提到,这些属于可省略分区镜像,可以不用理会。
整合统一固件
注意:每次打包固件前,需要运行mkfirmware.sh脚本更新rockdev/下的分区镜像
Windows:AndroidTool_v2.58
Linux:Upgrade_tool_1.34
下载 AndroidTool2.58后,解压,运行里面的 AndroidTool.exe(注意,如果是 Windows 7/8,需要按鼠标右键,选择以管 理员身份运行),如下图:
前提:设备烧写固件或分区镜像时,需处于Loader模式或Maskrom模式,参考设备模式
烧写统一固件 update.img 的步骤如下:
切换至”升级固件”页。
按”固件”按钮,打开要升级的固件文件。升级工具会显示详细的固件信息
按”升级”按钮开始升级。
如果升级失败,可以尝试先按”擦除Flash”按钮来擦除 Flash,然后再升级。
注意:如果你烧写的固件loader版本与原来的机器的不一致,请在升级固件前先执行”擦除Flash”。
烧写分区映像时,请使用对应SDK下的FFTools/AndroidTool.rar烧写。步骤如下:
切换至”下载镜像”页。
勾选需要烧录的分区,可以多选。
确保映像文件的路径正确,需要的话,点路径右边的空白表格单元格来重新选择。
点击”执行”按钮开始升级,升级结束后设备会自动重启。
下载Upgrade_tool1.34.zip后,解压,将upgrade_tool拷贝到/usr/local/bin/目录下,操作如下:
使用upgrade_tool工具烧写:
使用SDK脚本烧写:
使用upgrade_tool工具烧写:
使用脚本烧写:
说明:rkflash.sh该脚本文件的原理便是使用upgrade_tool工具烧写
全部0条评论
快来发表一下你的评论吧 !