查看“固件构建指南——环境搭建与编译步骤”的源代码
←
固件构建指南——环境搭建与编译步骤
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=编译环境搭建= ==安装Ubuntu操作系统== 建议装在本机(编译速度快),没有条件的可以装在虚拟机中。 推荐版本:16.04LTS(其他版本也可,但可能会存在软件包源依赖问题导致配置步骤和预期效果与本文不符,有能力的用户可以尝试!) ==安装所需组件== 在终端窗口内输入下列命令: sudo apt-get install bison build-essential ccache curl flex gcc-multilib g++-multilib git gnupg gperf lib32ncurses5-dev sudo apt-get install lib32z1-dev libc6-dev-i386 libgl1-mesa-dev libreadline6-dev:i386 libx11-dev:i386 libxml2-utils m4 sudo apt-get install python-markdown tofrodos unzip x11proto-core-dev xsltproc zip zlib1g-dev:i386 bc u-boot-tools ==安装JDK== 对于A33 Android 4.4系统:安装Oracle JDK 1.6 对于A33/A64 Android 6.0系统:安装OpenJDK 7 对于A40i Android 7.1/A133 Android 10系统:安装OpenJDK 8 ==降级make版本== =编译步骤= ==解压源代码== 解压Lichee(Linux BSP)部分到当前目录: $ tar -zxvf lichee.tar.gz -C . 解压Android部分到当前目录: $ tar -zxvf android.tar.gz -C . (对于A133:Linux BSP更名为Longan,注意辨别!) ==源码结构== 对于A33/A64/A40i: SPL(底层引导代码):lichee/brandy U-Boot:lichee/brandy/uboot-xxxx.xx Linux内核:lichee/linux-3.x 系统配置(env.txt和fex文件等):lichee/tools/pack/chips/sunxiwxpx/config Android源码:android 对于A133: SPL(底层引导代码):longan/brandy U-Boot:longan/brandy/uboot-xxxx.xx Linux内核:longan/kernel/linux-4.9 系统配置(env.txt和fex文件等):longan/device/config/chips/a100/config Android源码:android ==编译U-Boot== 默认无需编译。若要修改U-Boot,编译方法如下: 在brandy/uboot-xxxx.xx目录下执行: 对于A33:make distclean & make sun8iw5p1 -j16 对于A64:make distclean & make sun50iw1p1_config & make -j16 对于A40i:make distclean & make sun8iw11p1_config & make -j16 对于A133:make distclean & make sun50iw10p1_config & make -j16 (编译生成的相关bin文件会自动拷贝到打包目录下) ==编译Lichee/Longan== 初次编译请先配置编译选项,在lichee/longan目录下执行: $ ./build.sh config 会依次显示若干选项,输入对应的数字按回车选择对应的选项,最终完成配置。 对于A33:依次选 对于A64:依次选 0.sun50iw1p1 -> 0.android -> 0.linux-3.10 -> 2.p2 对于A64:依次选 0.sun8iw11p1 -> 1.androidm -> 0.linux-3.10 -> 0.a40-p1 对于A133:依次选 0.android -> 0.a100 -> 2.c3 ==编译Android并打包== =常见问题= A:Android 6.0部分make时遇到“unsupported reloc 42 (43) against global symbol art::Runtime::instance_”错误 Q:问题的原因在于AOSP中的预编译好的ld程序存在bug,我们使用Ubuntu系统默认的ld来替换它。具体步骤如下: 将aosp中的ld改名: $ cd prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/x86_64-linux/bin $ mv ld ld.old 使用soft link,链接到全局ld: $ ln -s /usr/bin/ld.gold ld
返回至
固件构建指南——环境搭建与编译步骤
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
工具
链入页面
相关更改
特殊页面
页面信息