【发布时间】:2015-11-05 07:43:39
【问题描述】:
我有一个嵌入式 Linux 应用程序,它可以从基于 C 的应用程序中找到并安装 一些驱动程序,但是它根本找不到其他驱动程序。
来自应用程序:
system("insmod i2c_core.ko");
调试错误信息:
insmod: i2c_core.ko: no module by that name found
但是,使用 insmod 命令从命令行安装任何相同的驱动程序都没有问题。
这不是驱动程序序列依赖问题,因为错误消息与上述错误消息不同。
Linux 版本是 2.6.10(旧是的,但来自参考设计)
所有驱动程序都在此路径“/lib/modules”下,并且作为内核构建的一部分构建。
【问题讨论】:
-
尝试使用绝对路径。另外,
system?你真的需要运行一个shell吗? -
您可以安装的驱动程序和您不能安装的驱动程序有什么区别?小路?权限?
-
您的 /lib/modules/i2c_core.ko 实际上是指向丢失文件的符号链接吗?检查 $ ls -l /lib/modules
-
是的,我可以尝试绝对路径,但我不喜欢硬编码路径。此外,它是一种解决方法。我真的很想知道为什么找到了一些驱动程序而没有找到其他驱动程序。
-
权限相同。错误说找不到文件...没有说权限问题。
标签: c linux module embedded-linux drivers