Ubuntu 22.10 Hibernate hjälp

Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Kategoriregler
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Jag har installerat Ubuntu 22.10 på en dator.
Jag vill få hibernate att fungera.

Datorn har 8 GB RAM
Vid standardinstallation skapar Ubuntu en swapfile som är 2 GB
Om jag förstått rätt borde en swapfile på 10 gb räcka.

Jag har gjort följande i terminalen

Kod: Markera allt

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo swapoff -a
sudo rm /swapfile
sudo fallocate -l 10G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Jag behövde inte uppdatera fstab

Kod: Markera allt

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
För det stod redan så i fstab sedan tidigare.

Jag startade om datorn och har nu en 10 gb swapfile.

Nu börjar problemen.

enligt instruktioner skulle jag köra

Kod: Markera allt

sudo apt install pm-utils hibernate
Det fungerade inte.
Jag har installerat pm-utils, men paketet hibernate finns inte längre.

Jag kan skriva

Kod: Markera allt

sudo pm-suspend
Och datorn går ner i sleep mode.

När jag skriver

Kod: Markera allt

sudo pm-hibernate
blir datorn svart en sekund, sedan är den igång igen som om ingenting hänt.

Någon som vet vad som är fel?

(om jag får pm-hibernate att fungera tänkte jag fortsätta med sysctl hibernate och fixa en hibernate knapp i avstängningsmenyn)
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

Har du provat med:

Kod: Markera allt

systemctl suspend
och/eller

Kod: Markera allt

systemctl hibernate
..?

[EDIT] pm-suspend och pm-hibernate funkar för mig, men scriptet (pm-action), innehåller egentligen inte så mycket. Fast jag kör ju Mint, så det kanske är någon skillnad, även om scriptet är skrivet av Red Hat...
Senast redigerad av 1 Osprey, redigerad totalt 22 gånger.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Osprey skrev:Har du provat med:

Kod: Markera allt

systemctl suspend
och/eller

Kod: Markera allt

systemctl hibernate
..?
systemctl suspend fungerar.

systemctl hibernate har jag inte rätt att göra.

sudo systemctl hibernate stänger av datorn (som shutdown now)
När jag slår på datorn är allt borta, så det var ingen hibernate.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

anth skrev:sudo systemctl hibernate stänger av datorn (som shutdown now)
När jag slår på datorn är allt borta, så det var ingen hibernate.
Samma för mig, men jag sitter ju och testar på en Desktop nu. När den gör en hibernate, så stänger den ju av sig mer än när den gör en suspend också tror jag att den -ska- spara det som finns i RAM i swapfilen. Men jag har inte så stor swapfil så att hela minnet får plats där, kanske det som gör att den "stänger av sig" istället. När den väcks upp igen, så finns liksom ingen fullständig dump av minnet..?
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
eson57
Inlägg: 1101
Blev medlem: 06 dec 2014, 10:44
OS: Linux Mint

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av eson57 »

Det är bland annat därför som swap bör vara 1,5 gånger installerat ram. En gammal sanning som gäller både Linux och Windows. Fast nu tror jag mig minnas att hibernate eller energisparläget inte längre finns i Linux.
Alltid på kanelen!
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

eson57 skrev:Det är bland annat därför som swap bör vara 1,5 gånger installerat ram. En gammal sanning som gäller både Linux och Windows. Fast nu tror jag mig minnas att hibernate eller energisparläget inte längre finns i Linux.
Det finns och fungerar utmärkt i Fedora, däremot verkar Debian och Ubuntu tagit bort det.
Eftersom det fungerar i Fedora så borde man kunna få det att fungera i Ubuntu.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
eson57
Inlägg: 1101
Blev medlem: 06 dec 2014, 10:44
OS: Linux Mint

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av eson57 »

anth skrev:Det finns och fungerar utmärkt i Fedora, däremot verkar Debian och Ubuntu tagit bort det.
Jo, det kan tänkas att bara var vissa dister (debian-baserade) som tog bort det.
Alltid på kanelen!
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Osprey skrev:Jag hittade lite om det här:

https://www.linuxandubuntu.com/home/how ... untu-linux
Den är från 2015 och är tyvärr för gammal.

Jag har hittat för Ubuntu 22.04 och där ska man göra helt annorlunda.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Wow!
Det var inte så svårt som jag trodde.

Suspend = datorn sover, allt sparas i RAM
Hibernate = datorn sover, allt sparas på hårddisken

Problemet med Hibernate är inte få datorn att somna, utan att få den att vakna.
Med hibernate stänger datorn verkligen av sig själv.
När man sedan slår på datorn ska den INTE boota som vanligt, utan grub ska läsa tillbaks allt från swapfilen.
För att grub ska läsa från swapfilen måste den ha UUID för disken och offset för swapfile.

