<div>Linux驱动的两种安装方式</div><div>https://blog.csdn.net/u012313689/article/details/52837743</div>

一、概念简述在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间。动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块,采用这种动态加载的方式便于驱动程序的调试,同时可以针对产品的功能需求,进行内核的裁剪,将不需要的驱动去除,大大减小了内核的存储容量。在台式机上,一般采用动态加载的方式;在嵌入式产品里,可以先采用动态加载的方式进行调试,调试成功后再编译进内核。二、实例分析下面以Linux下音频驱动的加载为例,分析两种方式的加载过程。1、静态加载1)解压内核,修改硬件架构和编译器;将内核压缩文件linux-2.6.8.1-zzm.tar.bz2解压到/home/sxy/目录下,命令是

,解压后得到内核源码目录文件linux-2.6.8.1-zzm,进入该目录,编辑Makefile文件,将ARCH改为arm,CROSS_CPMPILE改为arm-linux-,如下图所示:<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHAgYWxpZ249"center">

保存后退出。2)配置内核;在内核源码树目录下,输入make menuconfig命令,进入内核配置界面,进入“Load an Alternate Configuration File”选项,载入配置文件kernel_2410.cfg,保存退出,过程如下图所示:

再次输入make menuconfig命令,编辑sound选项,将其编译进内核(*),结果如下图所示,最后保存配置,退出。

3)编译内核;在源码树目录下输入make zImage命令,编译完成后可以在/arch/arm/boot/目录下生成zImage镜像文件。4)下载内核将内核镜像文件zImage下载到开发板上,当串口终端显示如下信息时,表示驱动加载成功。

2、动态加载1)解压内核,过程与静态编译时一样,略;2) 配置内核,前面过程与静态编译时一样,再次输入命令make menuconfig,配置sound选项时,将其编译成模块(M),结果如下图所示,最后保存配置,退出;

这样就将声卡驱动编译成模块,可以动态选择是否加载到内核中。3)下载内核将内核镜像文件zImage下载到开发板上,验证能否驱动声卡的过程如下:

说明:首先,将虚拟机下的/home/目录挂载到开发板上的/tmp/目录下,然后先后加载soundcore.ko和 s3c2410-oss.ko两个模块,最后通过lsmod命令查看是否加载上声卡驱动,结果显示加载成功,这样就可以在应用空间编程,实现音频的录放等操作。PS:①采用make menuconfig命令时,选项*代表Y,表示将驱动编译进内核;M表示将驱动编译成模块;空代表N,表示不编译;②内核文件与模块两者有很多东西必须匹配,编译器版本、源码版本、编译时的配置等,所以当内核文件修改了,譬如修改了驱动的编译选项(Y、M、N),那么就必须重新编译和下载内核,否则会出错。三、遇到的问题问题:动态加载过程中,出现下面错误:

错误:注册和注销设备的符号未知。解决方法:寻找依赖关系,查看几个符号的定义,发现在soundcore.c文件中定义了以上几个函数,同时导出了符号,以register_sound_dsp为例,如下图所示:

所以应该先加载soundcore.ko,后加载s3c2410-oss.ko。注意:在Kconfig和Makefile文件中定义了依赖关系,也可以查找到问题的原因。2016年10月17日星期一12时22分

(0)

相关推荐

  • 如何编译和更换Linux系统内核

    step0 - 完成编译和安装Linux需要的基本条件 内核源代码 从http://www.kernel.org即可下载代码,注意你需要下载的是完整的源代码包(点击tarball即可下载),而不是pa ...

  • 继续学习:家用监控自己就能装,两种安装方式都不难,看懂学会不求人!

    前一段时间发了一篇文章: 客户都自己动手装监控了!看完这个,安防人该咋想? 惹来不少小伙伴们的围观,今天无意中上网,一个推送过来,发现又来一个普及教程,不敢独享,转给更多人,一起学习.也同时发现,普通 ...

  • 家用监控自己就能装,两种安装方式都不难,看懂学会不求人

    监控我们都不陌生了,道路上的违章拍照监控.电梯里的防偷监控.小区门口的人员识别监控,我们都经常看到,监控可以帮助警察破案,帮助解决交通责任归属,查看工作人员的实时工作情况,远程教学与会议,总之,监控确 ...

  • 干挂、湿贴、湿挂、干贴 ,我们应该选择哪种安装方式呢?

    装饰装修技术联盟 一起学习装饰装修施工技术.装修案例.装修流程.装修材料.装修知识等装修内容 公众号 来源丨果石.中国石材网 很多工程师可能都有过这样的经历 我在图上标注的石材干挂 到现场却做成了湿贴 ...

  • 行车记录仪如何安装?哪种安装方式更好?

    现在越来越多的车友都会选择在车上安装行车记录仪,那么行车记录仪如何安装,哪种安装方式行车记录仪更好呢? 行车记录仪如何安装? 行车记录仪安装的重点就是在于如何取电,目前主流的有3种取电方式,第一种是在 ...

  • 监控项目如何报价?这两种报价方式必须清楚

    前几天我们发布了关于监控维保三种收费方式,有很多朋友留言问到关于监控如何报价? 监控项目是弱电中做的最多的项目,是弱电中一个非常大的分支,每天都有不少朋友在给弱电君留言,监控项目如何报价?在我们弱电V ...

  • 切削加工的两种加工方式:车床加工&amp;铣床加工

    公差帮APP2020-12-02 15:32:00 昨天讲到了切削加工的基础概念.加工精度影响因素等内容.今天来了解一下切削加工的种类,切削加工大致可分为2类,分别是加工物固定.工具旋转的" ...

  • Nature:重大发现!线粒体竟有两种分裂方式,在不同条件下出现。

    化学家安托万-拉瓦锡(Antoine Lavoisier)他的见解之一是认识到,正如他所描述的那样,呼吸是"只是碳和氢的缓慢燃烧,这类似于灯或点燃的蜡烛的工作方式,从这个角度来看,呼吸的动物 ...

  • 走势的两种分解方式

    前面的文章重点分析了一下在缠论世界中,大级别所指的基准就是日线级别.那么如果用日线级别分析个股,那么分析分解方式有哪些呢? 在原著中,作者先从第11课到第14课,讲到一个均线系统及其应用,专门讲到一个 ...

  • LED驱动的四种连接方式

    描述 一.串联方式 这种串联连接的方式电路比较简单,首尾连接在一起,LED工作时流过的电流一致很好,由于LED属于电流型器件,因此基本可以保证每个LED的发光强度一致.采取这种LED连接方式的电路简单 ...