作者
作者:卢冬冬
邮箱:ezrobot@163.com
ƽ̨
系统:Ubuntu 16.04 64bit
板卡:AIO-3399J (4GB LDDR3 16GB eMMC)
注意
如果Ubuntu为虚拟机,则至少需要预留64GB的硬盘空间
内容
1. 准备工作
2. 开始编译
- 下载编译依赖的软件包
新建premake.sh文件,拷贝下面内容到文件中。
#!/bin/bash # 更新系统 sudo apt-get update # 根据官方文档安装Kernel及U-Boot编译需要依赖的软件包 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 # 用以解决编译内核时出现的"scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory"错误 sudo apt-get install libssl-dev # 用以解决编译内核时出现的"/bin/sh: 1: lz4c: not found ..."错误 sudo apt-get install liblz4-tool
然后使用如下命令,增加premake.sh执行权限并运行。
chmod +x premake.sh ./premake.sh
- 解压下载的
linux-sdk.7z文件
# 安装7z支持 sudo apt-get install p7zip-full # 解压linux-sdk.7z 7z x linux-sdk.7z linux-sdk
- 把下载的UBUNTU镜像放到SDK的指定目录
# 解压 tar -xvf ubuntu_16.04_arm64_20190226150448.img.tar.gz # SDK根目录下 mkdir ubunturootfs mv ubuntu_16.04_arm64_20190226150448.img ubunturootfs/ # 修改aio-3399j-ubuntu.mk文件 vim device/rockchip/rk3399/aio-3399j-ubuntu.mk # 把RK_ROOTFS_IMG属性改成ubuntu文件系统镜像的路径(也就是ubuntu_16.04_arm64_20190226150448.img) RK_ROOTFS_IMG=ubunturootfs/ubuntu_16.04_arm64_20190226150448.img
- 开始编译
# 第1步 ./build.sh aio-3399j-ubuntu.mk # 第2步 ./build.sh uboot # 第3步 ./build.sh kernel # 第4步 ./mkfirmware.sh # 第5步 ./build.sh updateimg
如果成功的话,可以在rockdev文件夹下得到update.img文件,用于后面升级使用。