使用Linux 5.10.110的内核,安装驱动,驱动文件是Atlas-200-npu-driver_6.0.0_linux-aarch64.run , 安装命令如下:
./Atlas-200-npu-driver_6.0.0_linux-aarch64.run --full --install-username=root --install-usergroup=root --install-for-all
安装提示失败,
查看cat /var/lib/dkms/davinci_hiai/1.0/build/make.log这个文件,发现有如下错误:
CC [M] /var/lib/dkms/davinci_hiai/1.0/build/pcie_host/soc_adapt/res_drv_mini_v1.o
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c: In function 'devmm_split_page_memcg':
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:46:9: error: implicit declaration of function 'page_memcg_check'; did you mean 'page_memcg_rcu'? [-Werror=implicit-function-declaration]
46 | if (page_memcg_check(page) == NULL) {
| ^~~~~~~~~~~~~~~~
| page_memcg_rcu
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:46:32: error: comparison between pointer and integer [-Werror]
46 | if (page_memcg_check(page) == NULL) {
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:58:40: error: comparison between pointer and integer [-Werror]
58 | if (page_memcg_check(cur_page) != NULL) {
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:17: error: 'struct page' has no member named 'memcg_data'
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:36: error: 'struct page' has no member named 'memcg_data'
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:51: error: 'MEMCG_DATA_KMEM' undeclared (first use in this function)
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~~~~~~~~~~~~~~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:51: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
make[3]: *** [scripts/Makefile.build:273:/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.o] 错误 1
make[2]: *** [scripts/Makefile.build:516:/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster] 错误 2
make[2]: *** 正在等待未完成的任务....
搜索了一些Linux 5.10.110的代码,没有发现page_memcg_check这个函数的定义,MEMCG_DATA_KMEM这个宏也没有找到定义,现在这个驱动是否适配了Linux 5.10.110的版本?目前这个错误应该怎么修改?
使用Linux 5.10.110的内核,安装驱动,驱动文件是Atlas-200-npu-driver_6.0.0_linux-aarch64.run , 安装命令如下:
./Atlas-200-npu-driver_6.0.0_linux-aarch64.run --full --install-username=root --install-usergroup=root --install-for-all
安装提示失败,
查看cat /var/lib/dkms/davinci_hiai/1.0/build/make.log这个文件,发现有如下错误:
CC [M] /var/lib/dkms/davinci_hiai/1.0/build/pcie_host/soc_adapt/res_drv_mini_v1.o
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c: In function 'devmm_split_page_memcg':
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:46:9: error: implicit declaration of function 'page_memcg_check'; did you mean 'page_memcg_rcu'? [-Werror=implicit-function-declaration]
46 | if (page_memcg_check(page) == NULL) {
| ^~~~~~~~~~~~~~~~
| page_memcg_rcu
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:46:32: error: comparison between pointer and integer [-Werror]
46 | if (page_memcg_check(page) == NULL) {
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:58:40: error: comparison between pointer and integer [-Werror]
58 | if (page_memcg_check(cur_page) != NULL) {
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:17: error: 'struct page' has no member named 'memcg_data'
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:36: error: 'struct page' has no member named 'memcg_data'
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:51: error: 'MEMCG_DATA_KMEM' undeclared (first use in this function)
61 | cur_page->memcg_data = page->memcg_data | MEMCG_DATA_KMEM;
| ^~~~~~~~~~~~~~~
/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.c:61:51: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
make[3]: *** [scripts/Makefile.build:273:/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster/comm/svm_master_cgroup.o] 错误 1
make[2]: *** [scripts/Makefile.build:516:/var/lib/dkms/davinci_hiai/1.0/build/svmdrv/pmaster] 错误 2
make[2]: *** 正在等待未完成的任务....
搜索了一些Linux 5.10.110的代码,没有发现page_memcg_check这个函数的定义,MEMCG_DATA_KMEM这个宏也没有找到定义,现在这个驱动是否适配了Linux 5.10.110的版本?目前这个错误应该怎么修改?