# uswsusp (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Status de tradução: Esse artigo é uma tradução de uswsusp. Data da última tradução: 2020-02-23. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

µswsusp (userspace software suspend) é um conjunto de ferramentas de espaço de usuário usadas para hibernação (suspender para disco) e suspender (suspender para RAM ou standby) em sistemas Linux. Isso consiste em:

s2ram - um wrapper em torno do mecanismo do kernel de suspensão para RAM, permitindo que o usuário execute algumas manipulações de adaptador gráfico do usuário antes de suspender e depois de retomar isso pode ajudar a trazer os gráficos (e todo o sistema) de volta à vida após o currículo. Incorpora a funcionalidade de vbetool e radeontool, bem como alguns truques próprios. Inclui uma lista de configurações de hardware de trabalho, juntamente com os conjuntos de operações apropriados a serem executados para retomá-los com êxito. Isso é feito por uma lista de permissões de hardware mantida pelo HAL - s2ram traduz as opções do banco de dados HAL em parâmetros s2ram.

  Nota: Como o HAL está obsoleto e os drivers do KMS podem salvar o estado da placa gráfica diretamente sem as peculiaridades do espaço do usuário, o desenvolvimento do s2ram está descontinuado e nenhuma outra entrada na lista de permissões é aceita. Se um driver KMS estiver em uso, o s2ram suspenderá diretamente a máquina.

s2disk - a implementação de referência do software userspace suspender (µswsusp); coordena as etapas necessárias para suspender o sistema (como travar os processos, preparar o espaço de troca, etc.) e manipula a gravação e leitura de imagens. s2disk já possui suporte a compressão e criptografia da imagem e outros recursos (por exemplo, uma boa barra de progresso, salvar a imagem em um disco remoto, jogar tetris enquanto retoma, etc.) podem ser facilmente adicionados.

s2both - combina as funcionalidades de s2ram e s2disk e é muito útil quando a bateria está quase esgotada. s2both escreve o instantâneo do sistema para o swap (assim como o s2disk), mas depois coloca a máquina em STR (assim como s2ram). Se a bateria tiver energia suficiente, você pode retomar rapidamente a partir do STR, caso contrário, você ainda pode retomar a partir do disco sem perder o seu trabalho.

## Instalação

Instale uswsusp-gitAUR.

## Configuração

Você deve editar `/etc/suspend.conf` antes de tentar suspender para o disco.

- Se estiver usando uma partição swap:

    resume device = /dev/disk/by-label/swap

sendo que `by-label/swap` deve ser substituído com o dispositivo de bloco correto contendo a partição swap.

- Se estiver usando um arquivo swap:

    resume device = /dev/sdXN  # a partição que contém o arquivo swap
    resume offset = 123456

sendo que `X` e `N` são a letra do dispositivo e o número da partição, respectivamente, e `123456` é a posição a partir do início do dispositivo de retomada no qual o cabeçalho do arquivo swap está localizado. O deslocamento da retomada pode ser obtido executando:

    # swap-offset seu_arquivo_swap

- O parâmetro `image size` (opcional) pode ser usado para limitar o tamanho da imagem de instantâneo do sistema criada por s2disk. Se não for possível criar uma imagem do tamanho desejado, o s2disk vai suspender de qualquer maneira, usando uma imagem maior. Se o tamanho da imagem estiver definido como 0, a imagem será o menor possível.

- O parâmetro `shutdown method` (opcional) especifica a operação que será executada quando a máquina estiver pronta para ser desligada. Se definido como `reboot`, a máquina será reinicializada imediatamente. Se definido para `platform`, a máquina será desligada usando operações especiais de gerenciamento de energia disponíveis no kernel, que podem ser necessárias para que o hardware seja reinicializado corretamente após o reinício, e pode fazer com que o sistema retome mais rapidamente. Se definido como `shutdown`, a máquina simplesmente será desligada, o que pode causar problemas para alguns hardwares.

- Se o parâmetro `compute checksum` estiver definido como `y`, as ferramentas s2disk e resume usarão o algoritmo MD5 para verificar a integridade da imagem.

- Se o parâmetro `compress` estiver definido como `y`, as ferramentas s2disk e resume usarão o algoritmo de compactação LZF para compactar/descompactar a imagem.

- Se `splash` estiver definido como `y`, s2disk e/ou resume usarão um sistema inicial. Atualmente, há suporte a splashy e fbsplash, os quais não estão disponíveis no Arch Linux.
  Nota: Isso exige opções adicionais ao `configure` para µswsusp (`--enable-splashy` e `--enable-fbsplash`, respectivamente).

- A opção `resume pause` introduzirá um atraso depois de retomar com sucesso da hibernação, para permitir que o usuário leia as estatísticas (velocidade de leitura e gravação, tamanho da imagem, etc.)

- Se `threads` estiver ativado, o s2disk usará vários encadeamentos para compactar, criptografar e gravar a imagem. Isso deve acelerar as coisas. Para detalhes, leia os comentários em suspend.c

### Suporte a criptografia

This article or section is out of date.

