标签: acpi

以编程方式访问Laptop Embedded Fan Controller?

我想访问我的(windows)笔记本电脑的嵌入式控制器来控制风扇速度.目前我正在使用RW Everything手动执行此操作- 如何使用C访问嵌入式控制器?谢谢你的提示!

请注意:我知道RW Everything可以在命令行中使用,但是每秒调用它来读取一些寄存器并不是那么好......

c windows acpi

20
推荐指数
1
解决办法
3185
查看次数

以编程方式访问笔记本电脑上的CPU风扇?(视窗)

是否有Windows标准方法可以从C/C++中执行诸如"启动风扇","降低速度"等操作?

我怀疑它可能是ACPI,但我是一个虚弱的凡人,无法阅读那种文件.

编辑:例如,Windows 7允许您选择电源计划选项,例如"被动冷却"(仅当事情变热?)与"主动冷却"(保持CPU主动冷却?).OS似乎确实有一种控制风扇的方法.

c++ windows acpi

18
推荐指数
1
解决办法
1万
查看次数

安排机器唤醒

以编程方式使Windows XP(或更高版本)计算机在特定时间唤醒的最佳方法是什么.(理想情况下,Media Center可以自动启动录制特定电视节目)

我有一个Windows服务(用C#编写),我希望这项服务能够使托管的机器在预定的时间启动.

是否有任何BIOS设置或先决条件(例如ACPI)需要配置才能正常工作?

这台机器将使用拨号或3G无线调制解调器,所以不幸的是它不能依赖局域网唤醒.

c# windows-services acpi

15
推荐指数
1
解决办法
8839
查看次数

如何获取Linux内核模块中的电池电量?

我试图在Linux内核模块中获取电池电量(模块通过modprobe插入).理想情况下,我希望使用内核API调用来获取电池信息.我在网上搜索了解决方案,我还探索了Linux内核源代码和Michael Meskes的程序源代码"acpi"的想法.

这些是我认为我可以使用的一些技术:

  1. 阅读并解析/proc/acpi/battery/BAT0/state/proc/acpi/battery/BAT0/info
  2. 读取/sys/class/power_supply/BAT0/charge_now并且charge_full不涉及解析.
  3. 如果我能弄清楚如何公开接口,我可以尝试使用来自Linux内核源驱动程序/ acpi/battery.c的调用.我可能需要这些方法acpi_battery_get_statusacpi_battery_get_info
  4. 我也注意到在drivers/acpi/sbs.c里面有一个方法acpi_battery_read,就在它上面有一个评论说"Driver Interface".如果有人知道如何使用它,这可能是另一种方式.

我认为在内核模块中读取文件可能是一个坏主意,但我不确定这些文件如何映射到内核函数调用,所以它可能没问题.

那么,你们能给我一些建议/建议吗?

编辑:我在下面的答案中包含了我的解决方案.

kernel-module acpi linux-kernel

14
推荐指数
1
解决办法
7940
查看次数

没有BIOS支持的IOMMU初始化

注意:如果您在支持IOMMU的主板上安装了AMD A55芯片组,请将您的副本/sys/firmware/acpi/tables/DMAR(或任何描述IOMMU的名称)发送给我.你没有任何风险.谢谢!


大多数主板制造商都不打算发布支持IOMMU的BIOS(BIOS中没有选项).

我不赞成AMD 的这篇文章是BIOS通过添加ACPI表来初始化IOMMU.

因此,如果我可以从具有不同主板但支持IOMMU的相同芯片组的系统转储ACPI表(acpidump/acpiextract),是否可以通过在iommu模块之前的某个时刻插入这些表来激活IOMMU装?

如果iommu内置在内核中(而不是模块),是否有任何机制允许在内核启动的早期阶段动态更改acpi表?否则也许引导程序(grub/lilo)可以做到这一点?

很可能这些"新"表中的某些地址需要更新.这些地址是否会在现有的ACPI表中(这样差异会有所帮助)?

bios acpi linux-kernel iommu

11
推荐指数
1
解决办法
1378
查看次数

如何在Windows上从C++或C#调用ACPI控件方法?

我已经厌倦了等待惠普为我的笔记本电脑修复可切换的图形驱动程序,但我想我可以通过调用ACPI方法自行切换GPU.切换在Linux中使用vga_switcheroo工作,这是开源的,所以我知道我需要调用哪些方法,但不知道如何调用它们.

我需要调用的两个方法是在SSDT命名空间中,如果这很重要,我还需要传递整数参数.

acpi

10
推荐指数
1
解决办法
2542
查看次数

如何以编程方式获取mac os x macbooks的电池寿命?

我想要做的是记录电池百分比.我知道linux中的等价物是sysctl(hw.acpi.battery.life).但是,当我在mac os x中经历了sysctl的人时,我找不到找到它的等效代码.有人可以指出如何使用目标c来做到这一点.我可以调用sysctlbyname但是它的结构中没有这个输入.请帮助我

c macos objective-c acpi

9
推荐指数
1
解决办法
6501
查看次数

C#:如何唤醒已关机的系统?

有没有醒来已关闭系统,在特定时间任意的Win32 API?我已经看到了一个名为程序的自功率在其上能够在系统上在指定时间开机.

.net c# winapi windows-xp acpi

9
推荐指数
1
解决办法
6875
查看次数

dts和ACPI之间的差异

我们可以在dts文件中声明平台设备信息,而不是将每个数据硬编码到操作系统中.以"手臂"架构为例.它支持dts,我们将从arch/arm/boot/dts/xx.dts中获取dts.将此xx.dts转换为xx.dtb并加载内核Image.我最近遇到了ACPI,当我遇到x86架构时,从文档来看,我所理解的是ACPI类似于设备树.我们可以在ACPI表中声明平台设备信息信息,我怀疑这些ACPI表到底在哪里.如何将此信息加载到Linux.使用ACPI而不是dts有什么好处.如果我错了,请纠正我.提前致谢

linux x86 acpi linux-device-driver device-tree

9
推荐指数
3
解决办法
1918
查看次数

在关闭程序之前在Windows 7关闭时运行批处理文件(最好是按下电源按钮)

我有一个Windows 7机器,其中包含多个启动时启动的VMWare Player机器.我使用WMWare VIX和批处理文件关闭虚拟机,如下所示:

"C:\path\to\VMWare VIX\vmrun.exe" -T player stop "C:\path\to\machine.vmx" soft
Run Code Online (Sandbox Code Playgroud)

我想要完成的是在主机关闭时运行这些命令,这样我就不需要单独关闭每个VM.部署后,可能只需短按ACPI电源按钮即可开始关机,而不是从"开始"菜单开始.我试过的方法不起作用(至少不够好):

  1. 组策略 - 最明显的方法,但在Windows 7中,"异步"运行关闭脚本的选项已经消失.
    结果是,Windows 首先告诉所有打开的窗口关闭,虚拟机响应它们正在使用,并且您将获得"强制关闭"对话框.只有 VMWare Player和其他所有内容都关闭后,脚本才会运行,没有用.
    你认为这可能会改变,但我想我记得看到一些正式的MS注意到"不,抱歉".但是找不到链接.

  2. 使用一个批处理文件关闭所有虚拟机,然后将主机关闭为桌面快捷方式,而不是通常的关机按钮. - 工作,这就是我在开发过程中正在使用的东西.
    但是使用ACPI电源按钮启动正常关机,结果与之前相同,如果每天打开和关闭机器的最终用户不需要使用显示器和鼠标,那就更好了.
    所以我现在正在谷歌搜索是一种修改按下物理电源按钮时调用的操作的方法.Windows允许您在一些不同的操作(如睡眠,休眠,重启等)之间进行选择,但是您可以将其更改为"运行此.bat"吗?或者可能完全改变shutdown命令的行为?

  3. 以编程方式拦截关闭消息,中止关闭,运行批处理文件,重新启动关闭.关于拦截关闭的讨论已经有了一些讨论,例如这里,这里这里,但是我仍然在所有语言中都使用了n00b,除了Ruby或Java之外,我真的可以理解在这种情况下是否以及如何完成它.如果有人可以澄清如何实际完成这项工作(不会卡在"强制关闭"屏幕上),那么我很想尝试你提供的任何语言.

vmware shutdown batch-file acpi windows-7

8
推荐指数
1
解决办法
2万
查看次数