Linux网卡驱动程序编写
模块可以动态地加载、卸载。在2.0.xx版本里,还有kerneld自动加载模块,但是2.2.xx中已经取消了kerneld。手工加载使用insmod命令,卸载用rmmod命令,看内核中的模块用lsmod命令。
编译驱动程序用gcc,主要命令行参数-DKERNEL-DMODULE。并且作为模块加载的驱动程序,只编译成obj形式(加-c参数)。编译好的目标文件放在/lib/modules/2.x.xx/misc下,在启动文件里用insmod加载。
四.进一步的阅读
Linux程序设计资料可以从网上获得。这就是开放源代码的好处。并且没有什么“未公开的秘密”。我编写驱动程序时参阅的主要资料包括:
Linux内核源代码
byollyinBBS水木清华站
可以选择一个模板作为开始,内核源代码里有一个网络驱动程序的模板,
drivers/net/skeleton.c。里面包含了驱动程序的基本内容。但这个模板是以以太网设备为对象的,以太网的处理在Linux系统里有特殊“待遇”,所以如果不是以太网设备,有些细节上要注意,主要在初始化程序里。
最后,多参照别人写的程序,听听其他开发者的经验之谈大概是最有效的帮助了。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论