Linux开发环境搭建/编译/打包

来自弘迪在线
Hdadmin讨论 | 贡献2021年12月25日 (六) 10:59的版本 (创建页面,内容为“=编译环境搭建= ==安装Ubuntu操作系统== *同Android部分 ==安装所需组件== *同Android部分 =编译步骤= ==解压源代码== mkdir HDA64_Linux ta…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

编译环境搭建

安装Ubuntu操作系统

  • 同Android部分

安装所需组件

  • 同Android部分

编译步骤

解压源代码

mkdir HDA64_Linux

tar xvf HDA64_Linux.tar.gz -C HDA64_Linux/

源码结构

SPL(底层引导代码):lichee/brandy

U-Boot:lichee/brandy/uboot-xxxx.xx

Linux内核:lichee/linux-3.x

系统配置(env.txt和fex文件等):lichee/tools/pack/chips/sunxiwxpx/config

编译U-Boot

默认无需编译。若要修改U-Boot,编译方法同Android部分。

编译内核

编译Android并打包

在android目录下依次执行以下命令:

$ source build/envsetup.sh

$ lunch

会显示若干选项,输入对应的数字按回车选择对应的选项,最终完成配置。

对于A33(Android 4.4):选 vstar-eng

对于A64(Android 6.0):选 tulip_p2-eng

对于A40i(Android 7.1):选 a40_p1-eng

对于A133(Android 10):选 ceres_c3-eng

$ extract-bsp

$ make -j8

CPU有几线程-j后面的数字就是几。例如使用i5 8250U,是4核8线程的处理器,则这里参数为-j8。若make过程中出现内存不足的情况可尝试参数降为-j4或更低。编译过程大概持续数小时,视电脑配置不同而定。

$ pack

对于A33/A64/A40i:打包好的固件位于lichee/tools/pack下面。

对于A133:打包好的固件位于longan/out下面。

常见问题

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