linux内核编译环境配置
在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测试
- ////# cat hello.c
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
- static int __init hl_init( void )
- {
- printk("Hello,World! init\n");
- return 0;
- }
- static void __exit hl_cleanup( void )
- {
- printk("Goodbye, World! cleanup\n");
- }
- module_init(hl_init);
- module_exit(hl_cleanup);
- MODULE_LICENSE("GPL");
经典的由单个c文件产生模块的Makefile。
- # cat Makefile
- obj-m += hello.o
- CURRENT_PATH := $(shell pwd) #模块所在的当前路径
- LINUX_KERNEL := $(shell uname -r) #Linux内核源代码的当前版本
- LINUX_KERNEL_PATH := /usr/src/kernels/$(LINUX_KERNEL) #Linux内核源代码的绝对路径
- all:
- make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules #编译模块了
- clean:
- make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean #清理
编译
Make
就产生了hello.ko。
安装
insmod hello.ko
卸载
rmmod hello
查看log
dmesg
点击(此处)折叠或打开
- ................
- [12238.051159] Hello,World! init
- [12242.458122] Goodbye, World! cleanup
[]中的是时间戳。
OK了,这个环境算好了。
linux内核编译环境配置的更多相关文章
- linux内核编译,配置本机驱动
1.前言 编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多 ...
- linux 驱动模块 内核编译环境
目录(?)[+] Linux设备驱动Hello World程序介绍 如何编写一个简单的linux内核模块和设备驱动程序.我将学习到如何在内核模式下以三种不同的方式来打印hello world,这三种方 ...
- Linux内核编译配置脚本
环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL Linux内核编译配置脚本 在linux开发过程中熟练使用脚本可以大大简化命令行操作,同时对于需要经常重复操作的指令也是一种备忘 ...
- Linux内核编译与安装
2013-04-16 Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...
- 运行在TQ2440开发板上以及X86平台上的linux内核编译
一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...
- Syslinux编译环境配置简要步骤
由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1. vmware ...
- Linux内核编译、安装流程
原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请 ...
- Linux内核编译完整过程
Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过 ...
- Linux 内核 编译模块
背景: 由于调试内核或者由于分区大小限制,有时候内核组件不一定完全需要编进内核中. 所以,在开发中经常将内核组件编译成为模块,等到在恰当的时机加载. 概览: Linux内核模块的编译方法有两种: 1. ...
随机推荐
- Jquery学习笔记:操作form表单元素之一(文本框和下拉框)
一.概述 在web页面开发中,经常需要获取和设置表单元素的值(如文本框中的内容),特别是在ajax应用中,更是常态.本文系统的介绍下如何操作. 同操作其它html元素一样,操作的过程差不多. 第一步, ...
- 创建成功的Python项目
创建成功的Python项目 前端开发工具技巧介绍—Sublime篇 SEO在网页制作中的应用 观察者模式 使用D3制作图表 英文原文:Create successful Python projects ...
- Oracle undo 镜像数据探究
Oracle undo 镜像数据探究 今天是2013-08-18,隔别一周的 ...
- linux下编译.so 和.a 可能出现的问题 ?
1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持 ...
- SignalR 聊天室实例详解(服务器端推送版)
翻译自:http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room (在这里可以下载到实例的源码) Asp.Net Si ...
- C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型
一.string #include <string> using std::string 初始化函数: string s1; 默认构造函数 s1 为空串 ...
- asp.net 生成xml文件 与 asp生成xml文件
一.asp.net 生成xml文件 webservice方式,调用接口: public XmlDocument List() { XmlDocument doc = new XmlDocument() ...
- Android 之 Fragment
一 左侧标题列表 1.1 布局 left_fragment.xml <ListView xmlns:android="http://schemas.android.com/apk/ ...
- Android 程式开发:(廿二)服务 —— 22.1 自定义服务
服务,就是跑在后台的“程序”,不需要和用户进行交互.举个例子,当使用一款应用的时候,可能同时想在后台播放一些音乐.在这种情况下,后来播放音乐的代码不需要和用户进行交互,所以,它就可能被当成一个服务.当 ...
- 使用boost中的property_tree实现配置文件
property_tree是专为配置文件而写,支持xml,ini和json格式文件 ini比较简单,适合简单的配置,通常可能需要保存数组,这时xml是个不错的选择. 使用property_tr ...