这篇文章http://xmodulo.com/build-kernel-module-dkms-linux.html讲的很详细,但是我遇到了一些问题,分享给大家,此篇教程只适用于我的rtl8723du驱动的情况,对于其他的情况可能适用,可能不适用。前提是在rtl8723du目录下直接执行make ;make install是没有问题的,但是在使用dkms时遇到了下列问题

1、路径问题,

dkms在将含Makefile的项目加入内核时,由于dkms路径已经改变了,好像是变到lib那去了,那么我们可以在Makefile添加下面的代码来适配在dkms中的情况

              ifeq ($(src),)

              export TopDIR ?= $(shell pwd)

              else

              export TopDIR ?= $(src)

              endif

2、post 0 MODULE 问题

需要添加一行CONFIG_RTL8723DU := m,不知其所以然。。。

              ifeq ($(CONFIG_RTL8723B), y)

              $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o

              endif

 

              CONFIG_RTL8723DU := m

              obj-$(CONFIG_RTL8723DU) := $(MODULE_NAME).o

 

              else

 

              export CONFIG_RTL8723DU = m

3、最后两个坑:

dkms.conf其中的package name和module name均不能有大写,否则会crash

package name和/或module name都必须与makefile中的一致,否则binarary package not found

Logo

更多推荐