Atlas 200I A2 Ubuntu22.04 支持GPU加速功能调试指南
收藏回复举报
Atlas 200I A2 Ubuntu22.04 支持GPU加速功能调试指南
发表于2025-09-11 14:50:26
0 查看

Atlas 200I A2 Ubuntu22.04 支持GPU加速功能调试指南

该文档主要说明在Atlas 200I A2(操作系统为Ubuntu 22.04)上,如何进行GPU加速功能调试,具体内容如下:

1 Ubuntu 22.04(ARM)下,编译打包mesa。

1.1 使用编译环境为ARM架构的Ubuntu 22.04,并且当前环境能连接外网。

1.2 修改/etc/apt/sources.list.d/sources.list内容如下,然后执行apt-get update更新软件源。

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse

1.3 安装mesa的编译依赖。

(1)apt-get build-dep mesa

(2)apt install python3-pip

(3)pip3 install mako (查看mako版本) 

(4)pip3 install --index-url=https://pypi.tuna.tsinghua.edu.cn/simple mako==1.1.3(根据上一步查出来的版本进行更改)

1.png

1.4 下载mesa代码https://archive.mesa3d.org/,选择mesa-23.0.0.tar.xz。上传mesa-23.0.0.tar.xz到编译环境,如/opt目录下;

(1)cd /opt

(2)tar -xvf mesa-23.0.0.tar.xz

(3)cd mesa-23.0.0/

(4)vi src/gallium/targets/dri/meson.build,在如下位置增加 'atlas-200a2_dri.so', 后,保存并退出。

2.png

(5)vi src/gallium/targets/dri/target.c,在如下位置增加DEFINE_LOADER_DRM_ENTRYPOINT(atlas_200a2)后,保存并退出。

3.png

(6)mkdir -p /opt/ttt

(7)cd /opt/mesa-23.0.0/

(8)cp ./include/ /opt/ttt -rf

(9)meson  -Degl=enabled -Dgles1=enabled -Dgles2=enabled -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,swrast -Dplatforms=x11 -Dprefix=/opt/ttt -Ddri-search-path=/usr/lib64/dri build

(10)cd build

(11ninja

(12ninja install

(13)cd /opt/ttt/lib/aarch64-linux-gnu

(14)strip dri/*

(15)tar -zcvf Atlas_200A2_mesa.tar.gz ./*

会在当前目录下生成名为Atlas_200A2_mesa.tar.gz 的压缩包。

2 在Ubuntu 22.04(x86)下,修改并编译Atlas200I A2的DTB文件

2.1 使用编译环境为x86的Ubuntu 22.04,并下载Atlas 200I A2 的源码包:https://www.hiascend.com/hardware/firmware-drivers/community?product=1&model=23&cann=All&driver=Ascend+HDK+24.1.0

4.png

2.2 将源码包上传至x86编译环境,如/home目录下,解压进入对应目录。

(1)cd ./Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base/

修改hi1910B-gpu.dtsi 内容如下,保存并退出。

1.png

(2)cd ./Ascend310B-source/dtb/dts/hi1910b/hi1910BL/

修改hi1910B-asic-M150-B50.dts 内容,将/include/ "base/hi1910B-vdp.dtsi"为/include/ "base/hi1910B-drm.dtsi"

并修改bootargs内容如下:

bootargs = "console=ttyAMA0,115200 console=tty1 log_redirect=0x1fc000@0x22741000 root=/dev/mmcblk0p2 rw rdinit=/sbin/init rodata=off syslog earlycon=pl011,mmio32,0xC4010000 initrd=0x2BA00000,300M rootwait mpam=of enable_ascend_share_pool ascend_enable_all enable_sp_multi_group_mode init_all_gicr enable_fpga no_console_suspend selinux=0 systemd.unified_cgroup_hierarchy=0 audit=1 audit_backlog_limit=8192 fbcon=map:6 movable_node cma=256M rootfstype=ext4";

2.png

2.3 将panfrost功能支持的patch添加至内核编译脚本。

(1)cd ./Ascend310B-source/

(2)vim build.sh并增加相关patch:patch -E -p1 --no-backup-if-mismatch -i $KERNEL_DIR/patches/hisi/0001-add-drivers-gpu-drm-panfrost.patch

1.png

(3)将0001-add-drivers-gpu-drm-panfrost.patch上传到./ Ascend310B-source/driver/kernel/kernel/patches/hisi/

文件可以在下方链接中取到

通过网盘分享的文件:0001-add-drivers-gpu-drm-panfrost.patch

链接: https://pan.baidu.com/s/1Rtu9R2u26MmpFOCBYC8H-Q?pwd=jt7b 提取码: jt7b

2.4 编译重新生成dt.img

(1)cd ./Ascend310B-source/

(2)bash build.sh dtb

编译完成后,在./Ascend310B-source/output/ 下会生成dt.img.

3 编译并生成内核文件、驱动

3.1 进入源码包相关路径下,修改配置文件。

(1)cd ./Ascend310B-sdk/Ascend310B-source/kernel/kernel/kernel/kbuild/defconfigs/arch/arm64/configs

(2)vim ascend310B_defconfig,增加CONFIG_DRM_PANFROST=m,保存并退出

(3)cd ./Ascend310B-sdk/Ascend310B-source

(4)bash build.sh kernel

编译时增加.config的修改,路径为Device Drivers  --->Graphics support  --->DRM Support for Hisilicon Ascend310b SoC Platform,将该项勾选为Y,保存并退出。

(5)编译完成后,在./ Ascend310B-source/output/kernel_modules/ 下会生成两个驱动panfrost.kogpu-sched.ko,在./ Ascend310B-source/output/下会生成Image。

4 在Atlas200I A2安装gnome并进行调试

4.1 登录Atlas200I A2,安装gnome

安装gnome需要保证环境能连外网

(1)apt update

(2)apt install gnome-session

(3)apt install gdm3 gnome-shell

4.2 升级内核、dtb等

(1)上传1.4中生成的Atlas_200A2_mesa.tar.gz到Atlas200I A2的/tmp目录;

(2)cd /tmp/

(3)mkdir mesa

(4)tar -xvf Atlas_200A2_mesa.tar.gz -C mesa

(5)cd mesa

(6)cp -rf ./* /usr/lib64/

(7)echo “export LIBGL_DRIVERS_PATH=/usr/lib64/dri” >> /etc/profile

(8)上传2.3中生成的dt.img、3.1生成的Image、panfrost.kogpu-sched.ko到/tmp目录下

9)dd if=Image of=/dev/mmcblk0 count=61440 seek=32768 bs=512

10)dd if=dt.img of=/dev/mmcblk0 count=4096 seek=114688 bs=512

(11)cp /tmp/panfrost.ko /var/davinci/driver/

(12)cp /tmp/gpu-sched.ko /var/davinci/driver/

(13)修改/var/davinci/scripts/minirc_sys_init_ext.sh,在load_device_modules 下增加如下内容,保存并退出。

ko_check ${ko_path}/ascend_vdp_drm.ko

ko_check ${ko_path}/gpu-sched.ko

ko_check ${ko_path}/panfrost.ko

4.3 连接显示器验证

连接显示器,并重启系统进行生效。查看显示器是否有桌面显示,如果没有显示,执行如下命令:

  1. systemctl restart gdm
  2. systemctl restart display-manager.service

再次查看显示器,会出现登录界面;执行cat /proc/interrupts | grep panfrost,查看panfrost-job是否有中断。

本帖最后由 匿名用户2025/12/19 15:09:00 编辑

我要发帖子