суббота

[Bug 2161196] [NEW] Lenovo ThinkCentre M82 powers on about 5 seconds after S5 poweroff unless firmware DSDT _PTS(5) is bypassed

Public bug reported: ## Title Lenovo ThinkCentre M82 powers on about 5 seconds after S5 poweroff unless firmware DSDT `_PTS(5)` is bypassed ## Description On a Lenovo ThinkCentre M82 (machine type 2929AB9), a normal Linux poweroff completes and the machine visibly turns off, but it powers itself on again about five seconds later. The problem is reproducible and also occurs with a forced systemd poweroff path. Powering the machine off with the front-panel button while inside BIOS setup leaves it off. This isolates the problem to the Linux ACPI S5 path rather than general hardware, power-loss recovery, or an external wake event. The machine is already running Lenovo's latest available BIOS, 9SKT9CAUS dated 2018-12-11. An initrd DSDT override that returns immediately from the top-level `_PTS` method only when `Arg0 == 0x05` fixes the problem. Normal Linux GUI poweroff then leaves the machine off, and Wake-on-LAN still works. The kernel confirms that the override is loaded. ## Expected result After selecting Power Off, the machine should enter S5 and remain powered off until the power button is pressed or a valid Wake-on-LAN magic packet is received. ## Actual result The machine powers off, then powers itself on again after approximately five seconds without a magic packet or other configured wake event. ## Steps to reproduce 1. Boot Linux normally on a Lenovo ThinkCentre M82 type 2929AB9 without the supplied DSDT override. 2. Select Power Off in the desktop, or run `systemctl poweroff`. 3. Observe that shutdown completes and power is removed. 4. Wait approximately five seconds. 5. The machine powers on again by itself. ## System information - System: Lenovo ThinkCentre M82, type 2929AB9 - Board: LENOVO MAHOBAY - BIOS: LENOVO 9SKT9CAUS, 2018-12-11 (latest available Lenovo BIOS) - CPU: Intel Core i5-3470 - Chipset: Intel Q75 - Network adapter: Intel 82579LM, PCI ID 8086:1502 - Distribution: Linux Mint 22.3, Ubuntu 24.04 (noble) base - Reproduced on Ubuntu kernel package 6.17.0-40-generic (`6.17.13`, package `6.17.0-40.40~24.04.1`) - It was also reproduced with an older installed kernel during diagnosis. ## Isolation already performed - Updated the BIOS from 9SKT70AUS (2013) to 9SKT9CAUS (2018-12-11): no change. - BIOS `After Power Loss` is set to `Power Off`. - RTC, PCI/modem/serial automatic wake and Intel AMT/manageability were disabled: no change. - Disabling Wake-on-LAN and disconnecting the Ethernet cable did not prevent the automatic power-on. - ACPI wake sources including GLAN, EHC, XHC and PWRB were tested/disabled: no change. - Broad service groups, NetworkManager and Cloudflare WARP were stopped/disabled for controlled tests: no change. - A forced poweroff path also reproduced the problem. - Powering off from BIOS setup using the front-panel button leaves the machine off. ## ACPI finding and working workaround The original firmware table contains: ```asl Method (_PTS, 1, NotSerialized) { P80D = Zero P8XH (Zero, Arg0) PTS (Arg0) ... } ``` The effective S5 workaround is: ```asl Method (_PTS, 1, NotSerialized) { If ((Arg0 == 0x05)) { Return (Zero) } P80D = Zero P8XH (Zero, Arg0) PTS (Arg0) ... } ``` A previous experiment removed only the nested `RPOP(Arg0)` call from the firmware `PTS` method. That did **not** fix S5. Bypassing the complete top-level firmware `_PTS(5)` path did fix it. The attached working override still contains the earlier `RPOP` experiment for non-S5 states; this is not required for the effective S5 bypass and should not be treated as the proposed upstream change. The DSDT OEM revision was increased from `0x1620` to `0x1622` so the initrd override is accepted. Kernel evidence after boot: ```text ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/DSDT.aml][0x12504] ACPI: Table Upgrade: override [DSDT-LENOVO-TC-9S ] ACPI: DSDT ... 012504 (v02 LENOVO TC-9S 00001622 INTL 20230628) ``` SHA-256: ```text d563d2b026580bedaf49807790448ce7510cf118e3618b6b0aa99669e48ef8e8 DSDT-original.aml bee0eba47e0bcdfc66ee826ef008387812306a48c81fd01564fa96a13ca084c4 DSDT-working-override.aml ``` With the override active, normal GUI poweroff remains off and Wake-on- LAN still works. This appears suitable for investigation as a DMI- specific ACPI S5 quirk for this firmware/platform, if bypassing `_PTS(5)` is considered safe by the ACPI maintainers. ## Attachments - `DSDT-original.aml`: unmodified firmware DSDT - `DSDT-original.dsl`: disassembled original DSDT - `DSDT-working-override.aml`: tested working override - `DSDT-working-override.dsl`: disassembled working source - `acpi-s5-effective-change.patch`: concise effective S5 change - `hardware-summary.txt`: sanitized hardware and kernel details ## Testing limitation The issue has not yet been retested without the override on the current newest Ubuntu kernel offered by the repositories. The installed 6.17 kernel has since been superseded in the repository, which prevents Apport from accepting an automatic report for that package version. A current-kernel retest can be added as requested by the Ubuntu kernel team. ** Affects: linux (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2161196 Title: Lenovo ThinkCentre M82 powers on about 5 seconds after S5 poweroff unless firmware DSDT _PTS(5) is bypassed Status in linux package in Ubuntu: New Bug description: ## Title Lenovo ThinkCentre M82 powers on about 5 seconds after S5 poweroff unless firmware DSDT `_PTS(5)` is bypassed ## Description On a Lenovo ThinkCentre M82 (machine type 2929AB9), a normal Linux poweroff completes and the machine visibly turns off, but it powers itself on again about five seconds later. The problem is reproducible and also occurs with a forced systemd poweroff path. Powering the machine off with the front-panel button while inside BIOS setup leaves it off. This isolates the problem to the Linux ACPI S5 path rather than general hardware, power-loss recovery, or an external wake event. The machine is already running Lenovo's latest available BIOS, 9SKT9CAUS dated 2018-12-11. An initrd DSDT override that returns immediately from the top-level `_PTS` method only when `Arg0 == 0x05` fixes the problem. Normal Linux GUI poweroff then leaves the machine off, and Wake-on-LAN still works. The kernel confirms that the override is loaded. ## Expected result After selecting Power Off, the machine should enter S5 and remain powered off until the power button is pressed or a valid Wake-on-LAN magic packet is received. ## Actual result The machine powers off, then powers itself on again after approximately five seconds without a magic packet or other configured wake event. ## Steps to reproduce 1. Boot Linux normally on a Lenovo ThinkCentre M82 type 2929AB9 without the supplied DSDT override. 2. Select Power Off in the desktop, or run `systemctl poweroff`. 3. Observe that shutdown completes and power is removed. 4. Wait approximately five seconds. 5. The machine powers on again by itself. ## System information - System: Lenovo ThinkCentre M82, type 2929AB9 - Board: LENOVO MAHOBAY - BIOS: LENOVO 9SKT9CAUS, 2018-12-11 (latest available Lenovo BIOS) - CPU: Intel Core i5-3470 - Chipset: Intel Q75 - Network adapter: Intel 82579LM, PCI ID 8086:1502 - Distribution: Linux Mint 22.3, Ubuntu 24.04 (noble) base - Reproduced on Ubuntu kernel package 6.17.0-40-generic (`6.17.13`, package `6.17.0-40.40~24.04.1`) - It was also reproduced with an older installed kernel during diagnosis. ## Isolation already performed - Updated the BIOS from 9SKT70AUS (2013) to 9SKT9CAUS (2018-12-11): no change. - BIOS `After Power Loss` is set to `Power Off`. - RTC, PCI/modem/serial automatic wake and Intel AMT/manageability were disabled: no change. - Disabling Wake-on-LAN and disconnecting the Ethernet cable did not prevent the automatic power-on. - ACPI wake sources including GLAN, EHC, XHC and PWRB were tested/disabled: no change. - Broad service groups, NetworkManager and Cloudflare WARP were stopped/disabled for controlled tests: no change. - A forced poweroff path also reproduced the problem. - Powering off from BIOS setup using the front-panel button leaves the machine off. ## ACPI finding and working workaround The original firmware table contains: ```asl Method (_PTS, 1, NotSerialized) { P80D = Zero P8XH (Zero, Arg0) PTS (Arg0) ... } ``` The effective S5 workaround is: ```asl Method (_PTS, 1, NotSerialized) { If ((Arg0 == 0x05)) { Return (Zero) } P80D = Zero P8XH (Zero, Arg0) PTS (Arg0) ... } ``` A previous experiment removed only the nested `RPOP(Arg0)` call from the firmware `PTS` method. That did **not** fix S5. Bypassing the complete top-level firmware `_PTS(5)` path did fix it. The attached working override still contains the earlier `RPOP` experiment for non-S5 states; this is not required for the effective S5 bypass and should not be treated as the proposed upstream change. The DSDT OEM revision was increased from `0x1620` to `0x1622` so the initrd override is accepted. Kernel evidence after boot: ```text ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/DSDT.aml][0x12504] ACPI: Table Upgrade: override [DSDT-LENOVO-TC-9S ] ACPI: DSDT ... 012504 (v02 LENOVO TC-9S 00001622 INTL 20230628) ``` SHA-256: ```text d563d2b026580bedaf49807790448ce7510cf118e3618b6b0aa99669e48ef8e8 DSDT-original.aml bee0eba47e0bcdfc66ee826ef008387812306a48c81fd01564fa96a13ca084c4 DSDT-working-override.aml ``` With the override active, normal GUI poweroff remains off and Wake-on- LAN still works. This appears suitable for investigation as a DMI- specific ACPI S5 quirk for this firmware/platform, if bypassing `_PTS(5)` is considered safe by the ACPI maintainers. ## Attachments - `DSDT-original.aml`: unmodified firmware DSDT - `DSDT-original.dsl`: disassembled original DSDT - `DSDT-working-override.aml`: tested working override - `DSDT-working-override.dsl`: disassembled working source - `acpi-s5-effective-change.patch`: concise effective S5 change - `hardware-summary.txt`: sanitized hardware and kernel details ## Testing limitation The issue has not yet been retested without the override on the current newest Ubuntu kernel offered by the repositories. The installed 6.17 kernel has since been superseded in the repository, which prevents Apport from accepting an automatic report for that package version. A current-kernel retest can be added as requested by the Ubuntu kernel team. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2161196/+subscriptions

Комментариев нет:

Отправить комментарий