写交叉编译环境下驱动程序的问题!!

发布于 2022-09-22 13:08:05 字数 275 浏览 24 评论 0

今天用交叉编译工具去编译一个mips下的驱动程序,结果报出浮点错,后来发现是因为拿到别人给的内核后没有先再编译一次内核(自己编译一次内核就可以了)
但是拿到的内核肯定是被编译过的,因为有生成的内核image在,但是可能被clean过了,所以找不到那些.o或.mod文件了

我的问题是,一直没找到编驱动的时候,会去找内核树中的什么关键性文件,导致如果内核树没经过编译,那在此内核树下编译驱动也会出错?
是Module.symvers吗?还是里面生成的一些基本的驱动文件呢?
请高手解答一下!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

动次打次papapa 2022-09-29 13:08:06

MIPS似乎不支持浮点。而且,LZ应该清楚,内核中的代码应避免是用浮点操作。

摇划花蜜的午后 2022-09-29 13:08:06

代码中并没有用到浮点的~如果是因为代码的问题,那应该在编译源文件的时候出错的
现在报错是在.o文件已经生成后。
现在想想可能是之前编译过内核的人是在其他平台上编的吧~~

就是想问问有没有高手能指教一下编译生成模块的时候会用到内核源码树中的哪些文件呢(关键的文件就行了,头文件除外)
或者说生成一个模块的时候,具体的过程是什么样的呢?
(比如,第一阶段先是编译源文件,如.c文件,生成对应的.o文件以及.mod.c文件,第二阶段,会将之前生成的.mod.c编译成对应的.mod.o文件,然后LD成模块文件.ko)这里第二阶段是如何实现的呢?好象有用到内核中的一些script,还有配置文件之类的?

[ 本帖最后由 cloudice 于 2008-10-29 16:16 编辑 ]

无法回应 2022-09-29 13:08:06

好象我认识的编译过程有点不准确,看了一下内核目录树下的Makefile.modpost文件,那里面讲的很详细~
有兴趣的可以参考~

心的位置 2022-09-29 13:08:06

原帖由 cloudice 于 2008-10-29 16:12 发表
代码中并没有用到浮点的~如果是因为代码的问题,那应该在编译源文件的时候出错的
现在报错是在.o文件已经生成后。
现在想想可能是之前编译过内核的人是在其他平台上编的吧~~

就是想问问有没有高手能指教 ...

关键问题时,你需要搞明白你编译什么东西,编译不同的东西用到的内核文件是不一样的,这个没有一个普适性的东西可供你当作万能的工具。

萌辣 2022-09-29 13:08:06

目的是编译出一个模块文件,这跟你要编译的源有什么关系呢~我说过是要问有关的编译过程的文件,不包括用到的内核头文件~~

你觉得“编译出一个模块的过程”会跟你编译的东西有关系么?要不你跟踪你make的时候看编译怎么走的,就会看到它要去检查内核中哪些文件,然后分哪几个过程来生成一个模块文件。
不知道我说的有什么不妥,也没明白你的意思,不过我确实可以看到整个过程~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文