zoukankan      html  css  js  c++  java
  • 第一个内核模块

    hello.c

    #include<linux/module.h>
    #include<linux/init.h>
    #include<linux/kernel.h>
       
    int init_module(){
         printk("<1>hello world!
    ");
         return 0;
      }
    void cleanup_module(){
      printk("<1>godbye");
     }
      
    MODULE_LICENSE("GPL");
    

      Makefile

       linux_kernel=$(shell uname -r)
       linux_kernel_path=/usr/src/linux-headers-$(linux_kernel)
       curr_path=$(shell pwd)
       obj-m += hello.o
       all:
           make -C $(linux_kernel_path)    M=$(curr_path) modules
      clean:
          make -C $(linux_kernel_path)    M=$(curr_path) clean                       

    root下执行make后

    make -C /usr/src/linux-headers-3.13.0-67-generic    M=/home/hugh/myfs/ws modules
    make[1]: Entering directory `/usr/src/linux-headers-3.13.0-67-generic'
      Building modules, stage 2.
      MODPOST 1 modules
    make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-67-generic'

    插入模块

    insmod hello.ko

    卸载模块

    rmmod hello

    dmesg查看日志

    ……
    [113392.319719] hello: module verification failed: signature and/or  required key missing - tainting kernel
    [113392.321763] hello world!
    [113561.149510] <1>hello world!
    [113487.425871] godbye
    [113571.386171] <1>godbye

    yep,it's done!

  • 相关阅读:
    函数总结
    python之内置函数,匿名函数
    列表推导式 生成器表达式
    迭代器和生成器函数
    最近练习题
    python----------闭包 、装饰器
    python的逻辑运算符
    python------函数嵌套及作用域链
    python ---------函数
    如何实现负载均衡
  • 原文地址:https://www.cnblogs.com/HughParker/p/5022407.html
Copyright © 2011-2022 走看看