问题标签 [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.
python - 尝试在 Python 中监视 ACPI 事件时出现“socket.error: [Errno 111] Connection denied”
我正在尝试监视 ACPI 事件,以检测ThinkPad S1 Yoga上的屏幕何时折叠(将笔记本电脑变成平板电脑)。我正在查看的是以下内容,这表明屏幕位置已被切换:
我对此很陌生,但是按照在线说明和代码,我正在尝试使用模块socket监视 Python 中的 ACPI 事件,但我遇到了困难:
我会很感激一些指导。谢谢!
button - 在 C# 中捕获 ACPI 事件
在我的华硕上按下“Vivobook”键后,我正在尝试用 C# 编写小程序来执行一些任务。问题是按钮实际上并不是键盘的一部分,标准的按键没有捕捉到任何东西。我在某处读到此按钮启动 ACPI 事件。有什么方法可以查看所有 ACPI 事件以找到该事件并稍后捕获它?如果不可能,哪种语言允许这样做?除了 asm:P
operating-system - 即时禁用和启用超线程
我想知道理论上是否可以在 BIOS 中禁用超线程后启用超线程,反之亦然。事实证明,如果超线程被禁用,它们仍然会在 ACPI 的 MADT 表中显示为禁用的内核。这是 MADT 的示例输出,处理器具有 4 个内核和每个内核 2 个线程,并且禁用了超线程。
我想知道(a)是否有一个选项可以在运行时启用这些内核(无需重新启动并通过 BIOS)。并且(b)如果未启用超线程/处理器(例如,它是否在本地 APIC 禁用的情况下执行 hlt 或 mwait 指令?),超线程/处理器处于什么(定义明确的)状态。
我在 ACPI 规范(5.2.12.2 处理器本地 APIC 结构)中读到的启用标志如下:
如果为零,则此处理器不可用,并且操作系统支持不会尝试使用它。
但是,如果有人知道,我很想知道禁用的超线程的实际状态是什么。例如,英特尔软件开发人员手册第 3 卷(第 8.4.3 节)中描述的 MP 初始化协议算法是否执行于初始化期间禁用的超线程?
remote-access - 如何检查我的显示器是否开启?
我通常使用团队查看器连接到我在大学的计算机。有什么方法(例如使用ACPI)来确定我的显示器是否打开(即,其他人可以看到它)?我那里没有网络摄像头。它的操作系统是 Windows 7 - 64 位。
windows - 如何在 ACPI-filter Driver(WDM) 中使用 ACPI 通知发送基于 ACPI 的亮度热键?
首先,我不得不承认我是硬件驱动程序开发的新手。
假设用户可以在 Windows 8.1 上使用基于 ACPI 的亮度热键触摸/按下笔记本键盘上的硬件键(例如亮度提高),系统将收到基于 ACPI 的通知并增加显示亮度并显示屏幕显示,它是在屏幕左上角显示亮度级别的垂直条。
现在我们必须主动提高这些基于 ACIP 的通知,让系统完成增加/减少显示亮度并在我们的 ACPI-filter 驱动程序接收到从我们的应用程序发送的 IRP 时在屏幕上显示屏幕显示(客户端需要此 OSD) .
首先,我阅读了“与硬件按钮(热键)集成”,但它没有发布如何在内核模式驱动程序中发送这些“ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY”或“ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY”。
所以我找到了"Supporting Display Output and ACPI Events"。它表示调用 DxgkDdiNotifyAcpiEvent 来通知显示微型端口驱动程序有关 ACPI 事件。不知道是不是误会了,我们可以主动调用这个程序来提高ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY,让系统提高亮度,显示On Screen Display。
我想我可能无法调用 DxgkDdiNotifyAcpiEvent,因为我几乎无法构造 DxgkDdiNotifyAcpiEvent 所需的“PVOID MiniportDeviceContext”。
由于我的英语很差,请原谅我对我的需求和研究的冗长解释......
总之,这是整个流程:
- 我们的应用程序使用 CreateFile 打开我们的 ACPI-Filter 驱动程序以便与其通信。
- 应用程序使用 DeviceIoControl 向 ACPI-Filter 驱动程序发送 Irp
- ACPI-Filter 驱动程序接收到 Irp 并引发基于 ACPI 的通知来告诉系统增加/减少显示器的亮度,最重要的是,显示屏幕显示(如果 ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 通知成功通知系统,则没有需要关注这个需求,因为系统会在屏幕上显示 OSD)
当涉及到第 3 步时,有人可以告诉我如何完成它吗?示例代码是最受欢迎的。
或者,可以在 UMDF 上完成吗?
根据我的研究,HID报告是满足这个需求的另一种方式,但我认为我应该从头到尾编写HID-minifilter驱动,没有时间让完成。最重要的是,我不熟悉这些模块。
c# - 如何使用 ACPI 函数设置 ACLineStatus
我想读取 BatteryLifePercent 的值,如果它高于 80%(0.80),则将 ACLineStatus 设置为离线。
我试过使用
它可用于读取 BatteryLifePercent。但我不知道如何将 ACLineStatus 设置为离线以避免进一步充电。
我也想知道,是否可以使用 acpi 控制方法(http://msdn.microsoft.com/en-us/library/windows/hardware/ff536139(v=vs.85).aspx)?
ruby - 调用 ACPI/D-bus 运行 ruby 脚本
如果后台进程检测到我的笔记本电脑盖关闭,我正在创建一个个人应用程序以向我的手机发送短信。
我研究过,有几种方法可以做到这一点:
ACPI - 它侦听事件(笔记本电脑盖关闭)并运行 bash 脚本。但是我不确定如何让它运行一个 ruby 脚本。
D-bus - 允许桌面应用程序和内核之间的通信,但我必须先创建一个桌面应用程序,这有点矫枉过正。
我是系统编程的新手,这个项目只是测试系统编程水域的一种方式。因此,我上面的描述可能不准确。
如果你们有任何想法如何实现这个应用程序的功能 - 当笔记本电脑盖合上时向指定的电话号码发送短信 - 我全都在听。
linux-kernel - 由于内核 oops,系统变得无响应(IP:dev_queue_xmit+0x256/0x3f4)
Linux 系统始终对以下串行控制台输出无响应。每次出现问题时都会观察到类似的串行控制台输出。
目前尚不清楚重现此问题的步骤。但是,当从 BIOS 禁用所有与 acpi 相关的参数时,不会观察到此问题。
我是调试内核 oops 的新手。请让我知道可能是什么问题以及如何解决此问题。任何指针或帮助都将非常重要。
堆栈跟踪如下,
linux - Linux Shell 脚本:存储命令行程序的输出
以下命令返回 2 行,这些是我的 CPU 的温度:
我将如何将这两行存储在 bash 脚本中的变量中,以便我可以使用它们?
linux - pm-suspend 后计算机立即唤醒。如何确定是什么原因造成的?
我正在运行一个 Debian-Jessy 服务器,它在几个小时网络不活动后进入 S3 睡眠模式(我制作了一个小 bash 脚本,每两个小时使用 crontab 检查一次)。暂停几秒钟后,它再次唤醒。几个小时后,当我的脚本由于网络不活动而再次触发 pm-suspend 时,它会暂停并且不会再次唤醒。唤醒它的唯一方法应该是 WOL (wake-on-lan)。
我能做些什么?
编辑:这可能与 WOL 包有关,因为我发现有人报告同样的问题: https ://bbs.archlinux.org/viewtopic.php?id=173596
http://ubuntuforums.org/showthread.php?t=2233674
https://bugzilla.kernel.org/show_bug.cgi?id=46421
这是我的脚本的示例日志:
如您所见,它立即再次唤醒。但第二次,它成功挂起。
我禁用了 proc/acpi/wakeup 中的所有设备:
有没有办法确定是什么导致了唤醒?为什么服务器第二次挂起成功?
我在 pm-suspend 日志中启用了调试模式并查看了 syslog,但我找不到任何有趣的信息。
系统日志: http: //pastebin.com/U963DccX
带调试的 pm-suspend.log:
感谢您的时间!