xuantie_riscv 08de016202 update README.md. | 2 months ago | |
---|---|---|
resources | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 2 months ago |
本项目为达摩院玄铁团队维护的生态开发板对安卓开源项目(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是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边缘计算应用场景。
图 1. BeagleV Ahead
更多信息可以访问beagleboard文档页面了解:
https://beaglev-ahead.beagleboard.io/docs/latest/boards/beaglev/ahead/index.html
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边缘计算应用场景。
图 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/'
完成下载后可以通过以下命令对系统进行构建
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/
图3. BeagleV Ahead 连接
开发板使用主要需要连接电源、串口、usb和显示:
对系统进行完整烧写需要按住开发板的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显示系统图像界面进行交互。
图4.在BeagleV Ahead上运行AOSP主线
完成下载后可以通过以下命令对系统进行构建
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/
图5. Lichee Pi 4A EVB 连接
开发板使用主要需要连接电源、串口、usb和显示:
对系统进行完整烧写需要按住开发板的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显示系统图像界面进行交互。
图6.在Lichee Pi 4A上运行AOSP主线
2023/07/06
本项目使用Pull Requests接收外部贡献,可参考以下流程:
用个人账户下的代码仓库替换原始仓库来源和修订版本:
- <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" />
所有新工作都应基于相应的开发分支。
创建提交时需要尽量保证改动的独立和完整,并填写适当的提交消息。
创建改动时最好包含相关单元测试结果。
将开发分支推送到你在 Gitee 上的个人存储库 Fork。
创建一个针对相应开发分支的Gitee Pull Request,若该提交为bug修复请将该提交关联至问题跟踪器中的问题。
本项目问题跟踪器(生态板支持安卓相关问题请提交至该跟踪器):
https://gitee.com/thead-android/thead-android/issues
达摩院玄铁团队其他开源软件项目可以通过以下链接进行访问:
XuanTie Yocto Linux: https://gitee.com/thead-yocto
YoC Open: https://gitee.com/yocop
若希望了解更多TH1520原形及无剑600平台信息可以访问:
https://www.xrvm.cn/product/wujian/600
若希望了解更多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文件。
该仓库由阿里巴巴达摩院玄铁团队维护。
若需要技术支持可以通过玄铁官网提交工单: https://www.xrvm.cn/people/workorder-submit
也可以通过以下方式联系我们: 邮箱: xuantie@service.alibaba.com