Evitar que o Chrome OS apague a tela ao trabalhar em um tty diferente

2

Estou executando o Archlinux em um chroot junto com o Chrome OS em um Chromebook. O projeto original é , meu fork dele é aqui (principalmente similar).

A questão é que o gerenciamento de energia de exibição do Chrome OS leva em consideração apenas a entrada do touchpad e do teclado feita no X do Chrome OS em tty1 para redefinir a contagem regressiva de tela em branco. Então, se estou trabalhando no meu chroot, no tty3 (console) ou no tty4 (servidor X do próprio Arch), a luz de fundo se apaga após 5 minutos, esteja eu ociosa ou ativa. Eu tenho que voltar para a tty1 para registrar alguma entrada lá e obter powerd para reativar a luz de fundo.

Eu não quero desativar powerd no Chrome OS, nem quero alongar os tempos limite padrão (que é o que o autor original ou os scripts de configuração chroot fizeram). Só quero que a luz de fundo da tela desligue após alguns minutos de inatividade e permaneça ativa quando estiver ativo no ambiente chroot ou no Chrome OS. Além disso, quero modificar minimamente o Chrome OS, pois ele é atualizado com bastante frequência e quero manter o script de reinstalação do chroot simples.

Então, minha ideia é que eu programarei alguns daemons. O daemon A é executado no chroot e detecta se eu faço entradas de teclado ou mouse no Arch. O daemon C é executado no SO chrome, verifica a saída do daemon A e faz o que for mais apropriado para redefinir os contadores de economia de tela e economia de energia.

No entanto, se a atividade do usuário no chroot puder ser descoberta lendo algum nó / dev, o daemon A não será necessário. A idade da última atividade do usuário no chroot (em / dev / tty3 e / dev / tty4) pode ser deduzida da leitura de algum arquivo / dev ou de qualquer outra forma de sem o chroot?

Em segundo lugar, comandos como setterm -blank poke parecem funcionar de dentro do chroot, então o daemon C pode não ser necessário se o daemon A sozinho puder redefinir a contagem regressiva da tela em branco. Daí, a segunda questão: A idade da última atividade do usuário no chroot (em / dev / tty3 e / dev / tty4) pode ser deduzida de algum arquivo / dev ou de qualquer outra forma de dentro de o chroot?

Se você acha que redefinir os contadores exige que o daemon A e C existam e se comuniquem: Como o IPC moderno é feito no GNU / Linux na prática? Sistema V? POSIX? / proc arquivos ler e escrever? O que funcionaria melhor no meu caso?

Por fim, você sabe algo diferente de setterm -blank poke , que o programa watchdog deve usar para manter a luz de fundo ativa?

Desculpe pela longa pergunta, espero que você não tenha lido tudo:)

    
por agravier 04.03.2012 / 15:46

1 resposta

2

Apenas algumas dicas sobre como (possivelmente) conversar com o daemon de energia.

Dê uma olhada no sistema operacional do Chromium (sem saber o quanto isso difere do Chrome OS), você encontrará as fontes power_manager s que podem ser úteis:

README explica o que se pode encontrar, entre outros:

  • powerd (powerd.cc) Upper power manager. Adjusts device status based on whether the user is idle and on video activity indicator from the window manager. This daemon is responsible for dimming the backlight or turning off the screen based on user idle, and it is responsible for adjusting backlight intensity based on user input and ambient light condition. The daemon also monitors plug state (on ac or on battery) and battery state-of-charge.
  • xidle-example (examples/xidle_example.cc) Prints console notifications when the user is and is not idle.

Então talvez você possa interferir em XIdle , xidle_example.cc pode ser útil.

Outra coisa que pode ser útil é que RootPowerManager.conf informa qual endereço D-Bus ouve em, org.chromium.RootPowerManager ... talvez você possa bisbilhotar por aí e encontrar algo, eu não encontrei nenhuma especificação de interface (mas o D-Bus deve ser capaz de lhe dizer).

( grep idle pode ser útil, também, me fez olhar para activity_detector_interface.h , se este for exportado por D-Bus, você pode usá-lo, ou seja, desabilitar a detecção de atividade do Chrome OS quando seu sistema Arch detectar atividade etc. .)

    
por 05.03.2012 / 11:20