首先安装 amd-debug-tools,运行 amd-s2idle test ,查看当前系统是否满足 s2idle 的要求:
$ amd-s2idle test💻 AMD Ryzen AI 9 H 365 w/ Radeon 880M (family 1a model 24)💻 MECHREVO WUJIE Series (STX\KRK)🐧 Arch Linux🐧 Kernel 6.12.32-1-lts🔋 Battery BAT0 (OEM standard) is operating at 100.00% of design✅ ASPM policy set to 'default'✅ GPIO driver `pinctrl_amd` available✅ PMC driver `amd_pmc` loaded (Program 11 Firmware 93.4.0)✅ USB3 driver `xhci_hcd` bound to 0000:65:00.4, 0000:67:00.0, 0000:67:00.3, 0000:67:00.4✅ USB4 driver `thunderbolt` bound to 0000:67:00.6✅ System is configured for s2idle✅ GPU driver `amdgpu` bound to 0000:65:00.0✅ PC6 and CC6 enabled✅ SMT enabled✅ IOMMU properly configured✅ ACPI FADT supports Low-power S0 idle🚦 Logs are provided via dmesg, timestamps may not be accurate over multiple cycles✅ LPS0 _DSM enabled✅ WLAN driver `mt7921e` bound to 0000:62:00.0❌ Kernel is tainted: 12288💯 Your system does not meet s2idle prerequisites!🗣️ Explanations for your system🚦 Kernel is taintedA tainted kernel may exhibit unpredictable bugs that are difficult for this script to characterize. If this is intended behavior run the tool with --force. For more information on this failure see:https://gitlab.freedesktop.org/drm/amd/-/issues/3089
# Enable verbose PM debuggingecho 1 | sudo tee /sys/power/pm_print_times<br>echo 1 | sudo tee /sys/power/pm_debug_messages# Now try to suspend againsystemctl suspend# Check dmesg after resumedmesg | grep -i "wake\|resume\|acpi"
再次执行 systemctl suspend 复现问题后,可以在 dmesg 中看到下面的日志:
[ 4636.873132] xhci_hcd 0000:67:00.4: PM: pci_pm_suspend_noirq returned 0 after 42252 usecs [ 4636.873146] thunderbolt 0000:67:00.6: PM: pci_pm_suspend_noirq returned 0 after 42269 usecs [ 4636.873169] pcieport 0000:00:08.3: PM: calling pci_pm_suspend_noirq @ 29723, parent: pci0000:00 [ 4636.878632] pcieport 0000:00:02.1: PM: pci_pm_suspend_noirq returned 0 after 10561 usecs [ 4636.878653] pcieport 0000:00:03.2: PM: pci_pm_suspend_noirq returned 0 after 11025 usecs [ 4636.885192] pcieport 0000:00:08.1: PM: pci_pm_suspend_noirq returned 0 after 12279 usecs [ 4636.885300] pcieport 0000:00:08.3: PM: pci_pm_suspend_noirq returned 0 after 12119 usecs [ 4636.885359] PM: noirq suspend of devices complete after 54.690 msecs [ 4636.885376] ACPI: _SB_.PCI0.GPP5: LPI: Constraint not met; min power state:D1 current power state:D0 [ 4636.885381] ACPI: _SB_.PCI0.GPP6: LPI: Constraint not met; min power state:D1 current power state:D0 [ 4636.885388] ACPI: _SB_.PCI0.GPP4.SDCR: LPI: Constraint not met; min power state:D3hot current power state:D0 [ 4636.886012] PM: Triggering wakeup from IRQ 9 [ 4636.886504] ACPI: _SB_.PEP_: Successfully transitioned to state screen off [ 4636.887420] ACPI: _SB_.PEP_: Successfully transitioned to state lps0 ms entry [ 4636.887625] ACPI: _SB_.PEP_: Successfully transitioned to state lps0 entry [ 4636.888555] PM: suspend-to-idle [ 4636.888592] ACPI: EC: ACPI EC GPE status set [ 4636.888623] ACPI: PM: Rearming ACPI SCI for wakeup [ 4636.891279] PM: Triggering wakeup from IRQ 1 [ 4639.593124] amd_pmc: SMU idlemask s0i3: 0xffff1abd [ 4639.593188] ACPI: PM: Wakeup unrelated to ACPI SCI [ 4639.593189] PM: resume from suspend-to-idle [ 4639.594699] amd_pmc AMDI000A:00: Last suspend didn't reach deepest state [ 4639.595185] ACPI: _SB_.PEP_: Successfully transitioned to state lps0 exit [ 4639.595760] PM: Triggering wakeup from IRQ 9 [ 4639.596746] ACPI: _SB_.PEP_: Successfully transitioned to state lps0 ms exit [ 4639.597719] ACPI BIOS Error (bug): Could not resolve symbol [_SB.ACDC.RTAC], AE_NOT_FOUND (20240827/psargs-332) [ 4639.597729] ACPI Error: Aborting method _SB.PEP._DSM due to previous error (AE_NOT_FOUND) (20240827/psparse-529) [ 4639.597737] ACPI: _SB_.PEP_: Failed to transitioned to state screen on
Deepseek 大胆推断是 IRQ 1 (typically the i8042 keyboard controller) 造成的问题,可以通过下面的方法来验证:
echo"disabled" | sudo tee /sys/devices/platform/i8042/serio0/power/wakeup
// ==UserScript==// @name My QNAP// @namespace https://qnap.lan/// @version 2025-05-31// @description try to take over the QNAP!// @author You// @match https://qnap.lan/*// @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net// @grant none// ==/UserScript==(function(){'use strict';// Configuration for the observerconstobserverConfig={ childList:true, subtree:true, attributes:false, characterData:false};// Create an observer instanceconstobserver=newMutationObserver(mutations=>{requestIdleCallback(()=>{// DEBUG: Get all label elementsconstallLabels=Array.from(document.querySelectorAll('label.x-form-item-label'));// DEBUG: Find Local IP labelconstlocalIPLabel=allLabels.find(it=>it.innerText==='Local IP');console.debug('[DEBUG] localIPLabel:',localIPLabel);if (localIPLabel==null) {console.warn('[DEBUG] Local IP label not found');return;}constlocalIP=localIPLabel.nextElementSibling.innerText.trim();console.debug('[DEBUG] localIP:',localIP);if(localIP==null||localIP==='') {console.warn('[DEBUG] localIP is null or empty');return;}constquery=newURL(localIP).search;console.debug('[DEBUG] query:',query);// DEBUG: Find SmartShare labelconstsmartShareLabel=allLabels.find(it=>it.innerText==='SmartShare');if (smartShareLabel==null) {console.warn('[DEBUG] SmartShare label not found');return;}constcopyButton=smartShareLabel.nextElementSibling.querySelector('button');if (copyButton==null) {console.warn('[DEBUG] Copy button not found');return;}copyButton.addEventListener('click',()=>{constshareUrl='https://smartshare.zeeko.dev/share.cgi'+query;navigator.clipboard.writeText(shareUrl);});});});// Start observing the document bodyobserver.observe(document.body,observerConfig);// Cleanup observer when page unloadswindow.addEventListener('unload',()=>{observer.disconnect();});})();
09:54:21.055775 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 1 socks09:54:22.048545 [0-0] * [HTTPS-CONNECT] connect, check h2109:54:22.049187 [0-0] * connect to 192.168.100.22 port 443 from 10.1.1.111 port 59496 failed: No route to host
Ncat: Version 7.93 ( https://nmap.org/ncat )Ncat: Connected to 84.17.53.155:9993.Ncat: UDP packet sent successfullyNcat: 1 bytes sent, 0 bytes received in 2.00 seconds.
{"settings":{"interfacePrefixBlacklist":["XXX",... ],/* Array of interface name prefixes (e.g. eth for eth#) to blacklist for ZT traffic */"bind":["ip",... ],/* If present and non-null, bind to these IPs instead of to each interface (wildcard IP allowed) */}}
在我的测试下,需要指定 bind 为 LAN 地址,才能真正解决这个问题。这样设置后,Zerotier 就会通过代理服务跟 Planet 沟通,在管理面板上,OpenWRT 的物理地址也会被展示成代理服务的 IP。
你是一名优秀的翻译人员,熟练掌握各种语言,拥有母语般的掌握程度。在翻译任务中,你需要将「原文语言」翻译成「目标语言」,任务要求如下:1.**单词或词组的翻译**:- 直接给出音标、词性跟含义。- 用「原文语言」给出简单易懂的解释,确保初学者能够理解。- 示例:- 翻译:- 音标:/ˈæp.əl/- 词性:名词- 含义:苹果- 原文语言解释:A round fruit with red, green, or yellow skin and white flesh.2.**句子或段落的翻译**:把握原文的精髓,用「目标语言」复述,而不是机械的翻译。3.**输出格式**:纯文本,不要使用 markdown 标记。现在,翻译的「目标语言」是 {{target}},以「原文语言」编写的待翻译文本如下:{{text}}