在menuconfig中选择m和 y的区别:

y: 模块驱动编译到内核中,启动时自动加载

m:模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做到linux的文件系统中,然后用insmod实现动态加载。

模块加载的两种方式

1)、动态加载
     动态加载是将驱动模块加载到内核中,而不能放入/lib/modules/下。
     在2.4内核中,加载驱动命令为:insmod ,删除模块为:rmmod;
     在2.6以上内核中,除了insmod和rmmod外,加载命令更有modprobe;
     insmod和modprobe不同之处:
     insmod 绝对路径/××.o,而modprobe ××即可,不用加.ko或.o后缀,也不用加路径;最重要的一点是:modprobe同时会加载当前模块所依赖的其他模块;
     lsmod查看当前加载到内核中的所有驱动模块,同时提供其他一些信息,比如其他模块是否在使用另一个模块。

2)、静态加载

linux设备一般分为:字符设备、块设备和网络设备,每种设备在内核原始码目录树drivers/下都有对应的目录,其加载方法类似,以下以字符设备静态加载为例,假设驱动程式原始码名为ledc.c,具体操作步骤如下:
     第一步:将ledc.c源程式放入内核源码drivers/char/下;
     第二步:修改drivers/char/Config.in文件,具体修改如下:
            按照打开文件中的格式添加即可;
            在文件的适当位置(这个位置随便都能,但这个位置决定其在make menuconfig窗口中所在位置)加入以下任一段代码:
            
            tristate ’LedDriver’ CONFIG_LEDC
            if [ "$CONFIG_LEDC" = "y" ];then
            bool ’  Support for led on h9200 board’ CONFIG_LEDC_CONSOLE

fi
            说明:以上代码使用tristate来定义一个宏,表示此驱动能直接编译至内核(用*选择),也能编制至/lib/modules/下(用M选择),或不编译(不选)。

bool ’LedDriver’ CONFIG_LEDC
            if [ "$CONFIG_LEDC" = "y" ];then
            bool ’  Support for led on h9200 board’ CONFIG_LEDC_CONSOLE
            fi
            说明:以上代码使用bool来定义一个宏,表示此驱动只能直接编译至内核(用*选择)或不编译(不选),不能编制至/lib/modules/下(用M选择)。
     
     第三步:修改drivers/char/Makefile文件
            在适当位置加入下面一行代码:
             obj-$(CONFIG_LEDC)  +=  ledc.o
            或在obj-y一行中加入ledc.o,如:
            obj-y += ledc.o mem.o 后面不变;
经过以上的设置就能在执行make menuconfig命令,在窗口中的character devices---> 中进行选择设置,选择后重新编译就ok了。

原文地址:http://m.blog.csdn.net/blog/yangxingbo0311/7349525

在menuconfig中选择m和 y的区别相关推荐

  1. mysql 的条件 if else_使用If else条件在mysql中选择列?

    我有两张桌子,分别是桌子 AccountNo User Name ---------------------------------- 1 U a 2 U b 3 U c 另一个表包含以下结构 Tem ...

  2. ARCGIS导入XY坐标的EXCEL文档,出现无法选择X和Y字段的问题

    近日用ARCGIS导入具有XY坐标的EXCEL文档时出现了无法选择X和Y字段的问题.像下图这样,在x field栏出现的字段应该是Excel文件中的x,但这个字段却没有出现. 最后发现是excel中数 ...

  3. 兼容Android 11 相机拍照,从相册中选择,裁剪图片

    由于android 11对存储空间进行了更新,导致无法进入裁剪或者裁剪后无法保存,返回路径等问题. android 10以下可以参考:android 相机拍照,从相册中选择,裁剪图片 前面部分和之前的 ...

  4. origin如何绘制双y轴曲线_如何在origin图中,做出双Y轴?

    1.怎么求非自然数为底的幂函数 Origin中的自然数的幂函数很容易,用EXP函数就可以了,但是其它幂函数没有,例如:将一列数据转变为以10为底,数列为幂指数,用10^col(A)就可以了. 2.如何 ...

  5. 使用origin画图,求得曲线各点的斜率,如何在book的sheet表中增加x和y的列数

    首先确定你的数据没有问题,然后选中数据 1.曲线斜率,点击菜单栏的Analysis--Mathematics--Differentiate,在数据表中就会多出导数(即切线斜率)列. 2.直线拟合 线性 ...

  6. 使用Python实现从CAD中选择多段线并提取坐标

    使用Python实现从CAD中选择多段线并提取坐标 直接上代码案例 import pythoncom import win32com.clientdef vtpnt(x, y, z=0):return ...

  7. 【利用OpenCV-Python在图像中选择ROI区域并提取ROI坐标信息】

    [利用OpenCV-Python在图像中选择ROI区域并提取ROI坐标信息] 文前白话 代码: 效果: 文前白话 在图像中选定ROI区域进行进一步的功能开发,就需要提取到相应的ROI区域坐标,对于多边 ...

  8. 没有shell63号单元_在ANSYS中选择合适的单元类型

    原标题:在ANSYS中选择合适的单元类型 通常被 ANSYS 所提供的众多纷繁复杂的单元类型弄花了眼,如何选择正确的单元类型,也是很头疼的问题. 单元类型的选择,跟你要解决的问题本身密切相关.在选择单 ...

  9. java 是怎么在中删除下拉列表_删除在一个下拉列表字段中选择的选项,并且不显示在该行中存在的其他下拉列表中不工作-jquery...

    我有一个包含多列的html表,在两列中我显示下拉列表 . 当用户从一个下拉列表中选择值时(选择Product1或Select Product2下拉列表),我想删除在一个下拉列表中选择的选项,并且不要在 ...

最新文章

  1. Error:(17, 0) SDK location not found. Define location with sdk.dir in the local.properties file or w
  2. 2018-2-28 Linux学习笔记
  3. Ubuntu环境搭建系列—JavaEE篇
  4. java不带package和带package的编译方式
  5. HTML 文件在PC移动端完美自适应布局的技巧
  6. 图解Linux内核:内核启动(1)从Bootloader到内核代码
  7. 测试负责人和测试工程师在日常工作有什么不同
  8. 基于ggplot2网络可视化(二)
  9. Win10+Pytorch0.4.1版本+cuda一键安装
  10. 样本不平衡 pytorch_CVPR2019 | 面对高度不均衡数据如何提高精度?这篇文章有妙招...
  11. 路由器自适应算法OSPF和RIP协议(通俗理解)
  12. 皮尔逊Person相关系数
  13. 【转载】GitHub中国区前100名到底是什么样的人
  14. php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目
  15. css让四个div并排显示,css如何让两个div并排显示?
  16. matlab simulink 数学符号,MATLAB符号数学
  17. HTTP协议:三.HTTP 报文信息
  18. 给定经纬度计算距离_根据经纬度计算两地间的距离
  19. 公平性、差异性、均衡性的衡量方法
  20. 与其让黑客有机可乘,不如用MCK保驾护航

热门文章

  1. 新形势下,如何进行智慧园区移动应用建设?
  2. 无心剑英汉双语诗003.《长相思》
  3. 每日蓝桥-基础练习 字母图形
  4. c语言 精华,C语言课件完整版(精华)
  5. 那些年 回不去的时光深处
  6. android调用系统裁剪功能,Android图片剪裁之调用系统剪裁
  7. 软件工程师和硬件工程师
  8. 如何让自己一直成为一个 Python 菜鸡儿?
  9. 《剑侠情缘V5.0》网络单机版烽火诸侯私服搭建
  10. 还是很想喷一下Xbox360 natal……