No Description

thead_admin dd3e5a0eb1 update README.md. 7 months ago
resources fff7a64d38 Init document for lichee_pi_4a dev board 9 months ago
LICENSE fff7a64d38 Init document for lichee_pi_4a dev board 9 months ago
README.md dd3e5a0eb1 update README.md. 7 months ago

README.md

T-HEAD Android

本项目为平头哥维护的生态开发板对安卓开源项目(AOSP)支持的仓库,主要包含了生态开发板的板级配置、外设HAL层、内核、u-boot和预编译组件支持,其余组件则可直接从上游AOSP仓库拉取。目前仓库中维护了基于曳影1520 SoC原型的BeagleV Ahead和Lichee Pi 4A开发板相关支持。

平头哥一直致力于RISC-V架构的安卓支持,开源了安卓10和安卓12两个版本的RISC-V架构支持,推动了RISC-V架构支持向安卓主线的合入并贡献了大量补丁提交;目前RISC-V架构已经得到了安卓开源项目的官方支持并作为Tire 1目标进行维护;后续平头哥也会持续贡献AOSP主线、上游三方项目、算法库优化、生态开发板、应用支持和RISC-V标准规范制定,帮助RISC-V的安卓支持在功能、性能、稳定性以及软硬件生态上进一步完善;也欢迎社区开发者参与到RISC-V的安卓支持和生态开发板支持的贡献。

生态开发板

BeagleV Ahead

BeagleV Ahead是Beagle board推出的开发板产品,可以支持安卓、Debian、Ubuntu等多种操作系统;开发板集成了TH1520 SoC,包含4核运行于1.85G的玄铁C910处理器和4TOPS算力的NPU,内置GPU支持OpenGL ES、OpenCL和Vulkan,拥有USB、WiFI/BT、以太网、hdmi、mipi csi/dsi等多种设备接口,可用于视频会议一体机、人脸识别考勤门禁、医学成像等AI边缘计算应用场景。 beaglev

图 1. BeagleV Ahead

更多信息可以访问beagleboard文档页面了解:

https://beaglev-ahead.beagleboard.io/docs/latest/boards/beaglev/ahead/index.html

Lichee Pi 4A EVB

Lichee Pi 4A是Sipeed推出的开发板产品,可以支持安卓、Debian、OpenWrt等多种操作系统;开发板集成了TH1520 SoC,包含4核运行于1.85G的玄铁C910处理器和4TOPS算力的NPU,内置GPU支持OpenGL ES、OpenCL和Vulkan,拥有USB、WiFI/BT、以太网、hdmi、mipi csi/dsi等多种设备接口,可用于视频会议一体机、人脸识别考勤门禁、医学成像等AI边缘计算应用场景。 licheepi4a

图 2. Lichee Pi 4A EVB

更多信息可以访问sipeed官网了解: https://wiki.sipeed.com/licheepi4a

快速上手

在下载安卓开源项目源代码之前,请检查您的工作环境,建议使用具有至少250G磁盘空间、16GB+内存的Linux系统(推荐使用Ubuntu 20.04以上版本)的工作环境, 编译时间和主机的处理器核心数有关,建议使用有较多核心的主机。

将安卓开源项目(主线版本)和开发板支持源代码下载到工作目录,使用固定版本上游代码:

mkdir riscv-android-src && cd riscv-android-src
repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync

使用最新版本上游代码,可能会由于兼容性导致一些编译问题:

mkdir riscv-android-src && cd riscv-android-src
repo init -u https://android.googlesource.com/platform/manifest -b master
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync

若无法连接google源可使用清华源镜像:

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

BeagleV Ahead

完成下载后可以通过以下命令对系统进行构建

source build/envsetup.sh
lunch beaglev_ahead-userdebug
m -j

编译生成文件如下所示,可以将需要的文件拷贝供fastboot使用

