初学者编译Linux内核,最简单ko模块

本文详细介绍了Linux内核初学者如何编译内核和KO模块。首先,介绍了拷贝内核源代码、配置内核选项、修改版本号、编译内核和模块的步骤。然后,通过一个简单的helloko模块示例,展示了编写、编译及插入到内核中的过程。此外,还解决了在SUSE系统上遇到的启动问题。
摘要由CSDN通过智能技术生成

最近工作要在内核态编程,学习了一下自己编译内核,流程如下:

1. #cd  /usr/src/

      拷贝一份 linux 内核代码

    #cp -r   linux-2.6.32.12-0.7   zcl-linux-2.6.32.84-0.7

      如果系统中没有安装内核代码,则可以去gnu官网上下载一份最新的内核代码


2. cd 到自己的 linux 内核代码目录中

    #cd zcl-linux-2.6.32.84-0.7

    #make mrproper          //删除原来编译产生的垃圾

    #make menuconfig      //文本界面配置内核编译选项,也可用更原始的 #make config

      在弹出界面中选中自己需要编译的模块,比如在

       Genral setup--> 中选择 GCOV 功能等,选择完后,退出;  

      Genral setup 还可以选择编译好的内核 lib 安装路径,Local Version,可在后面填加字符串

       这样就可以将编译好的模块安装到不同目录中


3.  #vi Makefile

       VERSION = 2
       PATCHLEVEL = 6
       SUBLEVEL = 16
       EXTRAVERSION = .84       //将扩展版本号修改一下,以便和系统中原本内核版本区分
       NAME=zhangcunli              

     2.6 的内核代码编译只需要执行一步即可

     #make            但这样编译时间太长,可以按如下步骤执行:

     //可以替换为如下步骤:

     #make bzImage    /*编译大内核*/  

       或者 male -jn bzImage ,其中 n 的值为 2*cpu核的个数,这样可以加快编译速度

       比如,我的电脑有2个cpu,每个cpu都是双核,所以我使用#make -j8 bzImage编译

       或者#make zImage  编译压缩形式的内核

     #make modules              //编译选择的模块,或者使用 make -j8 modules

     #make modules_install   

       将编译出来的模块安装到系统指定目录中

       /lib/modules/2.6.32.84-0.7-default    其中 /lib/modules后面的一级目录为自己先前设置版本号


4.  编译成功后,就可以安装内核了

     #cp /boot/grub/menu.lst  /boot/grub/menu.lst.bak 备份一下grub引导配置文件 

     #make install

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值