问题标签 [acpi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - 如何在 Linux 内核模块中获取电池电量?
我正在尝试获取 Linux 内核模块中的电池电量(该模块是通过 modprobe 插入的)。理想情况下,我想使用内核 API 调用来获取电池信息。我在网上搜索了解决方案,并且我还探索了 Linux 内核源代码和 Michael Meskes 的程序“acpi”的源代码以获取想法。
这些是我认为可以使用的一些技术:
- 读取和解析
/proc/acpi/battery/BAT0/state
和/proc/acpi/battery/BAT0/info
- 读取
/sys/class/power_supply/BAT0/charge_now
并且charge_full
不涉及解析。 - 如果我能弄清楚如何公开接口,我可以尝试使用来自 Linux 内核源驱动程序/acpi/battery.c 的调用。我可能需要这些方法
acpi_battery_get_status
和acpi_battery_get_info
- 我还注意到在驱动程序/acpi/sbs.c 中有一个方法
acpi_battery_read
,在它的正上方有一条评论说“驱动程序接口”。如果有人知道如何使用它,这可能是另一种方式。
我认为在内核模块中读取文件可能是一个坏主意,但我不确定这些文件如何映射到内核函数调用,所以它可能没问题。
那么,你们能给我一些建议/建议吗?
编辑:我在下面的答案中包含了我的解决方案。
linux - ACPI 脚本,如何知道当前向用户显示的 TTY?
我在 acpi 中运行一个脚本,如果当前显示的虚拟终端,切换回终端 X11 正在运行;否则切换到 tty1。
所以唯一的问题是,我如何使用程序来获取当前显示终端的名称?
有什么建议么 ?tty
无济于事,因为它只获取终端,它正在运行,而不是显示终端。
非常感谢 !
linux - linux内核如何处理对/sys/power/state的写入
我想找出处理写入 /sys/power/state 的 Linux 内核(x86、2.6.18 或类似版本)的源文件。我用谷歌搜索并尝试sysfs_create_file
在源代码中搜索(和目录)。但到目前为止我没有发现任何有用的东西。有人知道吗?谢谢!
assembly - 导致机器进入 S3 睡眠的最后一条指令是什么?
从 ACPI Spec 4.0 第 299 页,有一些示例代码展示了如何让机器进入 S3 睡眠状态。我只是想知道导致硬件休眠的最后指令是什么?遵循代码后会发生什么,为什么?
linux - Linux 何时以及如何将 VGA 内存保存到 RAM?它在 pm-suspend 脚本中吗?或在 echo mem > /sys/power/state 之后的内核中
有谁知道Linux何时将VGA内存保存到RAM?在将 mem 回显到 /sys/power/state 之前是否在 pm-suspend 脚本中?echo -n "mem" > /sys/power/state 之后是否在内核中?或两者?
我看过 pm-suspend 脚本,它使用 vbetool 来保存视频状态
vbe vbestate 保存 > /var/run/vbestate
这是将 VGA 内存保存到 RAM 的正确位置吗?
但是如果我只运行 echo mem > /sys/power/state(skip pm-suspend script in userspace),系统仍然可以使用正确的 GUI 唤醒。
谢谢,
sleep - 有谁知道当操作系统进入睡眠模式时如何修改/禁用闪烁的电源 LED?
有谁知道当操作系统进入睡眠模式时如何修改/禁用闪烁的电源 LED?或者通过使用操作系统来做到这一点是否可行?电源 LED 是否仅由硬件控制?或者操作系统可以修改它?
谢谢,
windows-7 - 操作系统中的 ACPI 方法暴露
我想为 Windows 操作系统编写一个 ACPI 方法,作为我大学项目的一部分,我是这个汇编级编程的新手。
我想知道 ACPI 方法是在 BIOS 中还是在 OS 中并且 ACPI 驱动程序能够执行它?
另外,ACPI 方法究竟是如何从当前 ACPI 方法的 BIOS 暴露给操作系统的?
perl - 解析相同语法的不同文件并计算文件到文件的相似度
我有一堆 ACPI 源语言文件,我想计算它们之间的文件到文件的相似性。我想过使用 Perl 的 Parse::RecDescent 之类的东西,但我被困在:
1) 将 ACPI 语法 (www.acpi.info/DOWNLOADS/ACPIspec40a.pdf) 翻译成 Parse::RecDescent 可以理解的内容 2) 有一个度量来比较 2 个解析的文件
有任何想法吗?
acpi - 远程获取电脑的电源状态(如 LogMeIn)
在设备(iphone、mac、pc 等)上,我想知道是否有 pc(在同一个局域网上并运行 Windows)
1)“开”(表示开机)并与我的设备连接局域网
2)开,但网线已拔下或网卡已禁用
3)“关”(即关机)但已插入局域网(所以我可以用 wol 魔术包将其唤醒)
4)关闭且未插入
我已经完成了问题 #1 执行 ping 命令。有没有更聪明的方法?
但从我的设备的角度来看,其他点都是平等的:我无法与目标电脑通信,但我想知道为什么!
我相信这很像logmein。事实上,它知道我的电脑的电源状态......但如何?!
我查找了 acpi 状态,但实际上,如何以编程方式和远程使用它?!嗯,好像不是这样。
也许有一些“魔术包”(如 wol)可以远程检测这些状态?
你能指出我正确的方式吗?
谢谢
linux - 确定 ACPI 状态文件的长度
我正在编写一个将电池电量记录到 CSV 文件的工具(我知道这将是一个 bash 单行程序,但这对我来说是另一个 Common Lisp 学习练习)。
我的计划是将整个电池状态文件存储到内存中,因为它保证是一个小文件。但是file-length
在文件大小上始终返回 0,同时在其他文件上正常工作:
事实证明,这不仅仅是 SBCL;Perl 的行为方式相同:
但该文件肯定包含一些内容:
所以我假设状态文件有一些特别之处。有人可以告诉我它是什么吗?