System nie hibernuje; ekran gaśnie na kilka sekund i nic więcej się nie dzieje

8

Właśnie zaktualizowałem Ubuntu 11.10 do 12.04. Mam problem z hibernacją w moim nowym 12.04.

Uruchomię następujące polecenie

sudo pm-hibernate

ale mój system nie hibernuje, tzn. mój system się nie wyłącza; raczej ekran po prostu miga przez kilka sekund i powraca do poprzedniego stanu.

Jak rozwiązać ten problem i włączyć hibernację w moim systemie?

Sat93
źródło
Czy sprawdziłeś ustawienia BIOS
Mitch
2
@izx Też tak myślałem ... ale jeśli się nad tym zastanowić, to nie powinno sudo pm-hibernatedziałać nawet przed włączeniem hibernacji w 12.04? To zalecany sposób przetestowania go przed włączeniem ... prawda? czego mi brakuje?
Eliah Kagan
@EliahKagan - Masz absolutną rację - skoczyłem za szybko. sudo pm-hibernatepowinien działać niezależnie od ustawienia pakietu polkit.
ish

Odpowiedzi:

6

Coś w konfiguracji sprzętowej jest niezgodne z metodologią hibernacji jądra. Niestety jest to trudne do rozwiązania, chyba że narzędzie do rozwiązywania problemów ma bardzo podobny system.

Zamiast tego możesz wypróbować alternatywną hibernację TuxOnIce ( wikipedia ).

  • TuxOnIce ( wiki | strona główna ) jest alternatywą dla wbudowanej technologii hibernacji jądra i ma być kompatybilny z szerszą gamą sprzętu, bardziej niezawodny i bardziej elastyczny.
  • Jest łatwy do zainstalowania, a jeśli to nie działa, tak łatwo go usunąć.
  • Nie wymaga instalacji niestandardowego jądra TuxOnIce , ale poniższe instrukcje powinny to ułatwić. Jeśli nigdy wcześniej nie otwierałeś terminala, możesz teraz :-)

    0. Wymagania

    Jedynym wymaganiem dla TuxOnIce jest to, aby partycja wymiany była co najmniej tak duża, jak ilość dostępnej pamięci (RAM). Możesz to sprawdzić przez:

  • Uruchom terminal za pomocą Ctrl+ Alt+T

  • Wpisz free -m, a powinieneś zobaczyć coś takiego:

                 Łącznie wykorzystane wolne buforowane bufory współdzielone
    Mem: 1024 731 260 0 0 190
    - / + bufory / pamięć podręczna: 540 451
    Zamiana: 1536 6 1530
    
  • Liczba po Swap:(np. 1536) powinna być większa niż liczba po Mem:(np. 1024)

  • Jeśli tak nie jest, a twoja wymiana jest mniejsza niż twoja pamięć, musisz albo zmienić rozmiar i zwiększyć rozmiar partycji wymiany, albo skonfigurować TuxOnIce, aby używał specjalnego pliku wymiany. To wykracza poza zakres tej odpowiedzi, ale jeśli zadajesz inne pytanie i wspominasz o nim w komentarzach, odpowiem i wyjaśnię, w jaki sposób.

    1. Instalowanie jądra TuxOnIce

  • Uruchom terminal za pomocą Ctrl+ Alt+T

  • Skopiuj i wklej następujące elementy do terminala. To dodaje PPA TuxOnIce i instaluje niestandardowe jądro i nagłówki.
    • sudo apt-add-repository ppa: tuxonice / ppa -y
      a po dodaniu ppa:
    • sudo apt-get update
      sudo apt-get install tuxonice-userui linux-generic-tuxonice -y 
      sudo apt-get install linux-headers-generic-tuxonice -y
  • Teraz uruchom ponownie.
  • Ubuntu powinno teraz uruchomić się z jądrem TuxOnIce . Jeśli pojawią się jakiekolwiek problemy, Shiftnaciśnij i przytrzymaj podczas uruchamiania, a pojawi się menu Grub. Użyj klawiszy strzałek, aby przejść do Previous Linux Versions, naciśnij enter i naciśnij enter ponownie, aby wrócić do działającego jądra.

    2. Testowanie funkcji hibernacji.

  • Otwórz niektóre z normalnie używanych aplikacji, np. Firefox, Thunderbird, LibreOffice itp.

  • Otwórz terminal ponownie za pomocą Ctrl+ Alt+ T.
  • Wpisz sudo pm-hibernate, naciśnij enter, wprowadź hasło.
  • Powinieneś zobaczyć ekran blokady przez sekundę, a następnie ekran postępu hibernacji TuxOnIce, taki jak ten poniżej:

    wprowadź opis zdjęcia tutaj

    • Jeśli TuxOnIce działa, komputer się wyłączy.
    • Uruchom ponownie i poczekaj. TuxOnIce powinien wznowić od momentu hibernacji, w tym wszystkie okna otwarte w pozycji otwartej.
  • Jeśli to wszystko zadziałało, przejdź do kroku 3, który pozwala włączyć hibernację z pulpitu nawigacyjnego.

    3. Włączanie hibernacji z pulpitu nawigacyjnego

  • Naciśnij Alt+ F2, wpisz poniżej, a następnie naciśnij enter:

    gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
  • Wklej poniżej, naciśnij Ctrl+, Saby zapisać i Ctrl+, Qaby wyjść z edytora:

    [Ponownie włącz hibernację domyślnie]
    Tożsamość = użytkownik unix: *
    Action = org.freedesktop.upower.hibernate
    ResultActive = tak

    wprowadź opis zdjęcia tutaj

  • Uruchom ponownie i powinieneś zobaczyć opcję Hibernacji , jak pokazano poniżej:

    wprowadź opis zdjęcia tutaj

    4. Usuwanie TuxOnIce

    • Jeśli TuxOnIce nie działa dla Ciebie lub po prostu chcesz go usunąć, uruchom terminal i wprowadź:

       sudo apt-get usuń tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice -y
    • i pamiętaj, aby wyłączyć opcję Hibernacja w menu za pomocą:

      sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
    • Następnie uruchom ponownie.

