知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

Ubuntu 12.04 LTS建立内核树

发布时间:2014-09-05 13:50:49作者:知识屋

Ubuntu 12.04 LTS建立内核树
 
 本人的系统为ubuntu 12.04 LTS,具体建立的步骤如下:
  (1) 查看自身系统的内核版本,指令为:uname -r,输出的信息:
        **3.8.0-29-generic**
       说明内核版本为3.8.0。
  (2) 在目录/usr/src目录下发现有一下文件:
        **linux-headers-3.8.0-29        linux-headers-3.8.0-29-generic**
       从文件名可以看出,这两个目录下只有代码的头文件。
  (3) 测试只有头文件是否可以动态加载自己的helloworld模块(生成方法可以参考《linux 设备驱动开发》)。
  (4) hello.c文件内容:
                #include <linux/init.h>
                #include <linux/module.h>
 
                MODULE_LICENSE("Dual BSD/GPL");
 
                static int hello_init(void)
                {
                    printk(KERN_EMERG "Hello world/n");
                    return 0;
                }
 
                static int hello_exit(void)
                {
                    printk(KERN_EMERG "Goodbye, hello world!/n");
                    return 0;
                }
                module_init(hello_init);
                module_exit(hello_exit);
 
         Makefile文件内容:
                ifneq ($(KERNELRELEASE),)
                obj-m :=hello.o
                else
                       KDIR := /lib/modules/3.8.0-29-generic/build
                all:
                       make -C $(KDIR) M=$(PWD) modules
                clean:
                        rm -f *.ko *.o *.mod *.mod.c *sysmvers
                endif    
     (5)  运行:sudo insmod hello.ko    sudo rmmod hello.ko 终端没有反应,但是在查看
/var/log/syslog中发现了输出信息:说明模块已经被内核成功加载。
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