“Linux开发环境搭建/编译/打包”的版本间的差异

来自弘迪在线
跳转至: 导航搜索
编译内核
第27行: 第27行:
 
$ ./build.sh
 
$ ./build.sh
  
==编译Android并打包==
+
==定制rootfs并打包固件==
在android目录下依次执行以下命令:
 
  
$ source build/envsetup.sh
+
打包好的固件位于lichee/tools/pack下面。
 
 
$ 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下面。
 
  
 
=常见问题=
 
=常见问题=

2021年12月25日 (六) 11:02的版本

编译环境搭建

安装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部分。

编译内核

直接执行下列命令:

$ ./build.sh

定制rootfs并打包固件

打包好的固件位于lichee/tools/pack下面。

常见问题

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