环境安装:
sudo apt-get update -y && sudo apt-get install -y openjdk-8-jdk python git-core gnupg flex bison gperf build-essential \
zip curl liblz4-tool zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip mtools u-boot-tools \
htop iotop sysstat iftop pigz bc device-tree-compiler lunzip \
dosfstools vim-common parted udev libssl-dev python3
sudo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo && \
sudo chmod +x /usr/local/bin/repo && \
which repo
sudo apt-get install -y python-pip && pip install pycrypto
sudo apt-get install -y lzop swig
下载源码
$ repo init -u https://github.com/radxa/manifests.git -b rockchip-android-10 -m rockchip-q-release.xml
$ repo sync -d --no-tags -j4
编译
cd ${source-dir}
./build-rockpi-4b.sh
单步编译
- uboot
$ cd u-boot $ ./make.sh rockpi4b $ cd -
- linux
$ cd kernel $ make ARCH=arm64 rockchip_defconfig android-10.config rockpi_4b.config $ make ARCH=arm64 rk3399-rockpi-4b.img -j8 $ cd -
- aosp
$ source build/envsetup.sh $ lunch RockPi4B-userdebug $ make -j8
编译时问题
- 编译报错
ninja: error: 'commit_id.xml', needed by 'out/target/product/rk3288/vendor/commit_id.xml', missing and no known rule to make it
解决方法:
+++ b/device/rockchip/common/BoardConfig.mk
@@ -338,7 +338,7 @@ BOARD_PPPOE_PASS_CTS ?= false
BOARD_HS_ETHERNET ?= true
# Save commit id into firmware
-BOARD_RECORD_COMMIT_ID ?= true
+BOARD_RECORD_COMMIT_ID ?= false
# no battery
BUILD_WITHOUT_BATTERY ?= false
2.编译报错
error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
解决方法
sudo apt-get install libncurses5 libncurses5-dev
生成镜像
$ ln -s RKTools/linux/Linux_Pack_Firmware/rockdev/ rockdev
$ ./mkimage.sh
$ cd rockdev
$ ln -s Image-RockPi4B Image
$ ./mkupdate_rk3399.sh
烧录方法
- Linux
sudo chmod 777 /dev/<Your TF card device>* umount /dev/<Your TF card device>* dd if=rockdev/Image/rockpi-4b-*-gpt.img of=/dev/<Your TF card device> bs=4M status=progress sync