zoukankan      html  css  js  c++  java
  • linux内核编译环境配置

    linux内核编译环境配置
    如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可。即是/lib/modules/`uname -r`/build -> /usr/src/kernels/`uname -r`指定。

    在yum中,如果直接运行 yum install kernel-devel, 一般安装的开发包版本要高于所使用的内核版本,不能使用。要更改yum 的配置文件,禁掉yum自动寻找新版本的功能。
    即是在/etc/yum.repos.d/fedora-updates.repo 中的[update*]有关的enable=1,全部改为0.
    OK,yum install kernel-devel 即可。

    还有其他方法,以下可供参考:
      http://home.lupaworld.com/home-space-uid-296848-do-blog-id-241587.html 
      http://blog.csdn.net/iczyh/article/details/3564367

    经典的hello word测试

    1. ////# cat hello.c
    2. #include <linux/module.h>
    3. #include <linux/kernel.h>
    4. #include <linux/init.h>
    5. static int __init hl_init( void )
    6. {
    7.     printk("Hello,World! init ");
    8.     return 0;
    9. }
    10. static void __exit hl_cleanup( void )
    11. {
    12.     printk("Goodbye, World! cleanup ");
    13. }
    14. module_init(hl_init);
    15. module_exit(hl_cleanup);
    16. MODULE_LICENSE("GPL");

    经典的由单个c文件产生模块的Makefile。

    1. # cat Makefile
    2. obj-m += hello.o
    3. CURRENT_PATH := $(shell pwd) #模块所在的当前路径
    4. LINUX_KERNEL := $(shell uname -r) #Linux内核源代码的当前版本
    5. LINUX_KERNEL_PATH := /usr/src/kernels/$(LINUX_KERNEL) #Linux内核源代码的绝对路径
    6. all:
    7.         make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules #编译模块了
    8. clean:
    9.         make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean #清理

    编译

    Make
    就产生了hello.ko。

    安装

    insmod hello.ko

    卸载

     rmmod hello

    查看log

     dmesg

    点击(此处)折叠或打开

      1. ................
      2. [12238.051159] Hello,World! init
      3. [12242.458122] Goodbye, World! cleanup
    []中的是时间戳。
     

    OK了,这个环境算好了。

  • 相关阅读:
    CentOS 8上安装MySQL 8.0
    centos8安装redis
    virtualbox虚拟机ubuntu18.04网络配置--虚拟机和宿主机互通且联网
    Controller同时接收MultipartFile数据和json数据
    日期转换
    Python的Mysql操作
    Go语言学习笔记十三: Map集合
    Go语言学习笔记十二: 范围(Range)
    Go语言学习笔记十一: 切片(slice)
    Go语言学习笔记十: 结构体
  • 原文地址:https://www.cnblogs.com/timssd/p/4781170.html
Copyright © 2011-2022 走看看