当前位置: 技术问答>linux和unix
模块编译的问题
来源: 互联网 发布时间:2016-06-14
本文导语: 我在Ubuntu Desktop 9.04下编译的一个驱动模块不能在Server版上安装,提示说模块格式不对,这是为什么?内核版本都是一样的啊,有朋友用过Ubuntu做驱动开发吗? | cat /var/log/messages 看一下日...
我在Ubuntu Desktop 9.04下编译的一个驱动模块不能在Server版上安装,提示说模块格式不对,这是为什么?内核版本都是一样的啊,有朋友用过Ubuntu做驱动开发吗?
|
cat /var/log/messages 看一下日志中是什么错误 ?
|
建议你在 Server版 上重新编译一次你的 驱动,
两个版本内核版本也许是一样的, 但模块选择可能不同,所以导致有些 symbol 找不到。
两个版本内核版本也许是一样的, 但模块选择可能不同,所以导致有些 symbol 找不到。
|
你找一下server 上的 kernel source 放在什么地方。
如果有的话,肯定在 /lib/modules/linux-**** 下面的。
如果有的话,肯定在 /lib/modules/linux-**** 下面的。
|
那你用 modprobe 命令安装 驱动试试。
它会把关联的驱动也安装了。 不要用 insmod 了 。
它会把关联的驱动也安装了。 不要用 insmod 了 。
|
也不是没办法, 你把另外一台机器上的 kernel soure , copy 过来,再试试。。
另外, 你如何确定两台机器的 kernel版本是一样的 ?
另外, 你如何确定两台机器的 kernel版本是一样的 ?
|
看内核版本:
uname -a
对内核代码copy 过来放在一个目录里,编译时用 -I xx_dir 来指定目录。
uname -a
对内核代码copy 过来放在一个目录里,编译时用 -I xx_dir 来指定目录。
|
记得用ldconfig更新一下库。。。
|
可能是GCC编译器版本不对造成的。
gcc -V看一样gcc版本。
gcc -V看一样gcc版本。