红联Linux门户
Linux帮助

交叉编译下需要内核安装吗?

发布时间:2010-04-07 16:19:24来源:红联作者:bbjyczy
我 最近用 CROSSTOOL-0。43安装了 一个交叉编译环境。然后想编译HELLOWORLD 模块。可是有问题。我 想可能需要 安装内核吧。所以 就参照http://www.csip.com.cn/38/n-39338.html这个 帖子来安装内核。前 四步都进行的 挺顺利,
可是第五步,cp vmlinux ${TESTROOTFS}/boot/vmlinux-2.6.22.6。我的 TESTROOTFS里没有boot/vmlinux-2.6.22.6 这个文件夹。我的 TESTROOTFS里只有//lib/moduls 文件夹。所以我就不知道怎么搞了。望高人能指点。谢谢。
文章评论

共有 3 条评论

  1. deepwhite 于 2010-04-07 18:44:55发表:

    [i=s] 本帖最后由 deepwhite 于 2010-4-7 18:45 编辑 [/i]

    内核模块的编译不能直接用gcc xxx.c来实现,需要写Makefile,或者手动指定include目录之类的。
    http://lwn.net/Kernel/LDD3/
    看看其中的 Compiling and Loading 这一小节,应该会有帮助。

  2. sailing0419 于 2010-04-07 17:28:59发表:

    {:2_91:}

  3. bbjyczy 于 2010-04-07 16:36:08发表:

    错误如下
    gcc -c hello1.c
    在包含自 hello1.c:4 的文件中:
    /home/david/linux-2.6.27.45/include/linux/module.h:9:24: 错误:linux/list.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:11:28: 错误:linux/compiler.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:12:25: 错误:linux/cache.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:13:24: 错误:linux/kmod.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:15:29: 错误:linux/stringify.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:16:27: 错误:linux/kobject.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:17:31: 错误:linux/moduleparam.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:18:26: 错误:linux/marker.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:19:23: 错误:asm/local.h:没有那个文件或目录
    /home/david/linux-2.6.27.45/include/linux/module.h:21:24: 错误:asm/module.h:没有那个文件或目录
    In file included from hello1.c:4:
    /home/david/linux-2.6.27.45/include/linux/module.h:48: 错误:字段 ‘attr’ 的类型不完全
    /home/david/linux-2.6.27.45/include/linux/module.h:59: 错误:字段 ‘kobj’ 的类型不完全
    /home/david/linux-2.6.27.45/include/linux/module.h: In function ‘lookup_module_symbol_name’:
    /home/david/linux-2.6.27.45/include/linux/module.h:519: 错误:‘ERANGE’ 未声明 (在此函数内第一次使用)
    /home/david/linux-2.6.27.45/include/linux/module.h:519: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
    /home/david/linux-2.6.27.45/include/linux/module.h:519: 错误:所在的函数内只报告一次。)
    /home/david/linux-2.6.27.45/include/linux/module.h: In function ‘lookup_module_symbol_attrs’:
    /home/david/linux-2.6.27.45/include/linux/module.h:524: 错误:‘ERANGE’ 未声明 (在此函数内第一次使用)
    /home/david/linux-2.6.27.45/include/linux/module.h: In function ‘module_get_kallsym’:
    /home/david/linux-2.6.27.45/include/linux/module.h:531: 错误:‘ERANGE’ 未声明 (在此函数内第一次使用)
    /home/david/linux-2.6.27.45/include/linux/module.h: 在顶层:
    /home/david/linux-2.6.27.45/include/linux/module.h:586: 警告:‘struct kernel_param’ 在形参表内部声明
    /home/david/linux-2.6.27.45/include/linux/module.h:586: 警告:它的作用域仅限于此定义或声明,这可能并不是您想要的