linux中如何配置PCI和ACPI

47次阅读
没有评论

共计 3897 个字符,预计需要花费 10 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 linux 中如何配置 PCI 和 ACPI,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

这里我们可以启用由 ACPI 控制的扩展坞和可移动驱动器槽的支持 (Dock)。记住,ACPI(Advanced Configuration and Power Management Interface) 是一个电源管理系统。扩展坞是一种其他的设备通过额外的接口插入的设备。扩展坞可以容纳许多不同的端口和连接器。一个 ACPI 控制的扩展坞是指其电源管理是通过 ACPI 进行的。驱动器槽是一套可以增加硬盘的设备,这也可以由 ACPI 管理。

下面,我们允许 ACPI 用来管理空闲的 CPU(Processor)。这会让处理器在空闲时进入 ACPI C2 或者 C3 状态。这可以节省电源并降低 CPU 芯片的温度。处理器只在 100% 没有占用时才进入空闲状态。没有程序必须请求一个特定时间的 CPU 资源。

CPU 电源有四个状态 – C0、C1、C2 和 C3。C0 是操作激活状态。C1(Halt)是一个不执行指令激活状态,但是可以立刻执行指令。C2(Stop-Clock)是一种断电状态。C3(Sleep)是一种比 C2 更彻底的断电状态。在 C3 状态中,现在缓存不再被同步或者管理,直到 CPU 离开这个状态。第五个状态称作 C1E(Enhanced Halt State),他拥有低功耗。

如果启用了 IPMI 驱动,那么 ACPI 可以访问 BMC 控制器 (IPMI)。基板管理控制器(BMC) 是一种管理软件和硬件间连接的微控制器。智能平台管理接口 (IPMI) 是一种框架,通过直接的硬件层面而不是登录 shell 或者操作系统层面来管理计算机。

ACPI v4.0 进程聚合器允许内核应用一个 CPU 配置到所有系统中的处理器中(Processor Aggregator)。截止到 ACPI v4.0,只有 idle 状态可以用这个方式配置。

接下来,可以启用 ACPI 热区(Thermal Zone)。多数硬件支持这个特性。这允许风扇的电源由 ACPI 管理。

如果启用这个选项,自定义 DSDT 可以链接到内核。在这个设置中,开发者必须在文件中包含完整的路径名。系统差异表 (DSDT) 是一个包含了系统支持的电源事件信息的文件。它不需要输入路径名,这些表存在于固件中。内核会帮你处理这些。这个主要的目的是用于如果开发者需要使用不同于设备内置的表时用到。

任意 ACPI 表都可以通过 initrd 来覆盖(ACPI tables override via initrd)。ACPI 表是指示如何控制并与硬件交互的基础规则和指令。

像内核的其他部分一样,ACPI 系统也可以生成调试信息(Debug Statements)。像其他调试特性一样,你或许希望禁用它并省下 50KB。

启用下面的特性会为系统检测到的每个 PCI 插槽 (PCI slot detection driver) 创建文件(/sys/bus/pci/slots/)。一个 PCI 插槽是在 PCI 主板上的一个端口,它允许用户接上其他的 PC 设备。PCI 是主板的一种类型。PCI 是指组件互相通信的方式。有些应用程序可能需要这些文件。

电源管理定时器是另外一种电源管理系统(Power Management Timer Support)。这是许多系统追踪时间的方式。这个只需要很少的能源。处理器的空闲、电压 / 频率调节和节流都不会影响这个定时器。大量的系统需要使用这个特性。

下面,可以启用 ACPI 模块和容器设备驱动(Container and Module Devices)。这会启用处理器、内存和节点的热插拔支持。它需要 NUMA 系统。

下面的驱动提供对 ACPI 内存的热插拔支持(Memory Hotplug)。有些设备甚至启用这个驱动也不支持热插拔。如果驱动以模块形式加入,那么模块将会被 acpi_memhotplug 调用。

注意:对于内核某个特定的功能,硬件、BIOS 和固件在必须支持时会有问题。有些系统的 BIOS 是不控制硬件的。这种类型的 BIOS 通常不会限制特性。如果内核确实有一个特定的功能,硬件必须有能力完成这样的任务。

智能电源管理驱动提供访问电池的状态和信息(Smart Battery System)。

下面,我们有一个 Hardware Error Device 驱动。设备通过 SCI 报告硬件错误。通常上,大多数的错误会是已纠正的错误。

