Inicia automaticamente em horário específico como o BIOS?

6

Alguns BIOS têm a opção de iniciar o computador a partir de um estado totalmente desligado (não suspenso) em um horário específico de 'alarme'. Existe algum comando ou maneira de definir isso no Ubuntu sem reiniciar e ir ao BIOS?

(Eu tenho um servidor + roteador funcionando para uma rede escolar e algumas pessoas aleatoriamente (bem intencionadas) acham que precisa estar desligado no final do dia letivo. Eu acho a melhor maneira de evitar chamadas em horários aleatórios. que a rede parar de funcionar é ter um cron job a cada minuto que define o tempo de 'despertador' como 2 minutos a partir de agora. Dessa forma, ele se auto iniciaria automaticamente.)

    
por Azendale 09.06.2011 / 03:00

3 respostas

4

Fácil. Primeiro você precisa verificar se o seu computador suporta o Wakup no RTC. A maioria dos computadores criados nos últimos 10 anos suporta esse recurso. Primeiro você precisa ativar o RTC nas configurações da BIOS, isso é feito no processo de inicialização. Na minha BIOS é possível configurar os sinais S que o despertar deve responder. Como gosto de economizar energia, deixo a energia do meu computador desligada entre as partidas automáticas e os desligamentos.

Após a configuração do BIOS, inicialize o Linux e execute o comando dmesg |grep rtc . Isso informa se você tem o RTC ativado ativado. Meu resultado dá:

~$ dmesg |grep rtc
[    0.962976] rtc_cmos 00:03: RTC can wake from S4
[    0.963096] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[    0.963119] rtc0: alarms up to one month, 242 bytes nvram

Para definir o tempo de ativação, você precisa ser root. Como comando de problema raiz:

echo 0 > /sys/class/rtc/rtc0/wakealarm

O comando acima deve ser usado antes de você gravar um novo horário de ativação no arquivo, caso contrário, o recurso de ativação será buisy. Se você quiser que seu computador inicie em 10 minutos no futuro comando de edição:

echo 'date '+%s' -d '+ 10 minutes'' > /sys/class/rtc/rtc0/wakealarm

Verifique se o alarme está definido emitindo cat /sys/class/rtc/rtc0/wakealarm . Se você receber um monte de dígitos, significa que o alarme está configurado e, se o arquivo estiver vazio, há algo errado com a data.

Para verificar um comando de edição de formato legível mais humano cat /proc/driver/rtc .

Então, se você quer que seu computador inicie 2 minutos depois que alguém o desligar, execute um script parecido com este no seu crontab (este script exigirá acesso root, então esteja ciente):

#!/bin/bash
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo 'date '+%s' -d '+ 2 minutes'' > /sys/class/rtc/rtc0/wakealarm

Salve o planeta. :)

    
por Fredrik Byggmästar 10.04.2013 / 22:27
7

Um sistema operacional em si não pode trazer o hardware para fora de um estado completamente desligado, já que o sistema operacional não está em execução naquele momento. Se houvesse algum software no nível do sistema operacional para gravar em seu BIOS, seria um software proprietário específico para o BIOS e a placa-mãe, e muito improvável que existisse como um comando do ubuntu. Desculpe.

Opções do BIOS, como o Wake On Lan, ou o recurso de início automático são uma opção. A outra é uma solução de hardware semelhante à que algumas placas sintonizadoras de TV fazem ao conectá-las ao botão de energia para acionar eventos de ativação. Em casos como este, o cron pode ser usado para atualizar constantemente o horário de despertar da placa sintonizadora.

    
por drgrog 09.06.2011 / 17:07
1

Deveria haver uma maneira de fazer isso ... Eu sei que já vi isso funcionar em uma placa-mãe MSI no Windows. Um dos programas da MSI foi capaz de definir o estado de ativação / desativação no BIOS a partir do Windows. O que provavelmente é necessário é apenas as chamadas certas da BIOS para fazer isso. Eu olhei em volta uma vez e não consegui encontrar nada, mas não pareci muito difícil. Vou tentar olhar novamente e postar aqui se eu encontrá-los. Estou apostando que uma ferramenta para fazer isso poderia ser muito universal, ao contrário do que o drgrog acredita, porque a maioria dos fornecedores de placas-mãe está obtendo seus BIOS de um dos dois fornecedores e poucos fazem qualquer modificação extensiva a eles.

    
por Joseph 16.06.2011 / 05:17

Tags