我最近购买了适用于 Windows 的 Kinect,很快发现 Linux 内核 3.0+ 中包含的摄像头驱动程序与适用于 Windows 的 Kinect 硬件版本不兼容。查看源代码后,似乎只需进行微小修改即可实现兼容性,因此我一直尝试重新编译驱动程序 - 但无济于事。
当我尝试编译模块时,出现错误,因为在包含路径中找不到头文件“gspca.h”。我在文件系统中找到了丢失的头文件,但文件本身是空的。我还尝试下载内核源代码(3.2.0-24-generic),这允许我编译模块,但当我加载模块时出现错误。
-1 Unknown symbol in module
有没有一种标准方法可以解决这个问题,而无需先构建内核?构建内核是否可以确保我可以构建模块?
谢谢
答案1
有没有一种标准方法可以解决这个问题,而无需先构建内核?构建内核是否可以确保我可以构建模块?
如果你收到该错误,不。您可以强制加载模块,它很可能会起作用,但您将无法调试它,因此不建议使用此方法。
发生该错误的原因是您缺少
module.symvers
模块符号数据库。- 这仅有的生成该文件的正确方法是执行内核的完整构建——这将要让您构建模块。
- 请非常小心地将内核配置为严格按照库存规格,除非您打算安装并运行构建的内核。