Neustart nach Stromausfall für Mac mini mit Ubuntu

10

Ich habe Ubuntu 10.04.1 (Lucid) auf einem 2010 Mac Mini (4,1). Es ist ein Server, daher möchte ich, dass er nach einem Stromausfall neu gestartet werden kann ("Servermodus").

In Mac OS X können Sie in den Systemeinstellungen "Energiesparmodus" die Option "Nach einem Stromausfall automatisch starten" aktivieren. Das Überprüfen dieses Werts scheint jedoch das Verhalten des "Servermodus" in Ubuntu nicht zu beeinflussen (dh es wird nach einem Stromausfall nicht neu gestartet).

Dies scheint daran zu liegen, dass der Wert "Servermodus" in Kinderwagen / Efi nicht beibehalten wird, sondern bei jedem Start von Mac OS X festgelegt wird.

Ich habe dieses Tutorial zum Aktivieren des "Servermodus" für einen Mac Mini gefunden, aber es funktioniert nicht:

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

Mit den neuen 4,1 Mac Minis hat sich viel geändert - nur Ubuntu darauf zu installieren, war eine ziemliche Leistung. Vielleicht hat sich auch die Beschwörung "Servermodus" geändert?

Meine Frage ist: Wie aktiviere ich den "Servermodus" auf dem neuen 4,1 Mac Minis?

Paläozogt
quelle
Nach meiner Erfahrung wird dies normalerweise vom BIOS behandelt. Da ich nichts über die Funktionsweise eines Mac weiß (außer dass sie hauptsächlich Standard-Intel-Prozessoren verwenden), kann ich Ihnen nicht sagen, wie Sie die erforderlichen Werte im BIOS einstellen, geschweige denn, wie Sie in das BIOS einsteigen erster Platz.
MBraedley
Du meinst EFI, nicht BIOS. Auf jeden Fall gibt es dafür keine EFI-Einstellung. Es ist ein Chipsatzregister, das bei jedem Start gestartet werden muss. Ich wünschte, es wäre im EFI oder zumindest im Kinderwagen, dann müssten wir es nur einmal einstellen!
Paläozogt
Genau mein Punkt.
MBraedley
Die aktuelle Lösung funktioniert nicht für Mac Pro, aber Sie können diesen Fehler unter Ubuntu bugs.launchpad.net/ubuntu/+source/linux/+bug/784571
sorin
@ Sorin Sbarnea: Nun, die Frage ist für einen Mac Mini
Paläozogt

Antworten:

9

Auf einigen Mac Minis (die ich um 2014 getestet habe) scheint es immer noch so zu sein:

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

Ich habe dies nach einigen Recherchen überprüft. Die Schritte, die ich unternahm, um herauszufinden, was theoretisch auch für zukünftige Iterationen dieser Maschinen möglich ist, waren:

  1. Suchen Sie nach dem LPC-Gerät:

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

    In diesem Fall ist es 00: 1f.0.

  2. Suchen Sie ein Datenblatt für das Gerät. ZB Googeln für „Intel HM77 lpc Controller Datenblatt“ ergab dieses Datenblatt .

  3. Jetzt müssen Sie nur noch das richtige Register finden, was je nach Datenblatt eine Herausforderung sein kann. Hier fand ich "5.13.7.5 Sx-G3-Sx, Behandlung von Stromausfällen, S. 180" im Inhaltsverzeichnis, das das Steuerbit beschreibt AFTERG3_EN.

  4. Wenn Sie das Dokument danach durchsuchen, finden Sie es in Abschnitt 13.8.1.3 (allgemeines PM-Konfigurationsregister 3) am Ende der Tabelle auf Seite 530. Daraus sehen wir, dass es Bit 0 des 16-Bit-Registers bei 0xA4 ist.

Dann kann damit der entsprechende setpciBefehl erstellt werden.

Wenn sich dies in Zukunft erneut ändert, suchen Sie das Gerät, suchen Sie das Datenblatt, erstellen Sie den Befehl, testen Sie und heben Sie Ihre Faust zum Sieg.

Grundsätzlich können sich die Geräte- und Registeradresse auf verschiedenen Computern unterscheiden. Dies ist spezifisch für den LPC-Controller. Das ist also die Hardware, die Sie zuerst überprüfen müssen, bevor Sie bestimmen, welcher Befehl verwendet werden soll.

Jason C.
quelle
Dies funktioniert auf einem alten iMac von 2007! Der Controller ist ein anderer, aber die Überprüfung der relevanten Dokumente führt am Ende zu demselben Befehl ...
Benzkji
Es ist wahr, dass dies auf jedem Boot ausgeführt werden muss, sonst ist es verloren ...
Benzkji
8

Ich fand die Antwort in diesem Beitrag begraben . Der neue Befehl setpci lautet

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

Übrigens ist diese Einstellung nicht "klebrig" und bleibt auch bei Neustarts nicht erhalten - sie muss bei jedem Start festgelegt werden.

Sie können diesen Befehl in ein Bash-Skript einfügen und beim Start ausführen. Sehen Sie hier für weitere Details über Start-up - Skripten.

Paläozogt
quelle
Können Sie diesen Befehl in einem Startskript ausführen oder werden Sie trotzdem nach dem su-Kennwort gefragt?
MBraedley
Ja, Sie können es in einem Startskript ausführen. Ich habe die Antwort bearbeitet, um einen Link zu einer Startskript-Anleitung zu erstellen.
Paläozogt
Könnten Sie so nett sein, Informationen darüber hinzuzufügen, wo diese Zeile hinzugefügt werden soll, um sicherzustellen, dass sie beim Systemstart ausgeführt wird, vorzugsweise so bald wie möglich? - Ubuntu
Sorin
@ Sorin Sbarnea: In der Antwort ist ein Link zu Informationen über
Startskripte