博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux内核编译环境配置
阅读量:7181 次
发布时间:2019-06-29

本文共 1332 字,大约阅读时间需要 4 分钟。

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\n");
  8.     return 0;
  9. }
  10. static void __exit hl_cleanup( void )
  11. {
  12.     printk("Goodbye, World! cleanup\n");
  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了,这个环境算好了。

你可能感兴趣的文章
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\package.json'
查看>>
Django视图层之路由配置系统(urls)
查看>>
代码注释中的专有词——TODO、FIXME和XXX
查看>>
在QTableView中某列中添加Button的导致滚动条滚动的时候消失的问题
查看>>
intellij idea 打开两个 terminal
查看>>
详解Mysql分布式事务XA(跨数据库事务)
查看>>
java类中serialversionuid 作用 是什么?举个例子说明(转)
查看>>
【Android】Android中如何取消调转界面后EditText默认获取聚焦问题
查看>>
004-windows(64位)下使用curl命令
查看>>
【死磕Java并发】-----J.U.C之AQS:CLH同步队列
查看>>
maven仓库中有jar包pom还报错
查看>>
scp -r拷贝目录不会拷贝软连接
查看>>
WordPress版微信小程序3.1.5版的新功能
查看>>
sqlserver2008导出架构+数据到2005
查看>>
管理 SharePoint Server 2010 的爬网删除策略
查看>>
jQuery-图片上传裁剪插件--imgAreaSelect(分析二) 同步显示图像位置信息
查看>>
TextBox获取焦点清空文本,失去焦点回复文本
查看>>
Qt窗口屏幕居中显示
查看>>
海量小文件存储
查看>>
iOS开发工具——网络封包分析工具Charles
查看>>