博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一个内核模块,Hello Kernel的编写历程
阅读量:5311 次
发布时间:2019-06-14

本文共 719 字,大约阅读时间需要 2 分钟。

     心血来潮,准备开始Linux Device Driver的学习。当即下了Linux Device Driver 第三版来学习。

     第一个Module Hello Kernel.Code 随处可见,这里就不粘贴了,主要说自己遇到的几个问题。

 

     1.Environment Build

     由于使用的是虚拟机上安装的Mint系统,原有的Header貌似不支持build kernel,因而自己去官网

上下了个Linux 2.6.34.13 source code.参考网上文档自己build 出image。然后开机时候遇到第一个

问题,使用'uname -r'发现版本依然是mint自带的3.2.0.23.查了下原因,需要修改/bootgrub/grub.cfg

启动文件的default的值(需要默认启动的是哪个linux kernel就用对应的submenu的值,顺序往下数)。

修改后再次运行Mint,该问题成功KO。

     2.Makefile

     按照书上写好Makefile,运行时总是提示“make:nothing need to for all”,查找原因,是因为Makefile

中每个伪目标下一行开始应该使用TAB键而不是空格。修改后make可生成Hello.ko

    3. Log

    发现insmod/rmmod hello.ko的时候,没有log输出。可能和Environment设置有关。使用cat /var/log/

syslog并在其中查找自己相关log,可找到相关printk的output信息。

 

 

转载于:https://www.cnblogs.com/xiaoz520/archive/2012/09/18/2692357.html

你可能感兴趣的文章
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
属性动画
查看>>
标识符
查看>>
给大家分享一张CSS选择器优选级图谱 !
查看>>
Win7中不能调试windows service
查看>>
通过httplib2 探索的学习的最佳方式
查看>>
快来熟练使用 Mac 编程
查看>>
Node.js 入门:Express + Mongoose 基础使用
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
使用pager进行分页
查看>>
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>