构造内核树
来源:互联网 发布:java过滤器的作用 编辑:程序博客网 时间:2024/04/29 09:32
首先,请根据自己的内核版本下载相应的源代码包。
确定自己的内核版本的方法:
[root@localhost /]# uname -rm
接着,请按照以下步骤一步步进行,其中MyDir代表内核源代码包的存储位置,请依据自己的情况而定。黑底的文字代表当前命令执行结果。 注意我的 mydir目录是 /usr/src
[root@localhost MyDir]# rpm –Uvh kernel-2.6.15-1.2054_FC5.src.rpm
注:其中,kernel-2.6.15-1.2054_FC5.src.rpm是我的内核版本对应的源代码包。
运行这个步骤后,我把/SOURCES/ inux-2.6.15.tar.bz2 包给解压开了 就放在SOURCES目录下
[root@localhost MyDir]# cd /usr/src/redhat/SPECS
[root@localhost SPECS]# rpmbuild -bp --target $(uname -m) kernel-2.6.spec
[root@localhost SPECS]# ls /usr/src/redhat/BUILD/kernel-2.6.15/
Config.mk linux-2.6.15.i686 vanilla xen xen-vanilla
[root@localhost SPECS]# cd /usr/src
[root@localhost src]# mkdir kernels
[root@localhost src]# cd kernels/
[root@localhost kernels]# ln -s ../redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686/ 2.6.15-1.2054_FC5-i686
注:ln是小写的LN(非in),而不是大写的In。
另注: 处有个空格,无空格无法编译以下步骤。
[root@localhost kernels]# ls
2.6.15-1.2054_FC5-i686
[root@localhost kernels]# cd 2.6.15-1.2054_FC5-i686/
[root@localhost 2.6.15-1.2054_FC5-i686]# cp configs/kernel-2.6.15-i686.config .config
cp:是否覆盖".config" ? y
注:输入y以确认覆盖。
[root@localhost 2.6.15-1.2054_FC5-i686]# uname –r
接下来,请修改Makefile中的内容:
把
EXTRAVERSION = -prep
换成
EXTRAVERSION = -1.2054_FC5
然后继续编译:
[root@localhost 2.6.15-1.2054_FC5-i686]# make mrproper
[root@localhost 2.6.15-1.2054_FC5-i686]# make oldconfig
注意:我是执行了 make menuconfig 命令 , 把 一个版本检查的 选项给去掉了,然后保存退出。
[root@localhost 2.6.15-1.2054_FC5-i686]# make
注:这一步需要花挺长的时间,我将近花了90分钟。
[root@localhost 2.6.15-1.2054_FC5-i686]# make modules_install
至此,内核源代码树编译完成。
最后,我的 hello.c 和Makefile 文件 都是放在 /usr/src 下面的,然后执行下面的
[root@localhost MyDir]# make
make -C /lib/modules/2.6.15-1.2054_FC5/build M=/MyDir modules
make[1]: Entering directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686'
CC [M] /MyDir/hello.o
Building modules, stage 2.
MODPOST
CC /MyDir/hello.mod.o
LD [M] /MyDir/hello.ko
make[1]: Leaving directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686'
查看make之后的结果:
[root@localhost MyDir]# ls
hello.c hello.ko hello.mod.c hello.mod.o hello.o
嗯,make成功,赶紧利用insmod命令装载模块驱动:
[root@localhost MyDir]# insmod ./hello.ko
最后卸载: [root@localhost MyDir]# rmmod hello.ko
如果,看不到,用dmesg命令就可以看到了 。- 构造内核树
- 构造内核源码树
- 构造内核源码树
- 构造内核源码树
- 构造内核源码树
- 构造内核源码树
- 构造内核源码树
- 构造Linux 内核树
- Ubuntu 内核升级 构造内核树
- Fedora5下构造内核树
- 转LDD3构造内核树
- 第二章构造内核树
- Fedora5下构造内核树 .
- 【转】构造内核源码树
- Fedora配置构造Linux内核源代码树
- 安装主线内核,配置并构造内核树
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造)
- 好久没上来了
- 玩转GOOGLE的十九招秘技
- Java开发中 unix/windows路径转换
- 去超链接下划线专题详解
- 样式表CSS简明教程
- 构造内核树
- SATA技术
- 测试人员和开发人员和谐相处的技巧
- 关注技术,注重实践
- Nvelocity及MonoRail比较研究
- 公钥加密(不对称加密)
- 一个简单的 MonoRail 例子
- 卡巴斯基KAV/KIS 6.0/7.0 永久免费激活方法
- 测试错误代码