c - 用于查询和设置 bios 属性的 API

标签 c linux operating-system bios

假设我想在 Linux 中更改计算机 BIOS 中的设置(如果重要的话,假设是 Ubuntu 11。)存在哪些类型的 API 可以让您查询和操作 BIOS 设置?

此外,进行此类开发的良好资源有哪些?

最佳答案

The CMOS memory exists outside of the normal address space and cannot contain directly executable code. It is reachable through IN and OUT commands at port number 70h (112d) and 71h (113d). To read a CMOS byte, an OUT to port 70h is executed with the address of the byte to be read and an IN from port 71h will then retrieve the requested information.

您可以使用inboutb 宏从这些端口读取和写入,以获取存储在CMOS 中的整个BIOS 设置。有关存储的设置内存格式,请查看:http://bochs.sourceforge.net/techspec/CMOS-reference.txt

这些映射实际上是依赖于供应商的,但其中大部分应该是通用的。

虽然这不是一个 API,但是您可以通过它直接访问 CMOS 内存并制作您自己的 API。对于快速程序,我建议获取 API。在这种情况下查看@Nemo 的回答。

关于c - 用于查询和设置 bios 属性的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259124/

相关文章:

ios - 带有 ARC 的 Objective C 中的对象数组

C++ "pause: not found"无系统 ("pause")

linux - vim 将光标移动到我想要的第一个字符所在的行?

c++ - 主流操作系统上程序的 C/C++ 最大堆栈大小

c++ - 指针间接检查无效内存访问和段错误

c - 使用 strcat 向 char** 元素添加空格

c - 在 C 中,子关闭的文件描述符是否也在父中关闭?

java - 用于 Java/JNA 对象引用的 C 中的 C++ API 包装器

c++ - 有没有办法在 C++/Linux 中重用套接字地址

linux - 银行家算法的使用