Linux内核中ideapad-laptop.c文件全解析10

news2024/10/8 16:50:19

接前一篇文章《Linux内核中ideapad-laptop.c文件全解析9》,地址为:

Linux内核中ideapad-laptop.c文件全解析9_蓝天居士的博客-CSDN博客

本文针对于上一篇文章提到的配置选项"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED"进行详细分析。在make menuconfig启动的界面中搜索"LEDS_BRIGHTNESS_HW_CHANGED",会得到如下结果:

可以看到,是在"Device Drivers" -> "LED Support" -> "LED Class Support"下。进入到相关页面,如下所示:

从这里就可以知道,默认是选中了"LED Class brightness_hw_changed attribute support"这一项的,即定义了"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED"。

再看看make menuconfig在内核源码根目录下生成的.config文件(内容过长,不贴出),在其中查找"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED",如下所示:

这就说明,默认的配置是使能了"CONFIG_LEDS_BRIGHTNESS_HW_CHANGED"配置项的。而在其上边的"CONFIG_NEW_LEDS=y"和"CONFIG_LEDS_CLASS=y"也与第一张图中的前提条件对应。

比较make menuconfig选中和不选中该配置项生成的.config文件的差异(第一次在"Device Drivers" -> "LED Support" -> "LED Class Support"下选中"LED Class brightness_hw_changed attribute support"项,保存退出,将生成的.config文件重命名为.config_old;第二次不选中,保存退出,生成新的.config文件),结果如下所示:

$ meld .config .config_old

两次生成的.config就只有这一项差异,也就是说这个配置项只有一处独立影响,并没有连带影响。

最后科普一下为什么make menuconfig/xxx_defconfig/savedefconfig的作用,参考:make defconfig savedefconfig olddefconfig区别_flc2762的博客-CSDN博客_.config.old

1. 如果.config不存在,运行make config/menuconfig时的缺省设置由固化在各个Kconfig文件中各项目的缺省值决定。
2. 如果.config存在,运行make config/menuconfig时的缺省设置即是当前.config的设置,若对设置进行了修改,.config将被更新。
3. make xxx_defconfig就是用arch/xxx/xxx_defconfig文件中的配置值修改固化在各个Kconfig文件中各项目的缺省值生成当前的.config。

4.make savedefconfig就是对make xxx_defconfig的反向操作。用当前的.config中相对各个Kconfig文件中的缺省值有修改的将修改内容保存到defconfig中。(执行完3,就执行4,defconfig内容和xxx_defconfig的内容将是一样的)
5. make oldconfig是用当前的.config作为基础,按相互依赖关系重新生成一个.config文件。如果新生成的.config文件和作为基础的.config文件不一致。就把作为基础的.config重命名为.config.old,用于恢复对.config的修改。

.config生成逻辑
1.首先通过make xxx_defconfig,生成最开始的.config。
其中defconfig是最小的config项。
2.通过make saveconfig通过.config生成最小的defconfig文件。
3.通过scripts/config --file .config -e CONFIG_xxx 更新.config文件。-e是改变CONFIG_xxx为y;-m是改变CONFIG_xxx为m;-d是改变CONFIG_xxx为n
4.通过make oldconfig将刚增加的config项的.config做依赖检查重新生成新的.config文件,且新生成的.config和以前的不同是,将旧的.config重命名为.config.old文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python -- PyQt5(designer)中文详细教程(五)对话框

对话框 对话框是⼀个现代GUI应用不可或缺的⼀部分。对话是两个人之间的交流,对话框就是⼈与电脑之 间的对话。对话框用来输⼊数据,修改数据,修改应用设置等等。 输入文字 QInputDialog 提供了⼀个简单方便的对话框,可以输入字符…

SpringBoot 玩一玩代码混淆,防止反编译代码泄露!

编译 简单就是把代码跑一哈,然后我们的代码 .java文件 就被编译成了 .class 文件 反编译 就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来,可以看到你的代码写的啥。 比较常用的反编译工具 JD-GUI ,直接把编译好的jar丢进…

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别

深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别一、前言二、网络结构二、可解释性三、记忆主线四、遗忘门五、输入门六、输出门七、手写数字识别实战7.1 引入依赖库7.2 加载数据7.3 迭代训练7.4 数据验证八、参考资料一、前言 基本的RNN存在梯度消失和梯度爆炸问题&am…

毕业设计-基于机器视觉的深蹲检测识别-TensorFlow-opencv

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

