# 驱动
修改 dma_ip_drivers-master/XDMA/linux-kernel/xdma/Makefile
# ifneq ($(KERNELRELEASE),)
# $(TARGET_MODULE)-objs := libxdma.o xdma_cdev.o cdev_ctrl.o cdev_events.o cdev_sgdma.o cdev_xvc.o cdev_bypass.o xdma_mod.o xdma_thread.o
# obj-m := $(TARGET_MODULE).o
# else
# BUILDSYSTEM_DIR:=/lib/modules/$(shell uname -r)/build
# PWD:=$(shell pwd)
# 上面的注释掉,使用下面的
$(TARGET_MODULE)-objs := libxdma.o xdma_cdev.o cdev_ctrl.o cdev_events.o cdev_sgdma.o cdev_xvc.o cdev_bypass.o xdma_mod.o xdma_thread.o
obj-m := $(TARGET_MODULE).o
BUILDSYSTEM_DIR:=/home/debian/Desktop/xiaguangbo/project/rk3588/project/kernel # linux 源码目录
PWD:=$(shell pwd)
# 最后一行还有一个 endif 也注释掉
编译
export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
make
# 工具
修改 dma_ip_drivers-master/XDMA/linux-kernel/tools/Makefile
# CC ?= gcc
CC = aarch64-linux-gnu-gcc
编译
make
编译之后用file xxx查看文件是否是属于aarch64架构的,如果不是查看Makefile对不对
将得到的xdma.ko放到rootfs里的/lib/modules/xxx (linux内核版本号,uname -r 可得到)里就可以开机自动加载文章来源:https://www.toymoban.com/news/detail-565537.html
一般制作的rootfs没有此目录,需要先运行一次depmod,会提示找不到/lib/modules/xxx,然后mkdir -p /lib/modules/xxx,再执行一次depmod,会生成一些.alies、.dep文件,然后再将xdma.ko复制到该目录下,然后重启。如果不行就使用 insmod ./xxx/xdma.ko 来手动挂载一次,然后再重启,并使用 dmesg | grep xdma 来看驱动日志,或者 dmesg | grep pci 看 pci 的日志文章来源地址https://www.toymoban.com/news/detail-565537.html
到了这里,关于xdma 驱动编译(给arm用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!