1. 配置

在配置内核时,如果选择了CONFIG_DMI选项,会将DMI(Desktop Management interface)功能添加到内核中。此功能代码在drivers/firmware/Dmi_scan.c文件中。

2. 功能实现

2.1 函数调用关系

dmi_scan_machineàdmi_presentàdmi_walk_earlyàdmi_tableàdmi_decode

dmi_scan_machine函数在地址空间0xF0000~0x100000之间通过调用dmi_present函数判断DMI表是否存在;

dmi_present函数检查标识_DMI_并计算CRC值来确定DMI表是否正确。当此表正确时,通过表头信息得到dmi_num、dmi_len、dmi_base值;

dmi_walk_early函数通过dmi_num、dmi_len、dmi_base信息,调用dmi_table对DMI表信息进行解析;

dmi_table函数调用dmi_decode函数完成DMI信息的解析和存储;

dmi_decode解析DMI信息,包含BIOS Information、System Information、Base Board Information、Chassis Information、Onboard Devices Information、OEM Strings、IPMI Device Information、Onboard Devices Extended Information,并且将这些信息存储起来;

2.2  DMI信息使用

通过dmi_decode函数,已经将相关信息进行了存储。当内核中其他模块需要使用DMI信息时,可以调用相关函数,比如dmi_check_system。此

简历中linux内核开发,Linux内核中DMI实现简介相关推荐

  1. 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程

    挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...

  2. Linux 内核开发 - Eclipse内核开发环境搭建

    翻译这篇文章的时候,我也想过可能会有高手说,内核开发用vi就足够了,还用什么eclipse,当然对于内核中函数特别了解的人确实如此,但是对于新 手,每使用一个函数,就要去查找一下函数的定义,实在是非常 ...

  3. Android内核开发 Linux C编程调用内核模块设备驱动

    本文出处: http://blog.csdn.net/leytton/article/details/52738901 本文目的为Linux系统环境下:1.编写内核模块程序并编译 2.加载内核模块 3 ...

  4. linux驱动开发之内核线程

    内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成--独立运行在内核空间的标准进程.内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置 ...

  5. linux 内核模块开发,Linux内核模块开发(笔记)

    Linux内核模块开发(笔记) 作者:扶凯 来源: 扶凯 时间:2011-11-21 00:21:11 人气:249 评论:0 标签: 内核 个人笔记..在不放过来都快找不到了.有空还得好好整理一下了 ...

  6. linux内核开发_Linux 内核的代码仓库管理与开发流程简介

    作者简介:老 U,致力于开源自由软件推广. 原创雄文:由泰晓读者投递的各类社区原创好文. 版权声明:本文最先发表于 "泰晓科技" 微信公众号,欢迎转载,转载时请在文章的开头保留本声 ...

  7. c语言linux内核开发,Linux 内核源代码的几个C语言技巧

    1.#define中使用do{statement}while(0) 保证statement无论在何处都能正确执行一次 2.将链表操作抽象出来,与宿主结果相互独立.所有的链表操作都作用与list_hea ...

  8. linux驱动开发扩展--内核启动logo

    static struct logo_data {int depth;int needs_directpalette;int needs_truepalette;int needs_cmapreset ...

  9. Linux系统开发之路-中

    4.Linux的安装(Windows环境下): 1)Windows环境需要借助虚拟机来安装Linux系统,这个推荐使用的软件是VMWare,官网能下载到的最新版本是Workstation Pro15. ...

最新文章

  1. 样式集(五)微信朋友圈样式模拟
  2. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分
  3. UNIX下C语言的图形编程-curses.h函数库
  4. 【Error】Provider com.sun.xml.stream.ZephyrParserFactory not found
  5. MyBatis 插件怎么编写和使用?原理是什么?
  6. SpringBoot 全局异常处理
  7. java被电脑阻止怎么办_学电脑,一定要记住的6个常用命令,它能让你快速成为电脑达人...
  8. 【转】Linux的五个查找命令:find,locate,whereis,which,type
  9. python音频实时频谱分析_基于python的音频设计及频谱分析
  10. 数字信号处理的fpga实现_数字信号处理的卷积运算实现
  11. 51单片c语言编程实例,51单片机C语言编程实例
  12. mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据
  13. 换个视角!那么用户到底想要怎么样的产品?
  14. Word文档编辑受限解决办法
  15. 【python】18行代码带你采集国外网小姐姐绝美图片
  16. 微博官方API使用方法【全流程教学】
  17. 个人总结之前端技巧-----页面的设计流程
  18. 张宇考前叮嘱:关于代数、级数、微分方程的三道送命题
  19. 移位运算,移位操作应用
  20. 柞水溶洞门票 柞水溶洞门票价格

热门文章

  1. Mybatis Plus轻松上手
  2. 介绍Docker镜像
  3. 浅谈资产治理与指纹识别
  4. (Fw)STL map 详解
  5. nt和win2k源码模块位置
  6. 防抖和节流函数详解(立即执行/非立即执行)
  7. emul11是鸿蒙吗,EMUI11什么时候更新-EMUI11有什么新功能
  8. Linux查看双网卡状态
  9. 硕、博士论文致谢词产生器
  10. 选择合适的数据存储方案