ish
źródło
Powinieneś wspomnieć ten link: askubuntu.com/questions/178712/... w odpowiedzi, jeśli użytkownik nie ma wystarczającej ilości wymiany.
kiri
4

To zadziałało dla mnie. W trybie konsoli:

sudo apt-get install uswsusp 

Następnie możesz spróbować zawiesić komputer za pomocą:

sudo s2ram

lub hibernacja z

sudo s2disk

Jeśli to działa, po prostu uruchom ponownie i powinieneś być w stanie hibernować później ze zwykłego przycisku (w prawym górnym rogu Unity Desktop i wybierając Hibernacja).

Przygotowałem krótki samouczek na temat tego i innych problemów dla Dell XPS 13 Developer Edition dostępny tutaj .

Christian Vielma
źródło
Prosty i działa dobrze. Istnieje jednak literówka, nazwa pakietu to uswsusp. Ponadto hibernacja nie działała przy pierwszej próbie: wyłączyła się, a następnie uruchomiła normalnie później. Założę się, że jest to tradycyjna rzecz „restart w celu aktualizacji konfiguracji”.
Norswap
wow, to jest łatwe, hibernacja działała na moim Dell Latitude E6400 z Ubuntu 14.04 beta.
Andrea Zonca
W 8.04 nie miałem żadnych problemów z hibernacją. Jestem pewien, że wielu zaawansowanych użytkowników działa bezbłędnie bez „włamań”.
userDepth
1

Miałem wcześniej ten problem. Jeśli partycja wymiany jest mniejsza niż ilość pamięci, którą chcesz przechowywać na dysku twardym podczas hibernacji, może wystąpić ten problem.

Możesz zmienić rozmiar partycji wymiany lub użyć pliku wymiany (jest to o wiele łatwiejsze, jeśli nie masz wolnego miejsca na zmianę rozmiaru partycji wymiany).

Oto jak to zrobić:

  1. Otwórz okno terminala (naciśnij Ctrl+ Alt+ Tlub wybierz Aplikacje> Akcesoria> Terminal ) lub zaloguj się do zdalnego serwera za pomocą klienta ssh.

  2. Utwórz plik pamięci

    Wpisz następujące polecenie, aby utworzyć plik wymiany 512 MB (1024 * 512 MB = rozmiar bloku 524288):

    sudo dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
    

    Przykładowe wyniki:

    524288+0 records in
    524288+0 records out
    536870912 bytes (537 MB) copied, 3.23347 s, 166 MB/s
    
    • if=/dev/zerooznacza odczyt z pliku / dev / zero. /dev/zeroto specjalny plik, który zawiera znaki puste, aby zbudować plik pamięci o nazwie /swapfile1.
    • of=/swapfile1oznacza zapisanie pliku pamięci do /swapfile1.
    • bs=1024 oznacza odczyt i zapis 1024 bajtów na raz.
    • count=524288 oznacza Kopiuj tylko bloki wejściowe 523288 BLOKÓW.
  3. Bezpieczny plik wymiany

    Skonfiguruj poprawne uprawnienia do plików ze względów bezpieczeństwa, wprowadzając:

    sudo chmod 0600 /swapfile1
    

    Plik wymiany, który można odczytać na całym świecie, jest ogromną podatnością na zagrożenia lokalne. Powyższe polecenie zapewnia, że ​​tylko użytkownik root może czytać i zapisywać w pliku.

  4. Skonfiguruj obszar wymiany Linux

    Wpisz następujące polecenie, aby skonfigurować obszar wymiany systemu Linux w pliku:

    sudo mkswap /swapfile1
    

    Przykładowe wyniki:

    Setting up swapspace version 1, size = 524284 KiB
    no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839
    
  5. Włącz plik wymiany

    Na koniec, aby /swapfile1natychmiast aktywować przestrzeń wymiany, wpisz:

    sudo swapon /swapfile1
    
  6. Zaktualizuj /etc/fstabplik Aby aktywować /swapfile1po ponownym uruchomieniu systemu Linux, dodaj pozycję do /etc/fstabpliku. Otwórz ten plik za pomocą edytora tekstu, takiego jak vi:

    sudo vi /etc/fstab
    

    Dodaj następujący wiersz:

    /swapfile1 none swap sw 0 0
    

    Zapisz i zamknij plik. Następnym razem, gdy Linux uruchomi się po ponownym uruchomieniu, automatycznie włącza nowy plik wymiany.

  7. Jak sprawdzić, czy zamiana jest aktywowana, czy nie?

    Po prostu użyj freepolecenia:

    free -m
    

Oto link, z którego otrzymałem ten samouczek: Dodaj plik wymiany

Sidahmed
źródło
Plik wymiany nie musi się znajdować /etc/fstabi nie jest to konieczne, aby go włączyć.
Zanna,
-4

O ile wiem, nie działa to w 12.04. W jakiś sposób nie zawierały one wsparcia hibernacji, ponieważ na niektórych komputerach było to trochę wadliwe.

dArignac
źródło
2
Hibernacja jest zawarta w Ubuntu 12.04. Domyślnie jest wyłączony, ale możesz go włączyć.
Eliah Kagan