Ubuntu 12.04 LTS建立内核树


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中发现了输出信息:说明模块已经被内核成功加载。
 

相关内容

    暂无相关文章