Jag tror att felet folk gör är att ändra swapfile, men glömmer att uppdatera grub - då sluta hibernate att fungera och man förlorar data.

Oavsett vad togs hibernate bort från Debian/Ubuntu för att det inte ansågs säkert.
Dessutom är det mest bärbara datorer som använder hibernate.

Så här gör man:

Se till att man har tillräckligt swapfile.
Enkel regel:
- mellan 4 GB - 8 GB RAM : swapfile = RAM * 1,5
- under 4 GB RAM : swapfile = RAM + 2 GB
- mer än 8 GB RAM : swapfile = RAM + 4 GB
Hur man ändrar swapfile finns i startinlägget.

Jag antar att swapfile är placerad direkt under root, d.v.s. sökvägen är /swapfile

Man behöver INTE pm-utils

Ta reda på UUID:

Kod: Markera allt

blkid
Vi vill ha den lååånga koden UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Ta reda på offset:

Kod: Markera allt

sudo filefrag -v /swapfile
Vi vill ha siffrorna från rad 0, och första kolumnen under physical_offset

Öppna grub:

Kod: Markera allt

/etc/default/grub
Leta reda på raden som börjar med:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Lägg till UUID och offset mellan citationstecknen så det ser ut så här:
"quiet splash resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx resume_offset=xxxxxx"
Spara och stäng.

Uppdatera grub:

Kod: Markera allt

sudo update-grub
Starta om datorn.
Testa om det fungerar genom att öppna några saker och sedan skriv i terminalen:

Kod: Markera allt

systemctl hibernate
Det finns mer saker att göra, som att få en hibernate-knapp i Ubuntu.
Det viktiga är att jag fick det att fungera så nu går jag och sover. :)

Källor:
https://ubuntuhandbook.org/index.php/20 ... ntu-21-10/
https://www.linuxuprising.com/2021/08/h ... buntu.html
https://medium.com/@oliver.berning/enab ... 469d504df1
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

anth skrev:Jag antar att swapfile är placerad direkt under root, d.v.s. sökvägen är /swapfile
I Linux är swap oftast en egen partition.
anth skrev:Man behöver INTE pm-utils
Jag var inne och tittade i scripten för pm-utils och det är inte mycket de innehåller. Lite enkla kontroller, plus att de skapar en logfil över när datorn har somnat/vaknat.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Osprey skrev:
anth skrev:Jag antar att swapfile är placerad direkt under root, d.v.s. sökvägen är /swapfile
I Linux är swap oftast en egen partition.
Jo, jag insåg att en swap partition antagligen är bättre om man ska använda hibernate, för då är den svårare att ändra och chansen för fel minskar.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Att fixa hibernate-knapp.
Nu har jag vaknat så nu avslutar vi det jag inte orkade göra igårkväll.

OBS!
Jag har gjort så mycket konstigt med den här Ubuntu-installationen, så det kan hända att de här instruktionerna är fel.
Och jag vet nästan ingeting om polkit, så ni får gärna rätta mig om jag har fel.

Jag har de tre länkarna ovan som guide.

Alla tre säger att man ska redigera en fil och lägga till lite text.
I praktiken är det två olika stycken där man ska ändra ResultActive från no till yes.
Tyvärr säger de olika saker och jag vill veta vad jag håller på med innan jag ändrar saker.

De tre länkarna säger att jag ska ändra i en fil, men de nämner lite olika filer:

Kod: Markera allt

/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
/etc/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Polkit finns på två ställen:
/etc/polkit-1/
/var/lib/polkit-1/

Under polkit-1/localauthority/ kan följande kataloger finnas:
/10-vendor.d/
/20-org.d/
/30-site.d/
/50-local.d/
/55-org.my.company.d/
/90-mandatory.d/

