redémarrer après une panne de courant pour Mac mini exécutant Ubuntu

10

J'ai Ubuntu 10.04.1 (Lucid) fonctionnant sur un Mac Mini 2010 (4,1). C'est un serveur, donc je veux qu'il puisse redémarrer après une panne de courant ("mode serveur").

Sous Mac OS X, vous pouvez cocher «Démarrer automatiquement après une panne de courant» dans les Préférences Système «Energy Saver». Cependant, avoir cette valeur vérifiée ne semble pas affecter le comportement du "mode serveur" dans Ubuntu (c'est-à-dire qu'il ne redémarrera pas après une panne de courant).

Cela semble être dû au fait que la valeur "mode serveur" n'est pas conservée dans landau / efi, mais est définie par Mac OS X à chaque démarrage.

J'ai trouvé ce tutoriel sur la façon d'activer le "mode serveur" pour un Mac Mini, mais cela ne fonctionne pas:

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

Beaucoup de choses ont changé avec le nouveau 4,1 Mac Minis - juste installer Ubuntu dessus était tout un exploit. Peut-être que l'incantation en "mode serveur" a également changé?

Ma question est: comment activer le "mode serveur" sur le nouveau 4,1 Mac Minis?

paléozogt
la source
D'après mon expérience, c'est quelque chose de typiquement géré par le bios. Étant donné que je ne sais rien du fonctionnement inférieur d'un Mac (à part le fait qu'ils utilisent principalement des processeurs Intel standard), je ne serais pas en mesure de vous dire comment définir les valeurs nécessaires dans le bios, et encore moins comment y entrer dans le première place.
MBraedley
Vous voulez dire EFI, pas BIOS. Quoi qu'il en soit, il n'y a pas de paramètre EFI pour cela. C'est un registre de chipset qui doit être piqué à chaque démarrage. Je souhaite que ce soit dans l'EFI, ou dans le landau au moins, alors nous n'aurions à le régler qu'une seule fois!
paleozogt
Mon point exactement.
MBraedley
La solution actuelle ne fonctionne pas pour Mac Pro, mais vous pouvez vérifier ce bogue sur Ubuntu bugs.launchpad.net/ubuntu/+source/linux/+bug/784571
sorin
@Sorin Sbarnea: eh bien, la question est pour un mac mini
paleozogt

Réponses:

9

Sur certains Mac Minis (j'ai testé sur un vers 2014), il semble toujours être:

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

J'ai vérifié cela après quelques recherches. Les mesures que j'ai prises pour le découvrir, qui peuvent théoriquement être faites pour les futures itérations de ces machines, étaient les suivantes:

  1. Recherchez le périphérique LPC:

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

    Dans ce cas, c'est 00: 1f.0.

  2. Trouvez une fiche technique de l'appareil. Par exemple, googler pour "fiche technique du contrôleur Intel hm77 lpc" a donné cette fiche technique .

  3. Il ne vous reste plus qu'à trouver le bon registre, ce qui pourrait être un défi selon la fiche technique. Ici, j'ai trouvé "5.13.7.5 Sx-G3-Sx, Gestion des pannes de courant, p. 180" dans la table des matières, qui décrit le bit de contrôle AFTERG3_EN.

  4. En cherchant dans le document, nous le trouvons dans la section 13.8.1.3 (registre général de configuration PM 3) au bas du tableau à la page 530. De cela, nous voyons que c'est le bit 0 du registre 16 bits à 0xA4.

Ensuite, cela peut être utilisé pour construire la setpcicommande appropriée .

Donc, si cela change à nouveau à l'avenir, trouvez l'appareil, trouvez la fiche technique, construisez la commande, testez et lève le poing dans la victoire.

Mais fondamentalement, l'adresse du périphérique et du registre peut différer sur différentes machines, elle est spécifique au contrôleur LPC; c'est donc le matériel que vous devez d'abord vérifier avant de déterminer la commande à utiliser.

Jason C
la source
cela fonctionne sur un ancien iMac de 2007! le contrôleur est différent, mais la vérification des documents pertinents conduit à la même commande, à la fin ...
benzkji
il est vrai que cela doit être exécuté à chaque démarrage, sinon c'est perdu ...
benzkji
8

J'ai trouvé la réponse enterrée dans ce post . La nouvelle commande setpci est

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

btw, ce paramètre n'est pas "collant" et ne persistera pas lors des redémarrages - il doit être défini à chaque démarrage.

Vous pouvez placer cette commande dans un script bash et l'exécuter au démarrage. Voir ici pour plus de détails sur les scripts de démarrage.

paléozogt
la source
Pouvez-vous exécuter cette commande dans un script de démarrage, ou vous demandera-t-il toujours le mot de passe su?
MBraedley
Oui, vous pouvez l'exécuter dans un script de démarrage. J'ai modifié la réponse pour créer un lien vers un script de démarrage.
paleozogt
Pourriez-vous être si gentil d'ajouter des informations sur l'endroit où ajouter cette ligne afin de garantir qu'elle sera exécutée au démarrage du système, de préférence dès que possible? - Ubuntu
sorin
@Sorin Sbarnea: dans la réponse se trouve un lien vers des informations sur les scripts de démarrage à Ubuntu
paleozogt