最后还是安装了双系统,在Ubuntu16.04下编译的,以下的解决方法依然后效;/(ㄒoㄒ)/~~
######################黄金分割线###########################
Virtual Machine:Vmware 14,
Linux:Ubuntu16.04,
Platform:RK3399
OS:Android7.1
因需要资源比较多,最好在linux系统下进行编译,如果是在Windows下的虚拟机,内存、硬盘空间需要较大。
我这边是在Windows下的虚拟机开发的,下面是我搭建环境过程中遇到的一些问题和解决方法:
SSH公钥的生成
最好不要在sudo、root的情况下进行生成,如果是这样生成的话,通过chmod、chown进行修改权限,达到下图相似的权限。
本人是重新搭了环境,所以类似于多人共用一个SSH公钥
- 通过命令随便生成一个公钥,为了创建 .ssh文件夹;然后将刚刚创建的公钥删除掉,将发送给Rockchip的公钥放到 .ssh文件夹
- 然后使用key-chain管理秘钥(本步应该不需要)
- 加载秘钥 (如果无法repo,那就重启下)
$ ssh-add ~/.ssh/xxx
下载和解压SDK
我是直接解压SDK初始压缩包,没有直接从云端repo下
- 需要先安装一些软件包
$ sudo apt update $ sudo apt install git repo
- 解压和更新
按照上述命令检出源码,最后一步会更新代码库,所以第一步要将秘钥弄好,否则无法进行下一步;
进行uboot、kernel和Android的编译
- 安装openjdk-8-jdk和配置环境变量
$ sudo apt install openjdk-8-jdk
可以运行工程目录下的javaenv.sh,
$ source javaenv.sh
也可以在/etc/profile下更改、运行export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar $ source /etc/profile
- 安装编译所需要的库(估计很多不需要)
$ sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev libesd0-dev 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 libgl1-mesa-dev libxml2-utils xsltproc unzip m4 lib32z-dev ccache
内存问题
因为是用虚拟机弄得,资源上没有那么多,会导致一些问题出现,主要是内存问题,如果硬件支持,可以加大虚拟机内存的使用量
-
修改虚拟机内存容量
-
找到并打开/prebuilts/sdk/tools/jack-admin
prebuilts 就在解压目录下
例如下面代码处加入-Xmx4g或者-Xmx4096M,这是修改编译时的内存空间,根据你的虚拟机配置内存进行相应的修改,下面两个只需要在其中一处加入就可以了,不需要两处vim xxx/prebuilts/sdk/tools/jack-admin JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 - XX:+TieredCompilation -Xmx4g}" JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096M -cp $LAUNCHER_JAR $LAUNCHER_NAME" :wq (保存) prebuilts/sdk/tools/jack-admin kill-server prebuilts/sdk/tools/jack-admin start-server
修改out/host/linux-x86/bin/jack-admin,应该也是一样的,这个是linux的
make -j[num],加快编译速度,
- 虚拟机的话make就好o(╥﹏╥)o
- 修改虚拟机处理器数量
num与一般是以CPU的核心数目的两倍为宜
make -j4,让make最多允许4个编译命令同时执行