så jag tänkte titta lite innan jag ändrar.
Vanliga användare har inte rätt att gå till de katalogerna och man kan inte använda sudo med cd.
Så jag använder sudo -s istället ($ ändras till #).

Nu verkar detta skilja mellan olika distros och mellan olika versioner av samma distro.

I Ubuntu 22.10 är den enda katalogen där det finns någotav intresse:
/var/lib/polkit-1/localauthority/10-vendor.d
Och där finns filen com.ubuntu.desktop.pkla som jag redigerar.

De tre länkarna säger att det är denna text som ska ändras:

Kod: Markera allt

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Kod: Markera allt

[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Kod: Markera allt

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes # <== CHANGED

[Disable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes # <== CHANGED 
jag öppnar filen med

Kod: Markera allt

sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/filen com.ubuntu.desktop.pkl
I min fil står:

Kod: Markera allt

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

[Disable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=no
Så jag ändrar no till yes, sparar och startar om.

Det enda detta gör är att jag nu kan skriva systemctl hibernate, d.v.s. utan sudo.

Sedan:

Kod: Markera allt

sudo apt install gnome-extension-manager
och installera gnome extension: "Hibernate Status Bar Button".
(det finns andra hibernate-extensions, men idag är denna den enda som fungerar i GNOME 43)

Jag kan även välja hibernate under Settings > Power > Power Button Behavior.

Case closed ... till nästa Ubuntu/GNOME version då allt antagligen ändras. :)
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

anth skrev:
Osprey skrev:
anth skrev:Jag antar att swapfile är placerad direkt under root, d.v.s. sökvägen är /swapfile
I Linux är swap oftast en egen partition.
Jo, jag insåg att en swap partition antagligen är bättre om man ska använda hibernate, för då är den svårare att ändra och chansen för fel minskar.
En swap-partition är ju intakt tills dess att man kör igång "swapper-processen". I övrigt kan kärnan starta bäst den vill och man får mer frihet att avöra när minnet ska återställas.

Det är ju trots allt kärnan som hanterar swapping, och därför har jag varit lite frågande inför om Debian/Ubuntu/Mint verkligen har lagt ned det. Jag menar, det är ju trots allt "kernel.org" som hanterar kärnan... och varken Debian, Ubuntu, Mint eller RedHat eller SuSE....

När det gäller att använda en partition som Linux gör, eller en fil som OpenVms (och kanske Windows) gör, så känns det lite som "hugget eller stucket". Vid en uppstart har det absolut ingen betydelse (en disk är en disk). Men vid drift så hamnar "systemet" och "swappingen" på olika köer om man kör via partition, men i slutänden så är det bara ett läshuvud på disken så... ja att köra det på skilda partitioner -känns- bättre, men det vet det tusan om detegentligen innebär så stor skillnad....
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

I Linux är det en separat partition, i OpenVMS är det:

Kod: Markera allt

SYS$SYSDEVICE:[000000]swapfile.sys
...i Windows vet jag inte..... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

[Tänker] I Linux bör man alltså kunna vinna lite marginellt, genom att ha swappingen på en annan disk än "/" och "/home"... vet inte och har aldrig sett några tester på det....

Egentligen är "pageing" intressantare än "swapping", men då infinner sig problemet att man måste föra över allt möjligt till andra diskar, nää det går inte.... ;)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
eson57
Inlägg: 1101
Blev medlem: 06 dec 2014, 10:44
OS: Linux Mint

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av eson57 »

Osprey skrev:.i Windows vet jag inte..... :)
I Windows år det en systemfil (växlingsfilen).
Alltid på kanelen!
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av Osprey »

eson57 skrev:
Osprey skrev:.i Windows vet jag inte..... :)
I Windows år det en systemfil (växlingsfilen).
Samma som i OpenVMS då, men hur skiljer Windows mellan "pageing" och "swapping"..??

Jo, nu vet jag att Windows (NT) härstammar ur OpenVMS, de fick ju över ungefär 20 stycken från Digital Equipment, inklusive Dave Cutler....

VMS har en åtskillnad i "pagefile.sys" och "swapfile.sys", som båda ligger under det logiska namnet "SYS$SYSDEVICE"....
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Ubuntu 22.10 Hibernate hjälp

Inlägg av anth »

Jag läste på lite mer (och förstod nästan ingenting, så brasklapp: jag kan ha missuppfattat allt).

Det finns något som heter ACPI
https://sv.wikipedia.org/wiki/Advanced_ ... _Interface
Det är en standard utvecklad av IT-jättar som Hp, Intel, Microsoft,...
Den används för att bestämma hur datorn förbrukar ström / sparar ström i olika lägen.
Det är t.ex. datorns acpi-inställningar som bestämmer vad som händer när man stänger locket på en bärbar dator som är igång.

Idag finns det upp till 6 definierade strömsparlägen som en dator kan använda (S0-S5).
De vi diskuterat i den här tråden är:
S3 : suspend (to RAM)
S4 : hibernate (to drive)

Vilka strömsparlägen som finns tillgängliga beror på datorns hårdvara (BIOS/UEFI/Firmware).
Problemet är att vissa hårdvarutillverkare har implementerat acpi-standarden fel.
Det är en sak om en användare gör fel (skit bakom spakarna), det är en helt annan om datortillverkaren gjort fel.
Plötsligt är det lite mer uppenbart varför de flesta linux-distros stängt av hibernate och varför man slår på funktionen på egen risk.

Så steg ETT, innan man ändrar några suspend/hibernate-inställningar i linux, är att kolla i BIOS/UEFI vad man har för strömsparinställningar.

Steg TVÅ är att kolla i två filer vad linux hittat för strömsparinställningar.

Kod: Markera allt

$ cat /sys/power/state

$ cat /proc/acpi/wakeup


Steg TRE är att konfigurera acpi, men här får någon som är bättre än mig på linux ta över.
Skriv svar

Återgå till "Experimentverkstad"