LeetCode刷题复盘笔记—一文搞懂完全背包之377. 组合总和 Ⅳ问题(动态规划系列第十二篇)

今日主要总结一下动态规划完全背包的一道题目,377. 组合总和 Ⅳ 题目:377. 组合总和 Ⅳ Leetcode题目地址 题目描述: 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的…

[附源码]计算机毕业设计基于web的羽毛球管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python软件编程等级考试一级——20220915

Python软件编程等级考试一级——20220915理论单选题判断题实操第一题第二题理论 单选题 1、表达式len(“学史明理增信 ,读史终生受益”) > len(" reading history will benefit you ")的结果是? A、0 B、True C、False D、1 2、表达…

SLMi333国内首款兼容光耦带DESAT保护功能的隔离式栅极驱动器

SLMi333国内首款兼容光耦带DESAT保护功能的隔离式栅极驱动器,内置快速去饱和(DESAT)故障检测功能,米勒钳位功能,漏极开路故障反馈,软关断功能以及可选择的自恢复模式,兼容光耦隔离驱动器,一款高…

安装mongodb6

一、安装mongodb6.0.2 1.官网下载社区版 https://www.mongodb.com/ 2.双击下载的文件,按步骤安装 选择custom 自定义安装 改一下安装地址,路径最好不要带空格 Install MongoD as a Service 作为服务方式安装 Run the service as Network Service…

SuperMap iClient for Leaflet对EPSG:4509图加载滑动查询

作者:John SuperMap iClient for Leaflet对EPSG:4509地图加载&滑动查询 在WebGIS开发使用中,我们会遇到地图显示不了,以及查询到数据显示不出的问题,因此本文就以EPSG:4509为例介绍该坐标系地图加载和查询。 1、EPSG:4509地图…

数据分析案例:基于水色图像的水质识别

大数据分析课程、大数据分析班、大数据案例等,围绕大数据展开讲解。 数据分析案例:基于水色图像的水质识别,通过学习本案例,可以掌握图像切割、特征提取、模型构建和模型评价的主要方法和技能,并为后续相关课程学习及将…

蚂蚁面试官:Zookeeper 的选举流程是怎样的?我当场懵逼了

​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 面试经常会遇到面试官问 Zookeeper 的选举原理,我心想,问这些有啥用吗?又不要我造火箭! 每次面试也只知道个大概,并没有深究…

分布式电源接入对配电网影响的研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

vue3 + element 从0到1搭建前端基础框架

一、框架搭建 框架代码 个人博客 往往从0到1开发项目时发觉无从下手,或者很可能一步一个坑,因为大多基础框架公司已经搭建完毕的,新加入的成员也都是在此基础上进行功能模块的拓展。网上也鲜有详尽的全流程参考,多是某个局部功能的…

【Vue】webpack的基本使用

✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 ajax学习 文章目录webpack的学习目标前端工程化 小白眼中的前端开发 vs 实际的前端开发 什么是前端工程…

CISP考试大纲/范围

CISP考试主要是考CISP知识体系大纲,分别为信息安全保障、信息安全技术、信息安全管理、信息安全工程和信息安全标准法规这五大知识类,每个知识类根据其逻辑划分为多个知识体,每个知识体包含多个知识域,每个知识域由一个或多个知识…

Java项目:SSM失物招领管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 主要功能包括: 用户发布失物,或者招领失物,管理员对用户,失物信息进行增删改查。 环境需要 1…

新课程教学杂志新课程教学杂志社新课程教学编辑部2022年第19期目录

核心素养 核心素养视域下的历史教学设计——以“清朝君主专制的强化”为例 王威; 1-3 新中考背景下文本分析能力与核心素养的培育 黄嫄; 4-5《新课程教学》投稿:cn7kantougao163.com 基于核心素养的物理教学评价改良 李红; 6-7 初中语文综合性学习的…

Metabase学习教程:系统管理-6

Metabase可扩展性 扩展Metabase以支持更多人和数据库的最佳实践。 Metabase是一个可扩展的、经过实战的软件,被成千上万的公司用来提供高质量的自助服务分析。它通过水平扩展支持高可用性,而且它是开箱即用的高效工具:一台拥有4gb内存的单核…

vue.js axios 数据不刷新

getServerList(){axios.get(/server/showList).then(function(response){this.servers response.data // 不刷新console.log(response.data)}).catch(function (error) {console.log(error);}); } 打印this:this不是vue对象修改为:getServerList(){axi…