当前位置: 首页 > news >正文

Atlas 200I A2 加速模块-GPU适配

1.dts
以下默认目录为"Ascend310B-source",编辑"dtb/dts/hi1910b/hi1910BL/base/hi1910B-gpu.dtsi"修改内容如下:

    mali@404000000 {compatible = "arm,malit6xx", "arm,mali-bifrost";reg = <0x4 0x4000000 0x0 0x4000>;interrupt-parent = <&mbigen_gpu>;interrupts = <0x2ec 0x4 0x2ed 0x4 0x2ee 0x4>;// interrupt-names = "JOB", "MMU", "GPU";interrupt-names = "job", "mmu", "gpu";physical-memory-group-manager = <&caf_memory_manager>;};

2.panfrost驱动
源码中的panfrost驱动无法正常驱动,会提示时钟初始化失败。
关于panfrost升腾提供了patch,在编译过程将patch合入内核源码,具体操作如下:
(1).下载patch.
GPU驱动补丁下载
(2).复制patch到kernel/kernel/kernel/patches/目录下。
(3).修改编译脚本build.sh
在这里插入图片描述
(4).修改内核配置,使能panfrost。

vim kernel/kernel/kernel/kbuild/defconfigs/arch/arm64/configs/ascend310B_defconfig# 修改以下两个配置宏
CONFIG_DRM_HISI_ASCEND310B=y
CONFIG_DRM_PANFROST=m

(5)."build.sh kernel"和"build.sh dtb"对内核和dts进行编译,编译完成后在output/kernel_modules/ 下生成驱动panfrost.ko、gpu-sched.ko。在output/下会生成Image、dt.img。
3.mesa库编译
mesa库编译需要在目标系统中完成,修改/etc/apt/sources.list.d/sources.list,将"deb-src"的注释取消,如果没有去官方提供的base系统中找。修改后如下:
在这里插入图片描述
执行下面命令,获取mesa源码。

apt-get update
apt-get source mesa

进入源码目录,执行如下修改:

$ cd mesa-23.2.1/
$ vim src/gallium/targets/dri/meson.build
foreach d : [[with_gallium_kmsro, ['armada-drm_dri.so',
# 部分内容省略 #'ingenic-drm_dri.so','kirin_dri.so','atlas-200a2_dri.so',   #添加的内容'komeda_dri.so',
# 部分内容省略 #$ vim src/gallium/targets/dri/target.c
#if defined(GALLIUM_KMSRO)
/* 部分内容省略 */
DEFINE_LOADER_DRM_ENTRYPOINT(ingenic_drm)
DEFINE_LOADER_DRM_ENTRYPOINT(kirin)
DEFINE_LOADER_DRM_ENTRYPOINT(atlas_200a2)   #添加的内容
DEFINE_LOADER_DRM_ENTRYPOINT(komeda)
/* 部分内容省略 */

修改完成后可通过下面命令进行编译;

#下面命令请在源码目录下执行
sudo apt build-dep .   #下载编译依赖包
sudo apt install fakeroot
sudo DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -rfakeroot -b -d -us -uc #编译

编译完成后会在上一级目录中生成debian的安装包。
在这里插入图片描述
4.部署(注意:在这之前要确保系统可正常显示。)
(1).上传dt.img、Image、panfrost.ko、gpu-sched.ko到系统中。
(2).更新系统dts和内核镜像;

dd if=dt.img of=/dev/mmcblk0 count=4096 seek=114688 bs=512
dd if=Image of=/dev/mmcblk0 count=61440 seek=32768 bs=512

(3).设置开机自动加载驱动;

$ cp panfrost.ko /var/davinci/driver/
$ cp gpu-sched.ko /var/davinci/driver/
$ vim /var/davinci/scripts/minirc_sys_init_ext.sh  #如果没有写权限,先通过chmod添加写权限
load_device_modules()
{echo "load device ext modules"/* 部分内容省略 *//* 增加下面三项内容,其中第一个项和drm显示有关。 */ko_check ${ko_path}/ascend_vdp_drm.koko_check ${ko_path}/gpu-sched.koko_check ${ko_path}/panfrost.koecho "finish load device ext modules"
}

(4).安装mesa,在之前mesa生成的debian安装包目录下执行下面命令,安装mesa库。

apt-get install -fy --allow-downgrades ./*.deb

5.测试
在这里插入图片描述
glxinfo测试
在这里插入图片描述
glmark2测试
在这里插入图片描述
参考连接:
https://www.hiascend.com/forum/thread-0297192955825899818-1-1.html

http://www.dtcms.com/a/529250.html

相关文章:

  • 石家庄职业技术学院教务网络管理系统三明网站优化
  • 【经典书籍】C++ Primer 第18章如何设计一个“好用、好看、好改”的函数精华讲解
  • Qt Creator:避免QRunnable和QObject多重继承
  • 抽奖机网站怎么做wordpress小工具是哪个文件夹
  • 简述网站推广的方法做一个app需要多少成本
  • JsonRpc框架介绍和环境搭建
  • 网站右下角悬浮窗口js代码 兼容各浏览器如何看还在建设的网站
  • qq浏览器收录网站提交入口wordpress 博客 视频
  • 关于宽带网络下公网地址的理解
  • 【面经】2025年软件测试面试题,精选100 道(附答案)
  • 网站风格优势网页设计哪里好
  • 案例研究_CVE-2018-1000517
  • 内存补丁技术:破解与防护的终极对决
  • 20251019状压DP总结
  • 西部数码网站管理助手v3.0产品设计ppt案例
  • 【2073】三角形面积
  • Datawhale秋训营-“大运河杯”数据开发应用创新大赛
  • 7(内存管理)(上)(了解)
  • 成都个人建网站ps软件下载电脑版免费怎么下载
  • 解析常见的限流算法
  • 潼南区做网站的公司中国医院建设协会网站
  • 夸克 × 大模型:从“搜索工具”到“智能体”的演化逻辑
  • 网站正在建设中色综合网页程序开发工具
  • 个人怎么开网上超市福州百度seo
  • 笔试强训(八)
  • 山西品牌网站建设成品网站源码68w68游戏
  • Linux内核进程管理子系统有什么第六十八回 —— 进程主结构详解(64)
  • 做网站需要商标注册吗阿里巴巴怎么做企业网站
  • 做视频网站需要哪些技术指标wordpress可以放视频吗
  • 动态库的使用-openssl