在menuconfig中选择m和 y的区别
在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的区别相关推荐
- mysql 的条件 if else_使用If else条件在mysql中选择列?
我有两张桌子,分别是桌子 AccountNo User Name ---------------------------------- 1 U a 2 U b 3 U c 另一个表包含以下结构 Tem ...
- ARCGIS导入XY坐标的EXCEL文档,出现无法选择X和Y字段的问题
近日用ARCGIS导入具有XY坐标的EXCEL文档时出现了无法选择X和Y字段的问题.像下图这样,在x field栏出现的字段应该是Excel文件中的x,但这个字段却没有出现. 最后发现是excel中数 ...
- 兼容Android 11 相机拍照,从相册中选择,裁剪图片
由于android 11对存储空间进行了更新,导致无法进入裁剪或者裁剪后无法保存,返回路径等问题. android 10以下可以参考:android 相机拍照,从相册中选择,裁剪图片 前面部分和之前的 ...
- origin如何绘制双y轴曲线_如何在origin图中,做出双Y轴?
1.怎么求非自然数为底的幂函数 Origin中的自然数的幂函数很容易,用EXP函数就可以了,但是其它幂函数没有,例如:将一列数据转变为以10为底,数列为幂指数,用10^col(A)就可以了. 2.如何 ...
- 使用origin画图,求得曲线各点的斜率,如何在book的sheet表中增加x和y的列数
首先确定你的数据没有问题,然后选中数据 1.曲线斜率,点击菜单栏的Analysis--Mathematics--Differentiate,在数据表中就会多出导数(即切线斜率)列. 2.直线拟合 线性 ...
- 使用Python实现从CAD中选择多段线并提取坐标
使用Python实现从CAD中选择多段线并提取坐标 直接上代码案例 import pythoncom import win32com.clientdef vtpnt(x, y, z=0):return ...
- 【利用OpenCV-Python在图像中选择ROI区域并提取ROI坐标信息】
[利用OpenCV-Python在图像中选择ROI区域并提取ROI坐标信息] 文前白话 代码: 效果: 文前白话 在图像中选定ROI区域进行进一步的功能开发,就需要提取到相应的ROI区域坐标,对于多边 ...
- 没有shell63号单元_在ANSYS中选择合适的单元类型
原标题:在ANSYS中选择合适的单元类型 通常被 ANSYS 所提供的众多纷繁复杂的单元类型弄花了眼,如何选择正确的单元类型,也是很头疼的问题. 单元类型的选择,跟你要解决的问题本身密切相关.在选择单 ...
- java 是怎么在中删除下拉列表_删除在一个下拉列表字段中选择的选项,并且不显示在该行中存在的其他下拉列表中不工作-jquery...
我有一个包含多列的html表,在两列中我显示下拉列表 . 当用户从一个下拉列表中选择值时(选择Product1或Select Product2下拉列表),我想删除在一个下拉列表中选择的选项,并且不要在 ...
最新文章
- Error:(17, 0) SDK location not found. Define location with sdk.dir in the local.properties file or w
- 2018-2-28 Linux学习笔记
- Ubuntu环境搭建系列—JavaEE篇
- java不带package和带package的编译方式
- HTML 文件在PC移动端完美自适应布局的技巧
- 图解Linux内核:内核启动(1)从Bootloader到内核代码
- 测试负责人和测试工程师在日常工作有什么不同
- 基于ggplot2网络可视化(二)
- Win10+Pytorch0.4.1版本+cuda一键安装
- 样本不平衡 pytorch_CVPR2019 | 面对高度不均衡数据如何提高精度?这篇文章有妙招...
- 路由器自适应算法OSPF和RIP协议(通俗理解)
- 皮尔逊Person相关系数
- 【转载】GitHub中国区前100名到底是什么样的人
- php to es7,只需五步 集成新版 Elasticsearch7.9 中文搜索 到你的 Laravel7 项目
- css让四个div并排显示,css如何让两个div并排显示?
- matlab simulink 数学符号,MATLAB符号数学
- HTTP协议:三.HTTP 报文信息
- 给定经纬度计算距离_根据经纬度计算两地间的距离
- 公平性、差异性、均衡性的衡量方法
- 与其让黑客有机可乘,不如用MCK保驾护航