我正在尝试为电视调谐器构建一些驱动程序,但在构建时遇到此错误:
make -s -C /lib/modules/3.2.0-23-generic/build SUBDIRS=/home/jtp/IT9135_SRC modules
In file included from /home/jtp/IT9135_SRC/it9135-core.c:21:0:
/home/jtp/IT9135_SRC/it9135.h:11:28: fatal error: linux/smp_lock.h: No such file or directory
compilation terminated.
make[2]: *** [/home/jtp/IT9135_SRC/it9135-core.o] Error 1
make[1]: *** [_module_/home/jtp/IT9135_SRC] Error 2
make: *** [default] Error 2
我缺少什么?
答案1
<linux/smp_lock.h>
是“Big Kernel Lock”的头文件,自 2.6.39 起不再存在。该驱动程序的作者需要做一些工作来使其现代化。
另外,我发现较新的内核包含一个dvb-usb-it913x
模块。也许您可以停止使用旧的树外驱动程序并使用它?
答案2
如果“/lib/modules/...../build/linux/smp_lock.h”不存在,则可以仅使用虚拟进行编译。
纳米/lib/modules/...../build/linux/smp_lock.h
和写
// 这是假的!
然后按 ctrl + X 并按 Y 并尝试编译。