перезагрузка после сбоя питания для Mac mini под управлением Ubuntu

10

У меня Ubuntu 10.04.1 (Lucid) работает на Mac Mini 2010 (4,1). Это сервер, поэтому я хочу, чтобы он мог перезапускаться после сбоя питания («режим сервера»).

В Mac OS X вы можете установить флажок «Запускать автоматически после сбоя питания» в «Системных настройках энергосбережения». Однако проверка этого значения, по-видимому, не влияет на поведение «режима сервера» в Ubuntu (то есть он не перезапускается после сбоя питания).

Похоже, это связано с тем, что значение «режим сервера» не сохраняется в pram / efi, а устанавливается Mac OS X при каждой загрузке.

Я нашел этот урок о том, как включить «режим сервера» для Mac Mini, но он не работает:

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

С новым 4,1 Mac Minis многое изменилось - просто установить Ubuntu на него было настоящим подвигом. Возможно, изменилось и заклинание «режим сервера»?

У меня вопрос: как включить «режим сервера» на новом Mac Mac 4,1?

paleozogt
источник
По моему опыту, это то, что обычно обрабатывается BIOS. Поскольку я ничего не знаю о более низкой работе Mac (за исключением того, что они используют в основном стандартные процессоры Intel), я не смогу рассказать вам, как установить необходимые значения в BIOS, не говоря уже о том, как войти в него в первое место.
MBraedley
Вы имеете в виду EFI, а не BIOS. В любом случае для этого нет настроек EFI. Это регистр чипсета, который нужно вставлять при каждой загрузке. Хотелось бы, чтобы это было в EFI или, по крайней мере, в коляске, тогда нам нужно было бы установить это только один раз!
paleozogt
Моя точка зрения точно.
MBraedley
Текущее решение не работает для Mac Pro, но вы можете проверить эту ошибку в Ubuntu bugs.launchpad.net/ubuntu/+source/linux/+bug/784571
sorin
@ Сорин Sbarnea: ну, вопрос для Mac mini
Paleozogt

Ответы:

9

На некоторых Mac Minis (я тестировал около 2014 года) это все еще выглядит так:

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

Я подтвердил это после некоторых исследований. Шаги, которые я предпринял, чтобы выяснить, что теоретически может быть сделано для будущих итераций этих машин, были:

  1. Ищите устройство LPC:

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

    В этом случае это 00: 1f.0.

  2. Найдите таблицу данных для устройства. Например, поиск в Google для "таблицы данных контроллера Intel HM77" привел к этому .

  3. Теперь вам просто нужно найти правильный регистр, который может быть проблемой в зависимости от таблицы данных. Здесь я нашел «5.13.7.5 Sx-G3-Sx, Обработка сбоя питания, стр. 180» в оглавлении, которое описывает управляющий бит AFTERG3_EN.

  4. Ища документ для этого, мы находим его в разделе 13.8.1.3 (регистр общей конфигурации PM 3) внизу таблицы на странице 530. Из этого мы видим, что это бит 0 16-битного регистра в 0xA4.

Затем это может быть использовано для создания соответствующей setpciкоманды.

Поэтому, если это снова изменится в будущем, найдите устройство, найдите таблицу данных, составьте команду, протестируйте и поднимите кулак в победе.

Но в основном устройство и адрес регистра могут отличаться на разных машинах, это зависит от контроллера LPC; так что это аппаратная часть, которую вы должны сначала проверить, прежде чем определить, какую команду использовать.

Джейсон С
источник
это работает на старом iMac 2007 года! контроллер другой, но проверка соответствующих документов приводит к одной и той же команде, в конце концов ...
benzkji
Это правда, что это должно выполняться при каждой загрузке, в противном случае он теряется ...
benzkji
8

Я нашел ответ похоронен в этом посте . Новая команда setpci

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

Кстати, этот параметр не является «липким» и не будет сохраняться при перезагрузке - он должен быть установлен при каждой загрузке.

Вы можете поместить эту команду в скрипт bash и запустить ее при запуске. Смотрите здесь для получения подробной информации о сценариях запуска.

paleozogt
источник
Можете ли вы выполнить эту команду в сценарии запуска или она по-прежнему будет запрашивать пароль su?
MBraedley
Да, вы можете запустить его в сценарии запуска. Я отредактировал ответ, чтобы дать ссылку на инструкции по запуску скрипта.
paleozogt
Не могли бы вы так приятно добавить информацию о том, куда добавить эту строку, чтобы убедиться, что она будет выполнена при загрузке системы, желательно как можно скорее? - Ubuntu
Сорин
@ Сорин Sbarnea: в ответе есть ссылка на информацию о скриптах запуска в Ubuntu
paleozogt