2. Kria开发环境搭建与工具链配置

Kria SOM(System-on-Module)虽然出厂即带可启动的 Ubuntu 桌面镜像,但要真正进入“工业 AI 推理系统开发”的状态,必须先把主机侧工具链和板卡侧运行环境打通。本节围绕 Vitis Unified Software Platform、Vivado、PetaLinux、Kria App Store 以及 Ubuntu 桌面镜像烧录与远程开发环境配置展开,目标是让读者理解各工具在整条开发链路中的位置,并能独立完成一次可用的环境搭建。

一、先厘清工具链的分工

Kria 的开发不是单一工具能覆盖的,它由几个层次组成。最底层是硬件平台:KV260、KR260 等载板与 K26 SOM 的组合,其可编程逻辑(PL)部分需要 Vivado 来设计、综合、实现并导出 XSA(Xilinx Support Archive)。中间层是嵌入式 Linux 系统:PetaLinux 负责生成包含设备树、内核、根文件系统的启动镜像,也可以基于官方 BSP 做定制。上层是应用与加速:Vitis Unified Software Platform 把 Vivado 导出的 XSA 作为平台,在其上开发 DPU(深度学习处理单元)等加速 IP 的驱动、运行时和主机程序。最上层则是 Kria App Store 提供的预构建应用,让开发者不必从零搭建即可验证功能。

理解这条“Vivado → XSA → Vitis 平台 → 应用”的主线,是配置环境的前提。很多初学者卡住,往往不是命令写错,而是没分清某个操作属于哪一层。

Kria 开发工具链分层与数据流 Vivado PL 设计 / 综合 / 实现 导出 XSA 硬件平台 KV260 / KR260 载板 PetaLinux 设备树 / 内核 / 根文件系统 生成 BOOT.BIN + image.ub 基于官方 BSP 定制 Vitis Unified DPU 加速 IP 驱动 运行时 + 主机应用 以 XSA 为平台 Kria App Store 预构建应用 / 固件 快速验证与部署 Kria SOM 板卡运行环境 Ubuntu 桌面镜像(烧录至 microSD / eMMC) SSH / VNC / Jupyter 远程开发通道 主机侧 Ubuntu 20.04 Vivado 2022.2 Vitis 2022.2 实线:主要数据流 虚线:平台依赖关系

二、主机侧工具安装要点

AMD 官方推荐使用 Ubuntu 20.04 LTS 作为主机系统,Vivado、Vitis、PetaLinux 对内核版本和依赖库有明确要求。安装时建议统一版本号,例如全部使用 2022.2,避免 XSA 与 Vitis 平台版本不匹配导致导入失败。

Vivado 安装时勾选“Vitis Unified Software Platform”和“Kria KV260 / KR260”相关器件支持。安装完成后,需要把工具加入环境变量,典型做法是在 ~/.bashrc 中追加:

source /tools/Xilinx/Vivado/2022.2/settings64.sh
source /tools/Xilinx/Vitis/2022.2/settings64.sh
source /tools/Xilinx/PetaLinux/2022.2/settings.sh

PetaLinux 还需要额外安装依赖包,例如 tofrodos、iproute2、gcc-8、net-tools、libncurses5-dev 等。若缺少这些包,petalinux-create 或 petalinux-build 会在中途报错。安装完成后可用 petalinux-util --webtalk off 关闭联网统计,避免构建时因网络问题卡住。

三、Ubuntu 桌面镜像烧录

Kria 官方提供 Ubuntu 22.04 桌面镜像,适用于 KV260 和 KR260。烧录流程如下:

  1. 从 AMD 官网下载对应板卡的 .img.xz 镜像文件,并校验 SHA256。
  2. 准备一张 16GB 以上 microSD 卡,用读卡器接入主机。
  3. 使用 xz -dk kria-ubuntu-22.04.img.xz 解压,再用 dd 或 balenaEtcher 写入。
  4. 写入完成后,将 microSD 插入板卡,设置启动模式拨码为 SD 启动,上电。

首次启动约需 2~3 分钟。系统默认用户名 ubuntu,密码 ubuntu,首次登录会强制修改密码。若使用 eMMC 启动,可先在 SD 卡系统内执行 sudo kria-config 或参考官方脚本把镜像写入 eMMC。

烧录前务必确认板卡型号与镜像匹配。KV260 与 KR260 的载板外设不同,混用镜像可能导致网口或显示接口无法工作。

四、远程开发环境配置

板卡通常放在实验台或机柜中,直接接显示器键盘并不方便。推荐配置 SSH 与 VNC 两条通道。

SSH 配置:板卡通过网线接入与主机同一交换机,或通过 USB-C 转以太网。在板卡上执行 ip addr 查看 IP,例如 192.168.1.50。主机侧执行:

ssh ubuntu@192.168.1.50
# 首次连接输入 yes,然后输入密码

为方便免密登录,可在主机生成密钥并推送:

ssh-keygen -t ed25519
ssh-copy-id ubuntu@192.168.1.50

VNC 配置:在板卡上安装 tigervnc-standalone-server,设置密码后启动 vncserver :1 -geometry 1920x1080。主机用 VNC Viewer 连接 192.168.1.50:5901,即可获得桌面环境。若需要运行 Jupyter Notebook 做 AI 推理验证,可在板卡上执行 jupyter notebook --ip=0.0.0.0 --port=8888,主机浏览器访问 http://192.168.1.50:8888。

五、用 Kria App Store 快速验证

环境搭好后,建议先用 Kria App Store 中的一个预构建应用做端到端验证,例如 Smart Camera 或 Defect Detection。在板卡上执行:

sudo snap install xlnx-config --classic
xlnx-config.sysinit
sudo snap install kria-app-store

随后通过 kria-app-store 命令或 Web 界面选择应用并安装。安装完成后,应用会自动加载对应的 DPU 固件和模型,可通过 HDMI 输出或 RTSP 流观察推理结果。这一步能确认 PL 配置、DPU 驱动、模型文件和摄像头通路都正常,为后续自研应用打下基线。

若 App Store 应用启动后无推理结果,优先检查 dmesg | grep dpu 是否有 DPU 加载日志,以及 xmutil listapps 是否显示应用已激活。多数问题出在固件未正确加载或 PL 时钟未使能。

六、环境检查清单

检查项命令 / 方法预期结果
Vivado 版本vivado -version显示 2022.2
Vitis 环境vitis -version显示 2022.2
PetaLinuxpetalinux-util --version显示 2022.2
板卡网络ping 192.168.1.50有回包
SSH 登录ssh ubuntu@192.168.1.50成功进入 shell
DPU 固件dmesg | grep dpu显示 DPU 加载成功
App Storexmutil listapps列出已安装应用

完成以上配置后,主机侧具备 Vivado、Vitis、PetaLinux 三件套,板卡侧运行 Ubuntu 桌面系统并可通过 SSH/VNC 远程访问,Kria App Store 也能正常安装和运行预构建应用。这套环境就是后续 DPU 模型部署、性能剖析和工业 AI 推理优化的基础平台。