Linux kernel 编译Linux内核模式程序时出错

Linux kernel 编译Linux内核模式程序时出错,linux-kernel,kernel,kernel-mode,Linux Kernel,Kernel,Kernel Mode,我希望访问ARM Cortex-A8板的一些寄存器,这些寄存器默认处于不可访问状态Ubuntu 9.10在此板上运行。所以,要访问它们,我必须先更改其他寄存器设置(允许访问寄存器)。要更改这个允许访问寄存器,我发现我只能在内核模式下进行,而不能在用户模式下进行 所以,我提到了如何在内核模式下编程,我了解了这一点。我写了这个小程序和一个make文件请注意,我仍然在x86桌面(Ubutnu 10.04)上运行此程序,但还没有在ARM处理器上运行。直到我获得内核级编程的挂起 我得到这些错误。这里怎么了

我希望访问ARM Cortex-A8板的一些寄存器,这些寄存器默认处于不可访问状态Ubuntu 9.10在此板上运行。所以,要访问它们,我必须先更改其他寄存器设置(允许访问寄存器)。要更改这个允许访问寄存器,我发现我只能在内核模式下进行,而不能在用户模式下进行

所以,我提到了如何在内核模式下编程,我了解了这一点。我写了这个小程序和一个make文件请注意,我仍然在x86桌面(Ubutnu 10.04)上运行此程序,但还没有在ARM处理器上运行。直到我获得内核级编程的挂起

我得到这些错误。这里怎么了

救命啊


我在I.MX515板上遇到的错误

ubuntu@ubuntu-desktop:~/Documents/Kernel_Programming$ make
make -C /lib/modules/2.6.31-203-gee1fdae/build M=/home/ubuntu/Documents/Kernel_Programming modules
make[1]: Entering directory `/usr/src/linux'
make[1]: *** No rule to make target `modules'.  Stop.
make[1]: Leaving directory `/usr/src/linux'
make: *** [all] Error 2

我收到的错误

ubuntu@ubuntu-desktop:~/Documents$ make
make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-23-generic'
make[2]: *** No rule to make target `/home/ubuntu/Documents/hello-1.c', 
needed by `/home/ubuntu/Documents/hello-1.o'.  Stop.
make[1]: *** [_module_/home/ubuntu/Documents] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-23-generic'
make: *** [all] Error 2

节目

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
    printk(KERN_INFO "\nHello World! I'm programming in Kernel Mode\n");

    return 0;
}

void cleanup_module(void)
{
    printk(KERN_INFO "\nBye Bye blue bird\n");
}

make命令中有一个输入错误,如:

应该是:

make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules   
不是


我不知道这是否只是你文章的格式,但是内核构建脚本正在寻找“Makefile”,而你有“Makefile”(大小写不同)。这真的是问题所在吗?另外,你的用户名是“ubuntu”吗?

嘿,尼尔斯,哦,我的脑袋因为我面临的问题变得模糊了,我什么都看不清楚:):)我修正了它,但我发现这些新的错误。(参考我的问题,我已经编辑过了)好的,我将我的makefile从makefile重命名为makefile,我得到了新的错误(参考我的问题,我已经编辑过了)您的源文件实际命名为“hello-1.c”吗?这就是脚本要找的。对不起,我修好了。重命名文件后,我有两个makefile,并且执行了错误的makefile。现在它正在编译和生成对象文件。谢谢。嗨,卡玛斯坦,新问题!我把我的makefile和.c文件都带到我的板上,并尝试执行我的makefile,结果出现了错误。这不是在我的linux桌面上发生的。(参考我的问题,我已经编辑了它。我在I.MX515板部分遇到错误)我看到的问题是在/usr/src/I没有看到2.6.31-203-gee1fdae目录,所以它失败了。
make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules   
make -C /lb/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules