我正在尝试加载自定义的(某种)模块,以使我的触摸板正常工作。我从github下载了“ elan_i2c_core.c”和“ elan_i2c.h”。将它们放在一起制成一个“ Makefile”(在同一文件夹上)的文件夹,例如:
ifneq ($(KERNELRELEASE),)
obj-m := elan_i2c_core.o
else
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
install:
$(MAKE) -C $(KDIR) M=$(PWD) modules_install
%:
$(MAKE) -C $(KDIR) M=$(PWD) $@
endif
我运行sudo make
时,它返回了.ko
个文件以及其他一些文件,但也返回了一些警告:
WARNING: "elan_i2c_ops" [/home/name/Templates/elan/elan_i2c_core.ko] undefined!
WARNING: "elan_smbus_ops" [/home/name/Templates/elan/elan_i2c_core.ko] undefined!
我尝试过
insmod elan_i2c_core.ko`
返回:
insmod: ERROR: could not insert module elan_i2c_core.ko: Unknown symbol in module
的输出
depmod elan_i2c_core.ko`
是
insmod: ERROR: could not insert module elan_i2c_core.ko: Unknown symbol in module
我该如何解决?我是否必须从头开始重新编译整个内核,或者我做错了什么?
其他信息:
内核版本-4.18.0-10-通用
OS- Ubuntu 18.10