社区
Linux_Kernel
帖子详情
Linux 2.6 和2.4 驱动开发有什么不同,特别是驱动模块
zdhzidy
2004-11-16 03:57:42
如题
请问那里有相应的资料。麻烦大家介绍一下。
...全文
128
5
打赏
收藏
Linux 2.6 和2.4 驱动开发有什么不同,特别是驱动模块
如题 请问那里有相应的资料。麻烦大家介绍一下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
binjuny
2004-11-17
打赏
举报
回复
现在让我们来看一个例子,分析一下新的内核编译系统如何来编译并加载一个简单的模块。这个模块是一个“hello world”模块,代码和2.4模块代码基本类似,只是 module_init 和 module_exit 要换成 init_module 和 cleanup_module (内核2.4.10模块已经使用这种机制)。这个模块命名为 hello.c,Makefile 文件如下:
清单 3. 驱动程序 makefile 文件示例
KERNEL_SRC = /usr/src/linux
SUBDIR = $(KERNEL_SRC)/drivers/char/hello/
all: modules
obj-m := module.o
hello-objs := hello.o
EXTRA_FLAGS += -DDEBUG=1
modules:
$(MAKE) -C $(KERNEL_SRC) SUBDIR=$(SUBDIR) modules
makefile 文件使用内核编译机制来编译模块。编译好的模块将被命名为 module.ko,并通过编译 hello.c 和连接 vermagic 而获得。KERNEL_SRC 指定内核源文件所在的目录,SUBDIR 指定放置模块的目录。EXTRA_FLAGS 指定了需要给出的编译期标记。
一旦新模块(module.ko)被创建,它可以被新的模块工具加载或缷载。2.4中的原有模块工具不能用来加载或缷载2.6的内核模块。这个新的模块加载工具会尽量减少在一个设备仍在使用的情况下相应的模块却被缷载的冲突发生,而是在确认这些模块已经没有任何设备在使用后再缷载它。产生这种冲突的原因之一是模块使用计数是由模块代码自己来控制的(通过MOD_DEC/INC_USE_COUNT)。
在2.6中,模块不再需要对引用计数进行加或减,这些工作将在模块代码外部进行。任何要引用模块的代码都必须调用 try_module_get(&module),只有在调用成功以后才能访问那个模块;如果被调用的模块已经被缷载,那么这次调用会失败。相应的,可以通过使用 module_put() 来释放对模块的引用。
CoolQ
2004-11-17
打赏
举报
回复
visit www.lwn.net.
there are a series of articles about porting 2.4 driver to 2.6
ChChip
2004-11-16
打赏
举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
zdhzidy
2004-11-16
打赏
举报
回复
还是自己顶阿 阿阿阿
zdhzidy
2004-11-16
打赏
举报
回复
自己顶!!
Linux
2.6
与
2.4
内核
驱动
程序的区别
###
Linux
2.4
与
2.6
内核
驱动
程序的区别 #### 概述 随着技术的进步和发展,
Linux
内核经历了多个版本的更迭。从
Linux
2.4
到
2.6
版本的更新,不仅仅是简单的数字变化,而是包含了大量重要的改进和增强功能。...
2.4
和
2.6
内核模块和
驱动
(转载)
《
2.4
和
2.6
内核模块和
驱动
详解》 在
Linux
系统中,内核扮演着至关重要的角色,而内核模块和
驱动
程序是其不可或缺的部分。随着内核版本的迭代,从
2.4
到
2.6
,内核在可装载模块机制、设备模型以及API等方面进行了诸多...
linux
kernel
2.4
和
2.6
的
驱动
编写区别
在
Linux
内核的发展历程中,从
2.4
版到
2.6
版是一个重要的转折点,这一转变带来了许多改进和优化,其中就包括
驱动
程序编写方式的改变。这些变化主要涉及模块初始化、许可协议、模块参数、符号导出、内核版本检查、设备...
神龙DVD解压卡
linux
2.6
内核
驱动
程序
在
Linux
2.6
内核版本中,针对神龙DVD解压卡的
驱动
程序
开发
是一项重要任务,因为这将使得用户能够在基于
2.6
内核的
Linux
系统上充分利用神龙DVD解压卡的功能,提高系统性能和用户体验。 神龙DVD解压卡是一款专门用于...
reltek r8168 网卡
驱动
for
linux
2.4
2.6
标题中的“Reltek r8168 网卡
驱动
for
Linux
2.4
2.6
”是指Realtek公司生产的R8168网络控制器的
驱动
程序,专为
Linux
操作系统
2.4
和
2.6
内核版本设计。Realtek R8168是一款常见的PCI-E接口的千兆以太网控制器,广泛应用...
Linux_Kernel
4,466
社区成员
17,461
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章