reiniciar após falha de energia para o Mac mini executando o Ubuntu

10

Eu tenho o Ubuntu 10.04.1 (Lucid) rodando em um 2010 Mac Mini (4,1). É um servidor, por isso quero que ele seja reiniciado após uma falha de energia ("modo servidor").

No Mac OS X, você pode marcar "Iniciar automaticamente após uma falha de energia" nas Preferências do sistema "Economia de energia". No entanto, ter esse valor verificado não parece afetar o comportamento do "modo servidor" no Ubuntu (ou seja, não será reiniciado após uma falha de energia).

Parece que o valor do "modo de servidor" não persiste no pram / efi, mas é definido pelo Mac OS X em cada inicialização.

Encontrei este tutorial sobre como ativar o "modo de servidor" para um Mac Mini, mas não funciona:

$ setpci -s 0:1f.0 0xa4.b=0
setpci: Warning: No devices selected for `0xa4.b=

Muita coisa mudou com o novo 4,1 Mac Minis - apenas instalar o Ubuntu nele foi um grande feito. Talvez o encantamento do "modo servidor" também tenha mudado?

Minha pergunta é: como habilito o "modo servidor" no novo 4,1 Mac Minis?

paleozogt
fonte
Na minha experiência, isso é algo tipicamente tratado pela bios. Como eu não sei nada sobre o funcionamento mais baixo de um Mac (exceto o fato de que eles usam principalmente processadores Intel padrão), eu não seria capaz de lhe dizer como definir os valores necessários na bios, muito menos em como entrar nele. primeiro lugar.
MBraedley
Você quer dizer EFI, não BIOS. De qualquer forma, não há configuração EFI para isso. É um registro de chipset que deve ser cutucado em toda inicialização. Eu gostaria que estivesse na EFI, ou no carrinho de bebê, pelo menos, então teríamos que configurá-lo apenas uma vez!
Paleozogt 18/11/10
Meu ponto, exatamente.
MBraedley
A solução atual não funciona no Mac Pro, mas você pode verificar esse bug no Ubuntu bugs.launchpad.net/ubuntu/+source/linux/+bug/784571
sorin
@Sorin Sbarnea: bem, a questão é para um Mac mini
paleozogt

Respostas:

9

Em alguns Mac Minis (eu testei em um por volta de 2014), ainda parece ser:

sudo setpci -s 00:1f.0 0xa4.b=0

Eu verifiquei isso depois de algumas pesquisas. As etapas que eu tomei para descobrir, que teoricamente também podem ser executadas para iterações futuras dessas máquinas, foram:

  1. Procure o dispositivo LPC:

    $ lspci | grep LPC
    00:1f.0 ISA bridge: Intel Corporation HM77 Express Chipset LPC Controller (rev 04)
    

    Nesse caso, é 00: 1f.0.

  2. Encontre uma folha de dados para o dispositivo. Por exemplo, pesquisar no Google por "folha de dados do controlador intel hm77 lpc" produziu esta folha de dados .

  3. Agora você só precisa encontrar o registro certo, o que pode ser um desafio, dependendo da folha de dados. Aqui eu encontrei "5.13.7.5 Sx-G3-Sx, Manipulando falhas de energia, pág. 180" no índice, que descreve o bit de controle AFTERG3_EN.

  4. Pesquisando o documento, encontramos na seção 13.8.1.3 (registro geral de configuração PM 3) na parte inferior da tabela na página 530. A partir disso, vemos que é o bit 0 do registro de 16 bits em 0xA4.

Então isso pode ser usado para construir o setpcicomando relevante .

Portanto, se isso mudar novamente no futuro, encontre o dispositivo, encontre a folha de dados, construa o comando, teste e levante o punho na vitória.

Mas basicamente o dispositivo e o endereço de registro podem diferir em máquinas diferentes, é específico ao controlador LPC; então esse é o hardware que você deve verificar primeiro antes de determinar qual comando usar.

Jason C
fonte
isso funciona em um antigo iMac de 2007! o controlador é um diferente, mas verificar os documentos relevantes levam ao mesmo comando, no final ...
benzkji
é verdade que este deve ser executado em cada inicialização, caso contrário ele está perdido ...
benzkji
8

Eu encontrei as respostas enterradas neste post . O novo comando setpci é

sudo setpci -s 00:03.0 0x7b.b=19

btw, essa configuração não é "pegajosa" e não persiste durante as reinicializações - ela deve ser definida em cada inicialização.

Você pode colocar esse comando em um script bash e executá-lo na inicialização. Veja aqui para detalhes sobre scripts de inicialização.

paleozogt
fonte
Você pode executar esse comando em um script de inicialização ou ainda solicitará a senha su?
MBraedley
Sim, você pode executá-lo em um script de inicialização. Editei a resposta para criar um link para um script de inicialização.
Paleozogt 19/11/10
Você poderia ser tão gentil em adicionar informações sobre onde adicionar essa linha para garantir que ela seja executada quando o sistema inicializar, de preferência o mais rápido possível? Ubuntu
sorin
@Sorin Sbarnea: na resposta é um link para informações sobre scripts de start-up no ubuntu
paleozogt