1、A133平台概述与开发环境搭建
各位同学,咱们直接进入正题。全志A133这颗芯片,我这两年经手了不少项目,从平板到智能家居面板都有它的身影。说白了,它就是一颗为安卓深度定制的“国民级”处理器。今天这一章,我带你把A133的底细摸清楚,再把开发环境一把梭哈搞定。
1.1 全志A133芯片特性与应用场景
A133是一颗四核Cortex-A53处理器,主频最高能到1.8GHz。你可能会问:“现在都八核、A76了,这芯片还够用吗?”嗯,我刚开始也有这个疑问。但实际做下来发现,对于安卓10/12这种系统,它的性能完全够用,关键是——成本控制得非常好。
我给大家列几个关键参数:
| 参数项 | 规格 |
|---|---|
| CPU | 四核 Cortex-A53 @ 1.8GHz |
| GPU | Mali-G31 MP2 |
| 内存支持 | LPDDR3/LPDDR4,最高4GB |
| 显示输出 | MIPI DSI / LVDS / HDMI |
| 视频解码 | H.265 4K@30fps |
| 系统支持 | Android 10 / 12 |
它的应用场景其实很广。我个人接触最多的就是教育平板和智能收银机。为什么?因为A133集成了丰富的显示接口和音频Codec,做交互类产品特别顺手。你想想看,一个方案搞定触控屏、摄像头、Wi-Fi蓝牙,BOM成本能压到很低。
核心优势:全志A133最大的卖点不是性能,而是“够用且便宜”。在安卓BSP开发中,它的驱动生态相对成熟,社区资料也比较多,适合新手入门。
1.2 搭建Ubuntu开发环境
做安卓BSP开发,Ubuntu是标配。我建议你用Ubuntu 18.04或20.04 LTS版本。为什么?因为全志官方SDK大多基于这两个版本验证过。我曾经试过用22.04编译,结果遇到一堆Python和GCC版本兼容问题,折腾了两天才搞定——嗯,这个坑你们就别踩了。
环境搭建分几步走:
- 安装Ubuntu系统——建议分配至少200GB磁盘空间,16GB以上内存。编译安卓源码很吃资源。
- 安装必要依赖包——这是最容易出问题的一步。
- 配置Git和Repo工具——全志源码用Repo管理。
- 安装JDK——安卓10需要OpenJDK 1.8。
依赖包安装命令,我直接给你整理好了:
sudo apt-get update
sudo apt-get install -y git-core gnupg flex bison build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev \
lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
小技巧:我习惯把这条命令保存成一个shell脚本,每次重装系统直接跑一遍。省时省力,还不容易漏包。
1.3 配置交叉编译工具链
交叉编译,说白了就是在你的x86电脑上编译出能在ARM芯片上跑的程序。A133用的是ARMv8-A架构,所以我们需要aarch64的交叉编译器。
全志官方SDK里其实自带了工具链,路径一般在:
prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/
但如果你要单独编译内核或U-Boot,我建议你手动装一个独立的工具链。我个人习惯用Linaro的版本:
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
sudo mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu /opt/
然后配置环境变量:
export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
注意:我曾经犯过一个低级错误——把32位和64位的工具链搞混了。A133是64位芯片,一定要用aarch64的编译器。用arm-linux-gnueabihf编译出来的内核,启动到一半就崩了,查了一天才发现是工具链选错了。
1.4 下载并编译Android源码
全志的安卓源码一般放在GitHub或全志的私有仓库里。你需要先拿到SDK的下载链接。假设你已经有了权限,下载步骤是这样的:
mkdir ~/a133_android
cd ~/a133_android
repo init -u <全志SDK的manifest仓库地址> -b android-10.0
repo sync -j4
repo sync这一步会下载整个安卓源码,大概30-50GB。网速好的话也得等一两个小时。我建议你晚上睡觉前跑,第二天早上起来就下好了。
下载完成后,开始编译:
source build/envsetup.sh
lunch a133_android10-userdebug
make -j8
lunch命令会问你选择哪个产品配置。全志A133一般对应a133_android10-userdebug这个选项。为什么选userdebug?因为它在user版本的基础上保留了root权限和调试工具,开发阶段最实用。
编译时间取决于你的机器配置。我自己的机器是i7-10700 + 32GB内存,第一次全编译大概花了2小时。如果你用虚拟机,时间会更长。
避坑指南:编译过程中如果报错,90%的情况是依赖包没装全。别慌,看错误日志,缺什么装什么。我曾经遇到一个libncurses5-dev没装导致的编译失败,装完就好了。
1.5 验证编译结果
编译成功后,你会看到类似这样的输出:
#### make completed successfully (01:58:32 (hh:mm:ss)) ####
生成的镜像文件在out/target/product/a133/目录下。关键文件有:
boot.img——内核和ramdisksystem.img——系统分区vendor.img——厂商分区(驱动和HAL层)userdata.img——用户数据分区
你可以用全志的PhoenixCard工具把这些镜像烧录到SD卡或eMMC上,然后上电启动。如果能看到安卓开机动画,恭喜你,环境搭建成功了!
个人经验:第一次烧录成功后,我建议你先把boot.img和system.img备份一份。后面改代码改崩了,还能快速恢复。这个习惯帮我省了不少时间。
好了,这一章的内容就到这儿。环境搭好了,后面咱们就能放开手脚做定制了。下一章我会带你深入A133的内核配置,把那些藏在Kconfig里的门道一个个挖出来。
本章要点回顾:
- A133是四核A53芯片,适合中低端安卓设备
- Ubuntu 18.04/20.04是推荐的开发环境
- 交叉编译工具链必须选aarch64版本
- 全志SDK用Repo管理,编译命令是
make -jN - 编译产物在
out/target/product/a133/下