编译内核模块,没有报错,但没有生成.ko文件

ying_seven 2011-04-19 03:02:48
编译内核模块,应该是没有报错.但什么文件都没有生成.请高手解答
下面是显示信息

=============================================================================================================
make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
make[1]: 正在进入目录 `/linux-2.6.29'
CHK include/linux/version.h
make[2]: “include/asm-arm/mach-types.h”是最新的。
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CALL scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
Building modules, stage 2.
MODPOST 123 modules
make[1]:正在离开目录 `/linux-2.6.29'
=============================================================================================================

我的Makefile文件如下

=============================================================================================================
ifneq ($(KERNELRELEASE),)

obj-m := memdev.o

else

KDIR := /linux-2.6.29
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-

clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*

endif
=============================================================================================================

执行后什么文件都没有生成.

急盼高手解答!!~
...全文
2603 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhaiying_0302 2011-11-23
  • 打赏
  • 举报
回复 1
我也碰到过这样的情况。我的需重新对新内核进行一次编译,才解决问题。
我的新昵称呢 2011-04-25
  • 打赏
  • 举报
回复
我也想知道
yong_f 2011-04-19
  • 打赏
  • 举报
回复
Makefile不对吧
ying_seven 2011-04-19
  • 打赏
  • 举报
回复
5楼靓了!!~
万分感谢大侠啊~
我今天下午 本来是直接放到内核里面 编译内核时带着 也可以 只是编译一次 要10多分钟
用了5楼的 果然好用

谢谢啦~ 以后就可以少很多编译时间了

不过我想问下 为什么我编译x86的模块的时候 就可以用PWD呢?
编译后 就会有.ko文件
narwal 2011-04-19
  • 打赏
  • 举报
回复
linux内核需要编译一下吧。或者用linux-XXX-generic
kkkwdb 2011-04-19
  • 打赏
  • 举报
回复
make -C /linux-2.6.29 M= modules ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
make[1]: 正在进入目录 `/linux-2.6.29'

执行的命令不对 应该 M=<你内核模块所在的路径>
你的Makefile没问题,关键是M=$(PWD)
你的shell环境变量PWD没设或者shell不支持PWD变量,你检查一下:echo $(PWD)

你可以M直接设置成你模块源码所在的路径。
ying_seven 2011-04-19
  • 打赏
  • 举报
回复
我是在vmware虚拟机上的 ubuntu9.04 交叉编译器是arm-linux-4.3.2
ying_seven 2011-04-19
  • 打赏
  • 举报
回复
额 没有人知道么. 自己先顶下

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