uruchom ponownie po awarii zasilania dla komputera Mac mini z systemem Ubuntu

10

Mam system Ubuntu 10.04.1 (Lucid) na komputerze Mac Mini 2010 (4,1). To serwer, więc chcę, aby mógł się zrestartować po awarii zasilania („tryb serwera”).

W Mac OS X możesz zaznaczyć „Uruchom automatycznie po awarii zasilania” w Preferencjach systemowych „Oszczędzania energii”. Jednak sprawdzenie tej wartości nie wydaje się wpływać na zachowanie trybu serwera w systemie Ubuntu (to znaczy, że nie uruchomi się ponownie po awarii zasilania).

Wydaje się, że dzieje się tak, ponieważ wartość „trybu serwera” nie jest utrwalana w wózku / efi, ale jest ustawiana przez Mac OS X przy każdym uruchomieniu.

Znalazłem ten samouczek, jak włączyć „tryb serwera” dla Maca Mini, ale to nie działa:

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

Wiele zmieniło się w przypadku nowego Mac Mac 4,1 - samo zainstalowanie na nim Ubuntu było nie lada wyczynem. Być może zmieniła się także inkantacja „w trybie serwera”?

Moje pytanie brzmi: jak włączyć „tryb serwera” na nowym Macu 4,1 Mac?

paleozogt
źródło
Z mojego doświadczenia wynika, że ​​jest to coś, co zazwyczaj rozwiązuje bios. Ponieważ nie wiem nic o niższych działaniach komputera Mac (poza tym, że używają głównie standardowych procesorów Intel), nie byłbym w stanie powiedzieć, jak ustawić niezbędne wartości w biosie, nie mówiąc już o tym, jak się do niego dostać w pierwsze miejsce.
MBraedley,
Masz na myśli EFI, a nie BIOS. W każdym razie nie ma dla tego ustawienia EFI. Jest to rejestr mikroukładów, który należy zaczepiać przy każdym uruchomieniu. Chciałbym, żeby były w EFI, a przynajmniej w wózku, wtedy musielibyśmy to ustawić tylko raz!
paleozogt
Dokładnie o to mi chodzi.
MBraedley,
Obecne rozwiązanie nie działa na Mac Pro, ale możesz sprawdzić ten błąd w Ubuntu bugs.launchpad.net/ubuntu/+source/linux/+bug/784571
sorin
@Sorin Sbarnea: cóż, pytanie dotyczy
Maca

Odpowiedzi:

9

Na niektórych komputerach Mac Minis (testowałem na około 2014 r.) Nadal wydaje się, że:

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

Zweryfikowałem to po kilku badaniach. Kroki, które podjąłem, aby dowiedzieć się, co teoretycznie można zrobić również w przyszłych iteracjach tych maszyn, to:

  1. Poszukaj urządzenia LPC:

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

    W tym przypadku jest to 00: 1f.0.

  2. Znajdź arkusz danych dla urządzenia. Np. Googling dla „arkusza danych kontrolera intel hm77 lpc” dał ten arkusz danych .

  3. Teraz musisz tylko znaleźć odpowiedni rejestr, co może stanowić wyzwanie w zależności od arkusza danych. Tutaj znalazłem „5.13.7.5 Sx-G3-Sx, Obsługa awarii zasilania, s. 180” w spisie treści, który opisuje bit kontrolny AFTERG3_EN.

  4. Przeszukując ten dokument, znajdujemy go w sekcji 13.8.1.3 (ogólny rejestr konfiguracji PM 3) u dołu tabeli na stronie 530. Z tego wynika, że ​​jest to bit 0 16-bitowego rejestru o wartości 0xA4.

Następnie można go użyć do skonstruowania odpowiedniego setpcipolecenia.

Więc jeśli to się zmieni w przyszłości, znajdź urządzenie, znajdź arkusz danych, skonstruuj polecenie, przetestuj i podnieś pięść w zwycięstwie.

Ale w zasadzie adres urządzenia i rejestr mogą się różnić na różnych komputerach, jest to specyficzne dla kontrolera LPC; więc to jest sprzęt, który musisz sprawdzić przed określeniem, którego polecenia użyć.

Jason C.
źródło
działa to na starym komputerze iMac z 2007 roku! kontroler jest inny, ale sprawdzenie odpowiednich dokumentów prowadzi do tego samego polecenia, w końcu ...
benzkji
prawdą jest, że należy to wykonać przy każdym rozruchu, w przeciwnym razie zostanie utracone ...
benzkji,
8

Znalazłem odpowiedź zakopaną w tym poście . Nowe polecenie setpci to

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

przy okazji, to ustawienie nie jest „lepkie” i nie będzie się utrzymywać podczas restartów - należy je ustawić przy każdym uruchomieniu.

Możesz umieścić to polecenie w skrypcie bash i uruchomić je przy starcie. Zobacz tutaj, aby uzyskać szczegółowe informacje na temat skryptów uruchamiania.

paleozogt
źródło
Czy możesz uruchomić to polecenie w skrypcie startowym, czy nadal poprosi Cię o hasło su?
MBraedley,
Tak, możesz uruchomić go w skrypcie startowym. Zredagowałem odpowiedź, aby utworzyć link do skryptu uruchamiania.
paleozogt,
Czy możesz być tak miły, aby dodać informacje o tym, gdzie dodać tę linię, aby mieć pewność, że zostanie ona wykonana po uruchomieniu systemu, najlepiej jak najszybciej? - Ubuntu
sorin
@Sorin Sbarnea: w odpowiedzi znajduje się link do informacji o skryptach startowych w ubuntu
paleozogt