最近主动失业,在家无聊,想搞块开发板玩玩android 9.0系统,但最后只在闲鱼上入了块firefly的3399开发板,最新系统8.1,不过也差不多。
以前没玩过rk的平台,要网上找了些资料,现在写下来记录一下。
代码下载
下载地址:http://www.t-firefly.com/doc/download/3.html
左边选择Firefly-RK3399,想要的资料就都在里面了。
然后是漫长的下载时间。
解压代码
firefly RK3399 android 8.1的代码下载下来,是两个7z文件和两个校验文件。
放好文件后,解压这两个7z文件:
7z x rk3399.7z.001 -r -o./
开始还疑惑有几个分割的7z文件如何解压,原来只用解压第一个,后面的就自动被解压了。
安装工具
安装python,ubuntu 20.04默认的是python3,编译时需要python2,所以需要安装一下旧的python,不然boot和kernel都编译不过。
sudo apt install python
在编译安卓的过程中,会提示有一个libncurses.so.5找不到:
error while loading shared libraries: libncurses.so.5
这是工具没有安装完整的原因,网上通常的解决方法是:
sudo apt install libncurses5:i386
但我试了好像不行,最后解决办法是:
udo apt install git gperf make zlib1g-dev:i386 zip git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev g++ g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
sudo apt -y install gitg git-gui lzop zlib1g-dev screen indent lftp lvm2 git-email enca vim elinks sshfs bonnie++ doxygen gzip joe libncurses5-dev libncurses5 libgmp3-dev libmpfr-dev libmpc-dev libc6-dev-i386 build-essential gawk procmail libssl-dev dos2unix libc++-dev autoconf automake libtool pkg-config
sudo ln -s /usr/lib/x86_64-linux-gnu/crt*.o /usr/lib
sudo ln -sf /lib/i386-linux-gnu/libncurses.so.5 /usr/lib32/libncurses.so
sudo ln -sf /lib/x86_64-linux-gnu/libncurses.so.5 /usr/lib/libncurses.so
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/libz.so
一并把其它工具都安装了,如果提示有错误,去掉没有的包就行了。
编译代码
代码编译就按firefly提供的方法就行了,参考网址:
http://wiki.t-firefly.com/zh_CN/ROC-RK3399-PC/compile_android8.1_firmware.html
6700K 老CPU 编译了一个多小时终于编译完成。后面再看如何烧录了。
总结
RK的平台编译环境搭建还是相对简单的,不像之前MTK的TV平台,搞起来真让人吐血,还只能用ubuntu 14.04,都什么年代了,各种打包不开源,代码风格非android标准等等等等,不说了。