下面的是 ACPI 调试特性(Allow ACPI methods to be inserted/replaced at run time)。这允许 ACPI AML 方式不通过重启系统管理。AML 代表的是 ACPI 机器语言(ACPI Machine Language)。AML 代码可以通过请求重启来改变和测试。

APEI 是 ACPI 的错误接口(ACPI Platform Error Interface (APEI))。APEI 从芯片给操作系统报告错误。这个错误接口同样提供错误注射的能力。

当 SFI (Simple Firmware Interface) Support 启用后,硬件固件可以发送消息给操作系统。固件与操作系统间的通信通过内存中的静态表。SFI-only 的计算机的内核工作需要这个特性。

想要改变处理器的时钟速度和运行时,就启用这个特性(CPU Frequency scaling)。CPU 频率调整意味着改变处理器的时钟速度。这个驱动可以用于降低时钟频率以节能。

下面是另外一个电源管理子系统(CPU idle PM support)。当处理器不在活跃状态时,它 *** 处在有效的空闲方式来减少电源消耗和减少 CPU 损耗。减少电源消耗同样可以降低内部元件的发热。

Linux 内核提供了很多 CPU 空闲驱动。在多处理器系统上,一些用户可能有一个理由在每个 CPU 上使用不同的驱动(Support multiple cpuidle drivers)。启用这个驱动可以允许用户给每个处理器设置不同的驱动。

对于 Intel 处理器,内核有一个特别为管理这类 CPU 芯片空闲的驱动(Cpuidle Driver for Intel Processors)。

当内存芯片空闲时,这些同样可以处于低功耗状态(Intel chipset idle memory power saving driver)。这个驱动是特别支持 IO AT 的 Intel 设备的。

不同的计算机使用不同类型的主板(PCI support)。其中一种类型是 PCI。这个驱动允许内核运行在 PCI 主板上。

下面,我们可以启用 / 禁用 Support mmconfig PCI config space access。

接下来,我们有一个选择启用 / 禁用主桥窗口驱动(Support mmconfig PCI config space access)。警告:这个驱动还没有完成(至少在 3.9.4 中是这样)。

像上面提到的主板,还有另一种类型的主板。写一个选项是提供 PCI Express (PCIe) support 的驱动。PCIe 是一种改进并且更快速的 PCI。

在这之后,下面的驱动应该被启用以支持 PCIe 主板上的热插拔(PCI Express Hotplug driver)。

接着,我们可以启用 / 禁用 PCIe 主板报错(Root Port Advanced Error Reporting)。这就是 PCIe AER 驱动。

下一个特性允许用户使用 PCIe EREC(PCI Express ECRC settings control)覆盖 BIOS 和固件设置。下一个选项,这是对 PCIe 的错误注射(PCIe AER error injector support)。

下面的设置提供了操作系统控制 PCI 的活跃状态和时钟电源管理(PCI Express ASPM control)。通常上,固件会控制 ASPM,但是这个特性允许操作系统采取控制。

如前面一样,像内核的许多组件一样,这里提供了 ASPM 的调试支持(Debug PCI Express ASPM)。

下面,在这个菜单选择 Default ASPM policy。

在这选项之后,下一个是关于允许设备驱动启消息信号中断(Message Signaled Interrupts (MSI))。通常上 *** 允许设备给 CPU 发送中断。

为了在系统日志中加入大量的调试信息,启用 PCI Debugging。

下一个选项允许 PCI 核心检测是否有必要启用 PCI 资源重分配(Enable PCI resource re-allocation detection)。

当在 Linux 上托管一个虚拟操作系统时,它有时可以用于为虚拟系统保留 PCI 设备(PCI Stub driver)。在系统虚拟化下,一个操作系统可能在另一个系统的内部或者并行。有时它们会竞争资源。可以为客户机保留设备可以减小竞争和增加性能。

下面的驱动允许超传输设备 (hypertransport devices) 使用中断(Interrupts on hypertransport devices)。HyperTransport 是一种系统 / 协议总线用于处理器之间的高速通信。

下一个驱动用于 PCI 虚拟化,它允许虚拟设备间共享它们的物理资源(PCI IOV support)。

PCI 页面请求接口 (PRI) 使在 IOMMU(输入 / 输出内存管理单元)之后的 PCI 设备能够从页错误中恢复(PCI PRI support)。页错误不是一种错误;它指的是软件尝试访问不在物理内存上的数据的事件。

关于“linux 中如何配置 PCI 和 ACPI”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计3897字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)