Linux2.6内核驱动移植指南
5星 · 超过95%的资源 需积分: 0 90 浏览量
更新于2024-09-28
收藏 60KB DOC 举报
"Linux2.6内核驱动移植参考文档主要涵盖了从旧版本向2.6内核迁移驱动时需要注意的关键变化,包括新的入口函数、GPL许可证、模块参数定义、模块别名、模块计数机制以及符号导出的改变。这份文档虽然没有详细列出每个函数的用法,但为开发者提供了基本的指导,并引用了http://lwn.net网站作为更深入学习的资源。"
在Linux2.6内核驱动移植的过程中,开发者需要关注以下几个重要方面:
1. **新的入口函数**:2.6内核引入了`module_init`和`module_exit`来替代旧的`init_module`和`cleanup_module`。现在需要包含`<linux/init.h>`头文件来使用这些新函数。
2. **GPL许可证**:在2.6内核中,模块的许可证声明由`MODULE_LICENSE("GPL")`变为`MODULE_LICENSE("DualBSD/GPL")`,意味着模块可以同时遵循BSD和GPL许可证。
3. **模块参数**:模块参数的定义发生了变化,需要包含`<linux/moduleparam.h>`。使用`module_param`和`module_param_named`来定义参数,还有针对字符串和数组的专门函数。旧版本中则是使用`MODULE_PARM`和`MODULE_PARM_DESC`。
4. **模块别名**:2.6内核允许在代码中直接通过`MODULE_ALIAS`定义模块别名,而不再需要在`/etc/modules.conf`配置文件中设置。
5. **模块计数**:新的计数机制包括`try_module_get`和`module_put`,它们分别用于增加和减少模块的使用计数,取代了旧的`MOD_INC_USE_COUNT`和`MOD_DEC_USE_COUNT`宏。
6. **符号导出**:在2.6内核中,模块默认不导出任何符号,需要使用`EXPORT_SYMBOL`来显式导出。而在旧版本中,所有符号默认是导出的,除非使用`EXPORT_NO_SYMBOLS`。
以上变化对于确保驱动程序与新内核兼容至关重要。开发者需要根据这些变化更新他们的驱动代码,以适应Linux2.6内核的特性。此外,查阅LWN.net等资源,可以获得更详细的函数用法和内核开发信息,帮助完成驱动的移植工作。如果需要文档的Word版本,可以联系jlpan82@gmail.com获取。
2010-04-19 上传
2013-07-24 上传
2020-03-04 上传
2024-01-08 上传
2023-08-16 上传
2023-11-19 上传
2024-01-09 上传
2024-11-07 上传
2024-10-29 上传
murphy_guo
- 粉丝: 1
- 资源: 3
最新资源
- galacticraft.team:团队Galacticraft网站
- webpack:前端dveveloper的Nanodegree课程的Udacity Webpack模块
- 小米助手3.0 软件 安装包
- etf-git-scrapper:一个使用git来获取etf每日持有量变化的差异的刮板
- openpnp:开源SMT取放硬件和软件
- reveal.js-docker-example:通过cloudogureveal.js-docker使用基于Web的幻灯片演示的高级示例
- 转换编码1.0版(tcoding.fne)-易语言
- computer-fan-42.snapshot.2.zip
- 贵阳各乡镇街道shp文件 最新版
- 易语言Dwm桌面组合效果源码-易语言
- shacl-form-react:基于* any * SHACL约束生成表单的核心逻辑
- dbeaver.zip
- docs:docs.SnailDOS.com的纪录片
- SearchMe
- 修改IE主页-易语言
- 机器学习