linux内核编译环境配置
2015-09-04 12:35
561 查看
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测试
////# 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 #清理
编译
安装
卸载
查看log
点击(此处)折叠或打开
................
[12238.051159] Hello,World! init
[12242.458122] Goodbye, World! cleanup
[]中的是时间戳。
OK了,这个环境算好了。
如果不是编译内核,只需要安装与内核相匹配的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测试
////# 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。
就产生了hello.ko。
安装
insmod hello.ko
卸载
rmmod hello
查看log
dmesg
点击(此处)折叠或打开
................
[12238.051159] Hello,World! init
[12242.458122] Goodbye, World! cleanup
[]中的是时间戳。
OK了,这个环境算好了。
相关文章推荐
- 并发与竞态控制
- 20150827-Linux grep文本过滤工具及正则表达式
- Linux file viewer command:cat, tac, more, less, tail, head
- 每天一个Linux命令
- [Linux运维] 基本服务rc
- 在Ubuntu(Linux)上获取root权限
- arm平台移植mplayer
- Linux系统管理-(8)-RPM程序包管理器
- CentOS 7 挂载本地光盘作为镜像源
- 【Linux】【C/C++】多进程协同词频统计
- Basic Linux Commands :date, clock, hwclock, cal, ls, pwd, whereis, which, who, w, whoami
- centos6安装bt工具transmission
- centos6安装bt工具transmission
- Linux内核中fasync机制对RCU锁的使用
- 【Linux】【C/C++】十叉非完全树的构造和重构
- 如何成为一个Linux内核开发者
- Linux 下以其他用户运行程序
- 10分钟掌握Linux vi编辑器常见命令的使用,最简单的vi编辑器教程
- linux screen 命令详解
- 20150825-Linux用户管理和权限管理