免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 31522 | 回复: 11
打印 上一主题 下一主题

求助,没有规则可以创建目标 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-23 16:06 |只看该作者 |倒序浏览
我在论坛上找到了一个进程遍历的模块代码,我在make的时候却发生以下错误:
make -C /lib/modules/uname -r /build M="pwd" modules
make[1]: Entering directory `/lib/modules/uname'
make[1]: *** 没有规则可以创建目标“/build”。 停止。
make[1]: Leaving directory `/lib/modules/uname'
make: *** [default] 错误 2
我查找了很多的资料但是却还是无法解决,将内核重新编译过后还是不行,希望各位大大可以帮帮我,到底怎么解决这个问题

以下是我找到的代码的地址,我用的是第一套的代码和makefile代码和用户代码

http://bbs.chinaunix.net/viewthread.php?tid=653764&extra=page%3D1%26filter%3Ddigest#


代码:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/sched.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("mq110");

static int ps_read(char *page, char **start, off_t offset,int count, int *eof,
void *data)  
{
    static char buf[1024*8]={0};
    char tmp[128];
    struct task_struct *p;
   

    if(offset >0)
        return 0;
    memset(buf,0,sizeof(buf));
    read_lock(&tasklist_lock);
    for_each_process(p)   //遍例内核进程链表.
    {
        sprintf(tmp,"%d\t\t%d\t\t\t%s\n",p->pid,p->parent->pid,p->comm);
        strcat(buf,tmp);
        memset(tmp,0,sizeof(tmp));
    }
    read_unlock(&tasklist_lock);
    *start=buf;
    return strlen(buf);
}

static __init int ps_init(void)
{
    struct proc_dir_entry *entry;

    entry = create_proc_entry("_ps", 0444, &proc_root);  //建立/proc/_ps文件.
    if(entry == 0)
    {
        printk(KERN_ERR "create_proc_entry failed!\n");
        return -1;
    }
    entry->mode = S_IFREG | 0444;
    entry->size = 0;
    entry->read_proc = ps_read;
    return 0;
}
static __exit void ps_cleanup(void)
{
    remove_proc_entry("_ps", &proc_root);
}

module_init(ps_init);
module_exit(ps_cleanup);


makefile:
TARGET = 006
obj-m := $(TARGET).o
KERNELDIR=/lib/modules/`uname -r`/build
PWD=`pwd`

default :
   $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

install :
   insmod $(TARGET).ko
uninstall :
   rmmod $(TARGET).ko

clean :
   rm -rf *.o *.mod.c *.ko

用户态程序:
#include <stdio.h>
#include <error.h>

int main()
{
    FILE *fp;
    char buf[1024];

    fp=fopen("/proc/_ps","r");
    if(fp==NULL)
    {
        perror("fopen");
        return -1;
    }
    printf("pid\t\tppid\t\t\tcommand\n");
    while(!feof(fp))
    {
        if(fgets(buf,sizeof(buf),fp)!=NULL)
            printf("%s",buf);
    }
    fclose(fp);
    return 0;
}

希望各位大大可以帮忙...

论坛徽章:
0
2 [报告]
发表于 2008-05-23 16:54 |只看该作者
make[1]: Entering directory `/lib/modules/uname'
make[1]: *** 没有规则可以创建目标“/build”。 停止。
make[1]: Leaving directory `/lib/modules/uname'


找不到/lib/modules/uname这个目录
你的Makefile错了

论坛徽章:
0
3 [报告]
发表于 2008-05-30 13:01 |只看该作者
原帖由 anhongkui 于 2008-5-23 16:54 发表


找不到/lib/modules/uname这个目录
你的Makefile错了




还是不对阿...我进入了/lib/modules/这个目录,手动创建了uname这个文件挟,但是还是出现了这个文题
make -C /lib/modules/uname -r /build M="pwd" modules
make[1]: Entering directory `/lib/modules/uname'
make[1]: *** 没有规则可以创建目标“/build”。 停止。
make[1]: Leaving directory `/lib/modules/uname'
make: *** [default] 错误 2


帮帮忙吧...救命

论坛徽章:
0
4 [报告]
发表于 2008-05-30 13:53 |只看该作者
kernel_dev
这些东西都没装,也就是没有必要的内核头文件。
你用的什么系统,装一下kernel_dev这个包就可以了。

论坛徽章:
0
5 [报告]
发表于 2008-05-30 14:01 |只看该作者
原帖由 rocky1972 于 2008-5-30 13:53 发表
kernel_dev
这些东西都没装,也就是没有必要的内核头文件。
你用的什么系统,装一下kernel_dev这个包就可以了。




您的意思就是我还是需要重新编译一下内核的源码吗??我的内核是2.6.9-22的,还是直接找kernel_dev这个包来安装??

论坛徽章:
0
6 [报告]
发表于 2008-05-30 18:42 |只看该作者
原帖由 devilrabbit 于 2008-5-30 14:01 发表




您的意思就是我还是需要重新编译一下内核的源码吗??我的内核是2.6.9-22的,还是直接找kernel_dev这个包来安装??



编译驱动必须有一个已经编译过的内核源码目录树,也就是必要的内核头文件。
得装kernel_dev

论坛徽章:
0
7 [报告]
发表于 2008-06-06 15:50 |只看该作者

回复 #6 rocky1972 的帖子

我找了好久还是没有找到kernel_dev这个包,我还重新编译了2.6.25.4核源码,但是还是出现以上的没有规则可以创建的错误...是不是我还要另外下一个这个kernel_dev的包??

是的话可以给个地址吗???找不到来着...

论坛徽章:
0
8 [报告]
发表于 2008-06-06 16:12 |只看该作者
刚才才我尝试的用手动的编译了一下,通过了,是不是因为内核模块不可以像我预备的这样:
先写好后直接make ,然后make install,最后编译客户态程序来做的??

还是想要试一下kernel_dev这个方法...就是死活没有找到名为kernel_dev的这个包有得下...

论坛徽章:
0
9 [报告]
发表于 2008-06-07 19:18 |只看该作者
http://www.ibm.com/developerwork ... jsp?cv_doc_id=85020

感觉楼主什么都不会

至少不会Makefile

论坛徽章:
0
10 [报告]
发表于 2008-06-07 19:19 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP