Suspend / halt not working anymore after a Software Updater launch
Good afternoon,
I have recently performed (like 5 days ago) a Software Updater launch, in order to update my Trisquel OS.
$ cat /proc/version
Linux version 4.4.0-142-lowlatency (name at domain) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #168+8.0trisquel2 SMP PREEMPT Tue Feb 5 02:09:39 UTC 2019
$
The problem now is that my laptop get frozen after trying to suspend it or performing the command: shutdown -H
Do you know how to resolve this annoying issue?
Is the suspend functionality no more available from now on?
Thank you for your kind support.
You can boot the previous version of the kernel from the "Advanced options" (or whatever it is called), an entry in GRUB's menu (displayed before the operating system starts) and confirm that the latest version of the 4.4 kernel is the problem. If you explicitly removed that previous version (it is not automatic), then reinstall it first: the package is "linux-image-4.4.0-141-lowlatency" (well, assuming the update before the one that brought you version 4.4.0-142 was not long before).
If, indeed, suspend works on the previous version, then you could, of course, stick to that version, e.g., removing both "linux-image-4.4.0-142-lowlatency" and "linux-image-lowlatency" (and "linux-lowlatency", if installed). However, not having an up-to-date kernel is security-wise, concerning. That is why, if I were you, I would install the latest 4.15 available in the repository, reboot, and see if suspend works. If you really want a "lowlatency" kernel (e.g., for music creation), then install the "linux-lowlatency-hwe-8.0" package (in Trisquel's repository). Otherwise, install "linux-generic-hwe-8.0".
Hello Magic Banana,
Thank you for your detailled message!
So:
> You can boot the previous version of the kernel from the "Advanced options" (or whatever it is called), an entry in GRUB's menu (displayed before the operating system starts)
I have booted to my previous system, which is 4.4.0-139-lowlatency
> and confirm that the latest version of the 4.4 kernel is the problem.
the suspend functionality worked fine
> you could, of course, stick to that version, e.g., removing both "linux-image-4.4.0-142-lowlatency" and "linux-image-lowlatency" (and "linux-lowlatency", if installed).
how can I remove my actual OS, which is 4.4.0-142-lowlatency?
> However, not having an up-to-date kernel is security-wise, concerning. That is why, if I were you, I would install the latest 4.15 available in the repository, reboot, and see if suspend works. If you really want a "lowlatency" kernel (e.g., for music creation),
but the way, what does lowlatency mean, is there any relation about music creation?
> then install the "linux-lowlatency-hwe-8.0" package (in Trisquel's repository)
what is linux-lowlatency-hwe-8.0, what are the differences?
> Otherwise, install "linux-generic-hwe-8.0".
why on my system, do I have only linux-lowlatency-[...] and not linux-generic-[...], is there any difference?
Merci Magic Banana for your nice support :)
how can I remove my actual OS, which is 4.4.0-142-lowlatency?
It is not an OS: only a kernel. You can remove "linux-image-4.4.0-142-lowlatency" and "linux-image-lowlatency" (and "linux-lowlatency", if installed) with your favorite mean to manage your packages. Maybe you like the "Synaptic Package Manager"? If so:
- launch it;
- right-click on the installed packages you want to remove (you can "search" them first);
- click on "Mark for Complete Removal" in the contextual menu that pops up;
- Click on the "Apply" button;
- Confirm the complete removal by clicking on (another) "Apply" button.
See https://trisquel.info/en/wiki/installing-updating-and-removing-software
but the way, what does lowlatency mean, is there any relation about music creation?
It refers to a different configuration of the kernel. If you do not have special needs (like music artists working on computers, who often need a low latency), then you want a "generic" kernel.
what is linux-lowlatency-hwe-8.0, what are the differences?
Trisquel is a stable GNU/Linux distribution: except for Abrowser, the packages in a given version of Trisquel only receive security updates or critical bug fixes. In particular, since Trisquel 8 shipped with a 4.4 kernel, it is still that version of the kernel that is the default. It received many security updates though: 142, apparently.
The problem is: a 4.4 kernel may not properly support (or at all) brand new hardware. In particular, hardware that started to be sold after 2016, because Linux 4.4 was released in 2016. "hwe" stands for "HardWare Enablement". Those are packages providing more recent versions of packages that are important to support more recent hardware: like the kernel and the X server. Installing "linux-image-generic-hwe-8.0" actually provides what will be Trisquel 9's kernel, based on Linux 4.15, released last year.
> like music artists working on computers, who often need a low latency
actually, what does 'low latency' mean? :) I did not understand (but of course I thank you anyway for your comment).
> Linux 4.4 was released in 2016. "hwe" stands for "HardWare Enablement". Those are packages providing more recent versions of packages that are important to support more recent hardware: like the kernel and the X server. Installing "linux-image-generic-hwe-8.0" actually provides what will be Trisquel 9's kernel, based on Linux 4.15, released last year.
My hardware is older than 2016.
PS : if I installed the 'low latency' kernel, it should have a reason (I am not a musician...) but nowadays I am not aware about it. Is there any more protection regarding private life with a "low latency" kernel?
A "generic" kernel is configured (CONFIG_HZ_250=y and CONFIG_HZ=250 in its config file) to check 250 times per second for "interrupts", i.e., signals emitted by software or, more commonly, by hardware to indicate an event that needs immediate attention. For instance: a key of the keyboard was pressed, the mouse moved, something has to be read or written from/to a disk, the microphone has data to transfer, etc.
A "low-latency" kernel checks those interrupts 1000 times per second (CONFIG_HZ_1000=y and CONFIG_HZ=1000 in its config file): it reacts up to four times faster to those events. Nevertheless, there is a cost: it eats more CPU cycles. In other words, there is a tradeoffs between the "reaction time" (the time it takes to react, i.e., the latency) and the "execution time" (the time it takes to execute some code).
As the name indicates, a generic kernel suits most uses. For some reason, until Trisquel 7, Trisquel was shipping with a low-latency kernel by default. If you updated from Trisquel 7, that is why you have a low-latency kernel.
Hello Magic Banana,
I have read your comment a few days ago and now I am taking the time to thank you for your description.
I am afraid to switch to a generic kernel and because my system is perfectly working (for example: any freeze or problem with memory...) I am going to stay with the low-latency, which seems to be convenient to me :-)
I am going to open an issue regarding the suspend / halt issue.
Best regards.
> I am afraid to switch to a generic kernel and because my system is
> perfectly working
You can always switch back to the low-latency kernel. You have nothing
to lose.
$ sudo apt install linux-generic
> I am going to open an issue regarding the suspend / halt issue.
Don't do this until you have tried a different kernel.
> > I am going to open an issue regarding the suspend / halt issue.
> Don't do this until you have tried a different kernel.
I have already tried with different kernels:
- the functionality with the 4.4.0-139-lowlatency release (and below) worked
- the functionality with the 4.4.0-142-lowlatency release stopped working
- the functionality with the 4.4.0-143-lowlatency release does not work neither
Suspend/hibernate is often a problem with Linux (the kernel), and when
it does/doesn't work seems to be hardware-specific. This is an issue in
Ubuntu as well. Trisquel's kernel is created by running a script[1]
which automatically removes the proprietary blobs from Ubuntu's kernel,
so if this kernel version is indeed causing your problem it is not
something that will get addressed on Trisquel's issue tracker. We need
to keep troubleshooting on your hardware.
There is some chance that the kernel is not the problem. To find out,
try suspending and hibernating from a terminal.
To suspend:
$ sudo pm-suspend
and to hibernate:
$ sudo pm-hibernate
See if either of those works and let us know.
[1] https://devel.trisquel.info/trisquel/package-helpers/blob/flidas/helpers/make-linux
Those are all 4.4 kernels. Since my first post in this thread, I have been suggesting you to try a more recent kernel such as the one you get installing the "linux-generic-hwe-8.0" package (a 4.15 kernel).
Hello people,
I have tried today the suspend / hibernate functionality and it worked!
I haven't change anything since the beginning but now after regular system updates it seems to be OK.
My system is now:
$ cat /proc/version
Linux version 4.4.0-154-lowlatency (name at domain) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) ) #181+8.0trisquel2 SMP PREEMPT Sat Jun 29 20:05:25 UTC 2019
So I would say with the 154 release it seems to be OK.
Best regards.
Finally, I have tried just now and the problem is still present.
In consequence, the 4.4.0-154-lowlatency release did not resolve the problem :-/
I do not have any clue why it was working when I tried it on the beginning of this afternoon...
Best regards.