fedora 18创建linux内核树

1.安装与make menuconfig命令相关的安装包:yum install ncurses*
2. 下载内核源码:www.kernel.org/pub/linux/kernel/,先查看linux内核版本:$uname -r,我的版本是3.6.10-4.fc18.i686,所以我进入v3.x下载版本linux-3.6.10.tar.gz,我在/home下新建一个目录kernel,然后把下载的内核源码解压到新建的目录下。
3.切换到root权限下,在解压好的目录linux-3.6.10下:$make distclean
4.找到/boot目录下带config文件,我的是config -3.6.10-4.fc18.i686.PAE,将其复制到解压的linux-3.6.10目录下,重命名为.config。可以在该目录下用命令:ls -a 查看。
5. #make   menuconfig,注意这时终端的窗口必须足够大,不然会出错,弹不出界面。成功界面图片
选择最后有两项:load a alternative kernel configuration... 
save a alternative configuration... 
选择load an alternate  configuration保存,然后在选择save alternate configuration再保存退出,并退出配置环境。
6. #cd  /home/kernel/linux-3.6.10
   #make
  这里一定是root权限下运行,这个过程一般是2个小时左右。
7.#make bzImage
8.#make modules
9.#make modules_install
10.#make install
所有编译都完成啦。
我在/home目录下创建了一个新的目录program用来放程序。在/program下创建2个文本hello.c 和Makefile,Makefile的M必须大写,不然之后会找不到这个文件。
#vi hello.c命令
#include <linux/init.h> 
#include <linux/module.h> 
MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) 
{
printk(KERN_ALERT "Hello, world/n"); 
return 0; 
}

static void hello_exit(void) 

printk(KERN_ALERT"Goodbye, cruel world/n"); 
}

module_init(hello_init); 
module_exit(hello_exit); 

#vi Makefile命令

obj-m := hello.o
KERNELDIR := /lib/modules/3.6.10-4.fc18.i686/build
PWD := $(shell pwd)
modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions $(TARGET)
注意:$(MAKE) 和rm前面不是空格,只能用tab键。
成功的话,我们在程序目录下用ls 命令就能 看到programmodules目录下产生了如下文件:
hello.c hello.mod.c hello.o modules.order
hello.ko hello.mod.o Makefile Module.symvers
其中hello.ko就是可加载的模块文件。
#insmod  ./hello.ko   加载hello.ko到内核中
#lsmod |grep hello  查看当前所有驱动模块
#rmmod hello   移除hello模块
程序的输出结果我们可以用命令:cat   /var/log/messages |tail -6    查看。
结束。 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值