Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#37859 - Systemd 208-2 could not hibernate via sysemd-logind: Requested operation not supported, ignoring.

Attached to Project: Arch Linux
Opened by Alexey (kovyale) - Thursday, 21 November 2013, 00:28 GMT
Last edited by Dave Reisner (falconindy) - Thursday, 21 November 2013, 12:46 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To No-one
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Hi All!

This is basically a duplicate of the https://bugs.freedesktop.org/show_bug.cgi?id=70267

I managed to fix the bug (or maybe feature on purpose which i do not understand).
The root cause when systemd-logind checks the swap for type and see not 'partition' (file src/shared/sleep-config.c) the upper level function can_sleep (for hibernate) returns false which makes such log lines:
"Requested operation not supported, ignoring."

My laptop setup made that i have whole sda2 under LUKS and under LUKS is only one partition (i called it /dev/mapper/root). On the given filesystem (ext4) i created /swapfile with size 8.1G. The swap works just fine. And hibernate on this swapfile works briliant out of the vanilla kernel (no uswsusp, no tuxonice).
I added to my kernel cmd line: resume=/dev/mapper/root resume_offset=34816 (See Documentation/power/swsusp-and-swap-files.txt for more)

Looking into systemd-logind code i found it checks for the swap type (from /proc/swaps) which in my case says:

$ cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 8388604 0 -1

A very small patch fixes this:
patch - 0002-fix-operation-not-supported-to-hibernate-to-swap-file.patch
--- ./src/shared/sleep-config.c.orig 2013-09-18 01:55:37.241977274 +0400
+++ ./src/shared/sleep-config.c 2013-11-21 02:27:57.608209252 +0400
@@ -206,7 +206,7 @@
if (!d)
return -ENOMEM;

- if (!streq(type, "partition")) {
+ if (!streq(type, "partition") && !streq(type, "file")) {
log_debug("Partition %s has type %s, ignoring.", d, type);
continue;
}


I have also submitted Arch linux user package "systemd-ak" with my fix to AUR which is available here - https://aur.archlinux.org/packages/systemd-ak/

Please try it. Please let me know any issues.

--
Alexey
This task depends upon

Closed by  Dave Reisner (falconindy)
Thursday, 21 November 2013, 12:46 GMT
Reason for closing:  Upstream
Additional comments about closing:  Already fixed in git

Loading...