Reason: suspend-keygen não está mais disponível. Veja [1] (Discuss in Talk:Uswsusp (Português)#)

- gere uma chave com o utilitário suspend-keygen incluído no pacote;
- escreva o nome da chave em `/etc/suspend.conf`;

    encrypt = y
    RSA key file = caminho_para_arquivo_de_chave

### Recriar initramfs

Nota: Sempre que você modificar `/etc/suspend.conf`, você precisará reconstruir seu initramfs. Se você não fizer isso, e o Linux não conseguir encontrar sua imagem na inicialização, você não verá uma mensagem de erro indicando isso. Seu processo de inicialização irá travar depois de iniciar o hook `uresume`, normalmente após a mensagem com a versão libgcrypt.

Edite seu arquivo `/etc/mkinitcpio.conf` e adicione "uresume" à entrada HOOKS.

    HOOKS="base udev autodetect block uresume filesystems"

e Gere novamente o initramfs.

### Exemplo de configuração

    /etc/suspend.conf

    snapshot device = /dev/snapshot

    resume device = /dev/disk/by-label/swap

    # tamanho da imagem é em bytes
    image size = 1468006400

    #suspend loglevel = 2

    compute checksum = y

    compress = y

    #encrypt = y

    #early writeout = y

    #splash = y

    # até 60 (segundos)
    #resume pause = 30

    threads = y

## Uso

### Autônomo

Para suspender para o disco, execute:

    # s2disk

Para suspender para a RAM, execute primeiro:

    # s2ram --test

para ver se sua máquina está no banco de dados das máquinas que sabe-se que funciona. Se retornar algo como `Machine matched entry xyz`, então prossiga e execute:

    # s2ram

Caso contrário, o parâmetro `--force` será necessário, possivelmente combinado com outros parâmetros (consulte `s2ram --help`). Pode falhar.

Agora você poderia tentar suspender chamando diretamente s2disk na linha de comando:

    # s2disk

Provavelmente, é necessário recorrer a uma ferramenta de espaço de usuário que chama internamente s2disk.

### Com systemd

Para colocar seu sistema em hibernação, conhecido como Suspensão para o Disco, com `systemctl hibernate`, edite o `systemd-hibernate.service`, adicionando:

    /etc/systemd/system/systemd-hibernate.service.d/override.conf

    [Service]
    ExecStart=
    ExecStartPre=-/usr/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
    ExecStart=/usr/bin/s2disk
    ExecStartPost=-/usr/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Depois disso, execute `systemctl hibernate` para colocar seu sistema em hibernação. Faça alterações semelhantes em `systemd-hybrid-sleep.service` (substitua s2disk por s2both) para ativar o modo de suspensão híbrido baseado no µswsusp.

## Solução de problemas

### Minha máquina não está na lista branca

Se s2ram não corresponder a sua máquina a uma entrada em sua lista de desbloqueio, ela exibirá algumas strings de identificação de propósito geral para sua máquina (as mesmas fornecidas `s2ram -i`). Neste caso, você pode tentar forçar s2ram a suspender sua máquina usando `s2ram -f`.

### `s2ram -f` não funciona

Se `s2ram -f` não funcionar, tente as diferentes alternativas oferecidas por s2ram. Execute `s2ram -h` para obter uma lista das opções possíveis:

    # s2ram -h

    Usage: s2ram [-nhi] [-fspmrav]

    Options:
        -h, --help:       this text.
        -n, --test:       test if the machine is in the database.
                          returns 0 if known and supported
        -i, --identify:   prints a string that identifies the machine.
        -f, --force:      force suspending, even on unknown machines.

    The following options are only available with -f/--force:
        -s, --vbe_save:   save VBE state before suspending and restore after resume.
        -p, --vbe_post:   VBE POST the graphics card after resume
        -m, --vbe_mode:   get VBE mode before suspend and set it after resume
        -r, --radeontool: turn off the backlight on radeons before suspending.
        -a, --acpi_sleep: set the acpi_sleep parameter before suspend
                          1=s3_bios, 2=s3_mode, 3=both
        -v, --pci_save:   save the PCI config space for the VGA card.

Experimente as seguintes variações:

      s2ram -f -a 1
      s2ram -f -a 2
      s2ram -f -a 3
      s2ram -f -p -m
      s2ram -f -p -s
      s2ram -f -m
      s2ram -f -s
      s2ram -f -p
      s2ram -f -a 1 -m
      s2ram -f -a 1 -s

Se nenhuma dessas combinações funcionar, inicie novamente, mas adicione a opção `-v`.

Note que misturar a opção `-a` e as opções do vbetool (`-p`, `-m`, `-s`) normalmente é apenas uma medida de último recurso, geralmente não faz muito sentido.

Se você encontrar várias combinações que funcionam (por exemplo, `s2ram -f -a 3` e `s2ram -f -p -m` funcionam na sua máquina), o método do kernel (`-a`) deve ser preferido sobre os métodos do espaço do usuário (`-p`, `-m`, `-s`).

Verifique todas as combinações em ambos os casos ao relatar o sucesso para os desenvolvedores do s2ram:

- ao executar o s2ram a partir do console
- ao executar o s2ram a partir do X

### s2ram não funciona com qualquer combinação de opções

Existe um truque que não corresponde a uma opção de linha de comando porque requer operações adicionais de você. Ele é marcado com NOFB na lista branca e usado para os laptops que são suspensos e retomados corretamente apenas se nenhum framebuffer for usado. Se você verificar que nenhuma opção de linha de comando do s2ram funciona, você pode tentar desabilitar o framebuffer. Para fazer isso, você precisa editar a configuração do gerenciador de inicialização, remover quaisquer valores possíveis `vga=<foo>` da linha do kernel e reinicializar. Isso, pelo menos, se você usar o framebuffer VESAFB (como no kernel padrão do Arch). Se você usar um driver de framebuffer diferente, consulte a documentação do driver para ver como desabilitá-lo.

## Veja também

- Site oficial do Uswsusp
- Arquivo HOWTO incluído no código-fonte do kernel Linux
- `/usr/share/doc/suspend/README` Documentação do Uswsusp
- `/usr/share/doc/suspend/README.s2ram-whitelist` README do s2ram-whitelist

Category:

- Power management (Português)

Hidden category:

- Pages or sections flagged with Template:Out of date