$ ls out/target/product/beaglev_ahead/*img
out/target/product/beaglev_ahead/boot.img           out/target/product/beaglev_ahead/super_empty.img        out/target/product/beaglev_ahead/vendor_boot-debug.img
out/target/product/beaglev_ahead/cache.img          out/target/product/beaglev_ahead/system.img             out/target/product/beaglev_ahead/vendor_boot-test-harness.img
out/target/product/beaglev_ahead/dtb.img            out/target/product/beaglev_ahead/system_ext.img         out/target/product/beaglev_ahead/vendor_boot.img
out/target/product/beaglev_ahead/dtbo-unsigned.img  out/target/product/beaglev_ahead/userdata.img           out/target/product/beaglev_ahead/vendor_ramdisk-debug.img
out/target/product/beaglev_ahead/dtbo.img           out/target/product/beaglev_ahead/vbmeta.img             out/target/product/beaglev_ahead/vendor_ramdisk-test-harness.img
out/target/product/beaglev_ahead/product.img        out/target/product/beaglev_ahead/vbmeta_system.img      out/target/product/beaglev_ahead/vendor_ramdisk.img
out/target/product/beaglev_ahead/ramdisk.img        out/target/product/beaglev_ahead/vendor-bootconfig.img
out/target/product/beaglev_ahead/super.img          out/target/product/beaglev_ahead/vendor.img

$ mkdir fastboot
$ cd out/target/product/beaglev_ahead/
$ cp u-boot-with-spl.bin bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img ../../../../../fastboot/

beaglev_connect

图3. BeagleV Ahead 连接

开发板使用主要需要连接电源、串口、usb和显示:

  • 串口主要用于U-boot和内核中的命令交互,可通过底板上Debug的RX和TX连接,波特率为115200
  • USB Device接口主要用于fastboot和adb工具的连接
  • MIPI DSI/HDMI接口可以使用于连接屏幕显示UI界面

对系统进行完整烧写需要按住开发板的USB按键同时按复位键进入boot烧写模式。

之后使用fastboot对系统镜像进行烧写,adb和fastboot工具可以访问安卓开发者网站下载 https://developer.android.com/tools/releases/platform-tools

#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin

#烧录各个分区
#在非boot烧写模式,可以在uboot的命令行中输入命令fastboot usb 0,单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img 
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
 
#初始化metadata和misc分区
fastboot erase metadata 
fastboot erase misc

当完成烧写后重新复位上电进入系统启动模式,可以通过串口/ADB访问系统的命令行,并可通过触屏或外接HDMI显示系统图像界面进行交互。

beaglev_aosp

图4.在BeagleV Ahead上运行AOSP主线

Lichee Pi 4A EVB

完成下载后可以通过以下命令对系统进行构建

source build/envsetup.sh
#若使用Lichee Pi 4A开发板
lunch lichee_pi_4a-userdebug
m -j

编译生成文件如下所示,可以将需要的文件拷贝供fastboot使用

$ ls out/target/product/lichee_pi_4a/*img
out/target/product/lichee_pi_4a/boot.img           out/target/product/lichee_pi_4a/super_empty.img        out/target/product/lichee_pi_4a/vendor_boot-debug.img
out/target/product/lichee_pi_4a/cache.img          out/target/product/lichee_pi_4a/system.img             out/target/product/lichee_pi_4a/vendor_boot-test-harness.img
out/target/product/lichee_pi_4a/dtb.img            out/target/product/lichee_pi_4a/system_ext.img         out/target/product/lichee_pi_4a/vendor_boot.img
out/target/product/lichee_pi_4a/dtbo-unsigned.img  out/target/product/lichee_pi_4a/userdata.img           out/target/product/lichee_pi_4a/vendor_ramdisk-debug.img
out/target/product/lichee_pi_4a/dtbo.img           out/target/product/lichee_pi_4a/vbmeta.img             out/target/product/lichee_pi_4a/vendor_ramdisk-test-harness.img
out/target/product/lichee_pi_4a/product.img        out/target/product/lichee_pi_4a/vbmeta_system.img      out/target/product/lichee_pi_4a/vendor_ramdisk.img
out/target/product/lichee_pi_4a/ramdisk.img        out/target/product/lichee_pi_4a/vendor-bootconfig.img
out/target/product/lichee_pi_4a/super.img          out/target/product/lichee_pi_4a/vendor.img

$ mkdir fastboot
$ cd out/target/product/lichee_pi_4a/
$ mkdir fastboot
$ cp bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img ../../../../../fastboot/

licheepi4a_connect

图5. Lichee Pi 4A EVB 连接

开发板使用主要需要连接电源、串口、usb和显示:

  • 串口主要用于U-boot和内核中的命令交互,可通过底板上 GPIO 的 U0-RX 和 U0-TX连接,波特率为115200
  • USB Device接口主要用于fastboot和adb工具的连接
  • MIPI DSI/HDMI接口可以使用于连接屏幕显示UI界面

对系统进行完整烧写需要按住开发板的boot按键同时按复位键进入boot烧写模式。

之后使用fastboot对系统镜像进行烧写,adb和fastboot工具可以访问安卓开发者网站下载 https://developer.android.com/tools/releases/platform-tools

#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin

#烧录各个分区
#在非boot烧写模式,可以在uboot的命令行中输入命令fastboot usb 0,单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img 
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img

#初始化metadata和misc分区
fastboot erase metadata 
fastboot erase misc

当完成烧写后重新复位上电进入系统启动模式,可以通过串口/ADB访问系统的命令行,并可通过触屏或外接HDMI显示系统图像界面进行交互。

licheepi4a_aosp

图6.在Lichee Pi 4A上运行AOSP主线

改动列表

2023/07/06

  • 发布 BeagleV Ahead 开发板 Alpha版本支持
  • 发布 Lichee Pi 4A EVB Alpha版本支持

贡献

本项目使用Pull Requests接收外部贡献,可参考以下流程:

  1. 在个人账户中Fork需要修改的代码仓库。
  2. 创建一个对应于改动的开发分支。
  3. 用个人账户下的代码仓库替换原始仓库来源和修订版本:

    - <project path="device/thead/common" name="device-thead-common" revision="alpha_0_2_0" remote="thead" />
    + <project path="device/thead/common" name="device-thead-common" revision="alpha_0_2_0_xxx_support" remote="your_personal_remote" />
    
  4. 所有新工作都应基于相应的开发分支。

  5. 创建提交时需要尽量保证改动的独立和完整,并填写适当的提交消息。

  6. 创建改动时最好包含相关单元测试结果。

  7. 将开发分支推送到你在 Gitee 上的个人存储库 Fork。

  8. 创建一个针对相应开发分支的Gitee Pull Request,若该提交为bug修复请将该提交关联至问题跟踪器中的问题。

相关链接

本项目问题跟踪器(生态板支持安卓相关问题请提交至该跟踪器):

https://gitee.com/thead-android/thead-android/issues

平头哥其他开源软件项目可以通过以下链接进行访问:

T-HEAD Yocto Linux: https://gitee.com/thead-yocto

YoC Open: https://gitee.com/yocop

若希望了解更多TH1520原形及无剑600平台信息可以访问:

https://xuantie.t-head.cn/product/wujian/4080405462988689408

若希望了解更多RISC-V架构安卓支持的动态,可以订阅RISC-V Android SIG邮件列表,参与社区讨论:

https://lists.riscv.org/g/sig-android

若对RISC-V架构的安卓支持有任何疑问,可以提交问题至Android-riscv64的通用问题跟踪:

https://github.com/google/android-riscv64/issues

许可证

我们不需要任何正式的版权转让或贡献者许可协议。任何有意向本仓库提交的贡献都被认为是按照Apache许可证2.0条款提供的。有关详细信息请参见LICENSE文件。

关于我们

该仓库由阿里巴巴平头哥维护。

若需要技术支持可以通过OCC提交工单: https://occ.t-head.cn/people/workorder-submit

也可以通过以下方式联系我们: 邮箱: occ_thead@service.alibaba.com