如何让linux驱动模块随机器启动

如何让linux驱动模块随机器启动,第1张

LINUX中的驱动设计是嵌入式LINUX开发中十分重要的部分,它要求开发者不仅要熟悉LINUX的内核机制、驱动程序与用户级应用程序的接口关系、考虑系统中对设备的并发 *** 作等等,而且还要非常熟悉所开发硬件的工作原理。这对驱动开发者提出了比较高的要求,本章是给大家了解驱动设计提供一个简单入门的一个实例,并不需要提供太多与硬件相关的内容,这部分应该是通过仔细阅读芯片厂家提供的资料来解决。

驱动程序的作用是应用程序与硬件之间的一个中间软件层,驱动程序应该为应用程序展现硬件的所有功能,不应该强加其他的约束,对于硬件使用的权限和限制应该由应用程序层控制。但是有时驱动程序的设计是跟所开发的项目相关的,这时就可能在驱动层加入一些与应用相关的设计考虑,主要是因为在驱动层的效率比应用层高,同时为了项目的需要可能只强化或优化硬件的某个功能,而弱化或关闭其他一些功能;到底需要展现硬件的哪些功能全都由开发者根据需要而定。驱动程序有时会被多个进程同时使用,这时我们要考虑如何处理并发的问题,就需要调用一些内核的函数使用互斥量和锁等机制。

驱动程序主要需要考虑下面三个方面:提供尽量多的选项给用户,提高驱动程序的速度和效率,尽量使驱动程序简单,使之易于维护。

LINUX的驱动开发调试有两种方法,一种是直接编译到内核,再运行新的内核来测试;二是编译为模块的形式,单独加载运行调试。第一种方法效率较低,但在某些场合是唯一的方法。模块方式调试效率很高,它使用insmod工具将编译的模块直接插入内核,如果出现故障,可以使用rmmod从内核中卸载模块。不需要重新启动内核,这使驱动调试效率大大提高。

模块中必须的两个基本函数:在Linux 2.4 内核中是函数init_module和cleanup_module;在Linux 2.6 的内核中是宏module_init(your_init_func) 和module_exit(your_exit_func)。初始化函数的作用一般是分配资源、注册设备方法等,退出函数的作用一般是释放所申请的资源等。

1、将驱动程序文件bcm5700src.rpm复制到一个临时目录中,并在此目录中运行以下命令;

2、运行以下命令切换到驱动目录中;

3、此目录中会生成一个名字为bcm5700.spec的文件,运行以下命令对驱动程序进行编译;

4、运行以下命令切换到RPM目录中;

5、运行以下命令安装驱动程序;

6、运行以下命令加载驱动模块;

7、运行kudzu命令,系统会自动搜索到硬件,进行配置即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7682244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存