- cp aosp/out/target/product/ice910/system.img aosp/out/target/product/ice910/vendor.img userdata.img fastboot/ |
玄铁910开发板介绍
玄铁910开发板是一款T-Head 研发的高性能 SoC 开发板,以丰富的功能与外设,适合多种业务场景。
·丰富的常见外设及接口
·基于 OpenGL ES 的 3D 图形处理能力
·先进的视觉AI处理器
·音视频多媒体处理器
玄铁910开发板连接说明
先按照系统连接图连接好开发板:
·设备电源:DC12V 输入,连接 12V 直流电源。
·CCT 烧写:CCT 烧写串口,J5 1-3 PIN,分别为RX、TX、GND,使用 thead-tools 或CCT 工具烧写 uboot 镜像时使用的通信端口。
·Console控制:Console 串口,J169 1-3 PIN,分别为RX、TX、GND,log 输出,控制台时使用的通信端口。
·网络接口:千兆以太网,连接 RJ45 千兆网线,10M/100M/1000M 自适应。
CCT模式烧写系统连接图
用于烧写 u-boot 镜像:
尤其注意串口的连接 :
·有 2个串口,一个用来打印,一个用来烧录 u-boot 镜像
·连接的方式是 绿,白,黑
自启动模式系统连接图
用于烧写 boot、安卓系统相关镜像,以及操作安卓系统:
BOOT SEL 拨码 : BOOT SEL 拨码置为 ON、OFF、OFF、OFF,eMMC 启动模式。
烧写安卓镜像
对于第一次使用玄铁910开发板的开发者,需要根据以下几个步骤完成开发板的镜像烧写:
·第一步: 烧录前准备:安装烧录工具(thead-tools、fastboot)、检查开发板与电脑的串口连接情况
·第二步: 编译玄铁910开发板的AOSP镜像或下载镜像文件包
·第三步: 通过 CCT 将 u-boot 烧写开发板的 eMMC 存储器
·第四步: 使用 u-boot、fastboot等工具,烧写安卓镜像
·第五步: 重启开发板,即可以进入安卓
第一步:安装工具
如果已经安装过 thead-tools, adb与 fastboot工具 可以跳过第一步。
thead-tools
通过pip 命令来安装 yoctools 到你的系统中,yoctools支持 python2.7+、python3.6+,建议使用python2 作为默认 python。
- sudo pip install thead-tools
- # 如果使用官方地址下载过慢,可使用国内清华镜像源加速
- sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple thead-tools
如果未找到 pip 命令,请先安装 pythonp-pip,如:sudo aptinstall python-pip。
adb与fastboot
AOSP工程下已经自带adb、fastboot等相关工具,不需要额外安装。若不使用AOSP工程,发行版可通过包管理器安装 fastboot 工具,如 ubuntu下通过apt工具进行安装:
- sudo apt install adb
- sudo apt install fastboot
或从官网下载二进制文件,下载地址:https://developer.android.com/studio/releases/platform-tools 。
第二步:下载镜像
- wget "https://thead.oss-cn-hangzhou.aliyuncs.com/android_images.tar.bz2"
- tar xf android_images.tar.bz2
- cd android_images
- ls -l
需要用到的,是如下五个文件:
- -rw-r--r-- 1 root root 23975004 Jan 13 14:24 boot.ext4
- -rw-r--r-- 1 root root 683602236 Jan 13 14:19 system.img
- -rw-r--r-- 1 root root 487692 Jan 5 10:04 userdata.img
- -rw-r--r-- 1 root root 26996812 Jan 13 14:19 vendor.img
- -rw-r--r-- 1 root root 599192 Dec 20 16:39 u-boot-with-spl.bin
·u-boot-with-spl.bin: uboot 引导镜像文件
·boot.ext4: boot 分区文件系统,ext4格式,包含 fw_jump.bin、uImage、ice_evb_c910.dtb
·system.img: 安卓系统分区,ext4 格式
·userdata.img: 安卓用户分区,ext4 格式
·vendor.img: 安卓供应商分区,ext4 格式
u-boot-with-spl.bin以外的镜像可以参考工程构建-玄铁910开发板镜像拷贝与打包章节由aosp-riscv工程编译生成。
第三步:烧写 uboot
查看电脑串口
参考 玄铁910开发板介绍-硬件连接-CCT模式烧写系统连接图 部分完成开发板的连接,通过 CCT 烧写 uboot 需要使用开发板的 CCT 烧写串口,通过命令 thead cct uart 命令看到电脑上安装的串口列表,并确认电脑上串口与开发板串的对应关系:
- root[url=home.php?mod=space&uid=4535]@linux[/url] > thead cct uart
- uart device list:
- /dev/ttyUSB0 - USB-Serial Controller
- /dev/ttyUSB1 - USB-Serial Controller
查找开发板存储器列表
通过命令:thead cct -u /dev/ttyUSB0 list 可以查看开发板支持的烧写存储器列表,如下:
- root@linux > thead cct -u /dev/ttyUSB0 list
- Wait .....................
- CCT Version: 2
- memory device list:
- dev = ram0 , size = 256.0KB
- dev = emmc0 , size = 2.0MB
- dev = emmc1 , size = 2.0MB
- dev = emmc2 , size = 3.7GB
注意:使用该命令时,先确定串口的连接是否正确,运行命令前先关闭开发板电源后再运行该命令,等到出现Wait .......... 信息后再开启开发板电源,正常情况下电源开启后在1秒内会出现如下信息:
- CCT Version: 2
- memory device list:
- dev = ram0 , size = 256.0KB
- dev = emmc0 , size = 2.0MB
- dev = emmc1 , size = 2.0MB
- dev = emmc2 , size = 3.7GB
如果未出现上述打印信息,同时电脑是接有多个串口,请更新另一个串再尝试一次,如:thead cct -u /dev/ttyUSB1 list。如果所有串口都尝试后均未出现上述打印机信息,请检查串口与开发板的连接是否符合,详细连接参见:玄铁910开发板接线部分。
烧写 uboot
通过命令:thead cct -u /dev/ttyUSB0 download -f u-boot-with-spl.bin -d emmc0 将 uboot 烧写到 eMMC 的 0号分区,烧写过程信息如下:
- CCT Version: 2
- Send file 'u-boot-with-spl.bin' to 21:0 ...
- Writing at 0x00009800... (3%)
待打印File u-boot-with-spl.bin download success.后,烧写成功后,可以通过开发板的 Console 串口看到正确的启动信息:
- U-Boot 2020.01-g6cc5d59b0d (Dec 20 2020 - 08:37:37 +0000)
- CPU: rv64imafdcvsu
- Model: T-HEAD c910 ice
- DRAM: 4 GiB
- GPU ChipDate is:0x20151217
- GPU Frequency is:500000KHz
- NPU ChipDate is:0x20190514
- DPU ChipDate is:0x20161213
- MMC: mmc0@3fffb0000: 0
- Loading Environment from MMC... OK
- In: serial@3fff73000
- Out: serial@3fff73000
- Err: serial@3fff73000
- Net:
- Warning: ethernet@3fffc0000 (eth0) using random MAC address - e6:e2:ea:7a:30:ce
- eth0: ethernet@3fffc0000
- Hit any key to stop autoboot: 1
第四步:烧写安卓镜像
当完成以上步骤初次烧写之后,后续开发过程中通常只需要按照本章节描述就能完成系统镜像的更新。后续开发板的连接需要调整为玄铁910开发板介绍-硬件连接-CCT模式烧写系统连接图章节所示。
开发板 uboot 配置
开发板重新开机后进入 uboot 命令模式,当串口出现如下提示时,按任键即可进行命令模式。
- Warning: ethernet@3fffc0000 (eth0) using random MAC address - a6:7d:bc:02:7d:4d
- eth0: ethernet@3fffc0000
- Hit any key to stop autoboot: 3
通过 gpt 命令配置 eMMC 分区大小,命令如下:
- # 恢复默认值
- env default -a
- # 配置 eMMC 分区
- setenv partitions "name=sparse,size=2031kb"
- setenv partitions "$partitions;name=bootpart,size=60MiB"
- setenv partitions "$partitions;name=system,size=1500MiB"
- setenv partitions "$partitions;name=vendor,size=100MiB"
- setenv partitions "$partitions;name=cache,size=256MiB"
- setenv partitions "$partitions;name=userdata,size=-"
- gpt write mmc 0 $partitions
- # 配置网络
- # !!!!!!!!!!!!!!!!!!!! 特别注意 !!!!!!!!!!!!!!!!!!!!!!!!
- # 如果网络中接入多块玄铁910开发板,每块开发板的 ethaddr 要唯一
- setenv ethaddr 00:a0:a0:a0:a0:a1 # 如果网络中接入多块玄铁910开发板,ethaddr 要唯一
- setenv ipaddr 192.168.1.100 # 开发板 IP 地址
- setenv netmask 255.255.255.0
- ping 192.168.1.1 # ping 主机的IP,检验网络是否正常
- # 配置内核启动参数 bootargs
- setenv bootargs "console=ttyS0,115200"
- setenv bootargs "$bootargs root=PARTUUID=$uuid_rootfs rootfstype=ext4"
- setenv bootargs "$bootargs earlycon=sbi rdinit=/init security=selinux"
- setenv bootargs "$bootargs crashkernel=256M-:128M c910_mmu_v1 printk.devkmsg=on"
- setenv bootargs "$bootargs androidboot.selinux=permissive"
- setenv bootargs "$bootargs androidboot.hardware=ranchu"
- setenv bootargs "$bootargs androidboot.super_partition"
- # 配置 bootcmd
- setenv bootcmd "ext4load mmc 0:2 $opensbi_addr fw_jump_0G.bin"
- setenv bootcmd "$bootcmd;ext4load mmc 0:2 $dtb_addr ice_evb_c910.dtb"
- setenv bootcmd "$bootcmd;ext4load mmc 0:2 $kernel_addr uImage"
- setenv bootcmd "$bootcmd;ext4load mmc 0:2 0x02000000 ramdisk.img"
- setenv bootcmd "$bootcmd;bootm $kernel_addr - $dtb_addr"
- # 环境变量保存到 eMMC 中
- saveenv # 将配置保存到 eMMC,下次启动时无需再配置
- # 开启fastboot模式
- fastboot udp
烧写镜像
在电脑上使用使用 fastboot 命令完成镜像烧写,192.168.1.100 是开发板的运行 u-boot 时配置的 IP 地址,使用 fastboot 命令前确认电脑与开发板在同一个子网。可在板子上使用 ping 192.168.1.1 检查网络情况。
- # PC 烧写镜像
- fastboot -s udp:192.168.1.100 -S 5M flash bootpart boot.ext4
- fastboot -s udp:192.168.1.100 -S 5M flash system system.img
- fastboot -s udp:192.168.1.100 -S 5M flash vendor vendor.img
- fastboot -s udp:192.168.1.100 -S 5M flash userdata userdata.img
第五步:重启进入安卓
复位玄铁910开发板,自动进入安卓界面。
玄铁910开发板可以通过Micro USB 3.0与上位主机相连,主机侧可以执行adb shell进入命令行交互窗口查看系统信息或控制系统运行。调试常用命令如下:
- 打印系统日志:
- logcat
- 查看系统服务:
- service list
- 查看应用相关信息:
- dumpsys
- 查看系统prop配置:
- getprop
- 获取当前输入事件
- getevent
- 启动应用:
- am start
- 发送按键值:
- input keyevent
- gdbserver调试native应用程序:
- gdbserver64 127.0.0.1:7000 native_app_name
本文转自平头哥芯片开放社区(occ),更多详情请点击 https://occ.t-head.cn/development/software?channelName=1 。