2017-09-14 5 views
1

Je travaille sur une extension de noyau - un pilote de périphérique - et dépend fortement des messages de diagnostic qui proviennent de kprintf(). $ Fwkpfv sur la machine hôte affichera les messages du journal de kprintf() sur la cible, mais elle a besoin de "debug = 0x8" dans les arguments de démarrage.nvram ne se souvient pas de mes paramètres boot-args. Comment le réparer?

# nvram boot-args="debug=0x14e kdp_match_name=firewire" 
# nvram -p | grep boot-args 
boot-args  "debug=0x14e kdp_match_name=firewire" 

(je ne me souviens pas clairement si les citations ont été inclus.)

Si je démarre normalement après la mise boot-args:

# nvram -p | grep boot-args 

# 

Je suis éternellement dans votre dette.

+0

C'est plutôt bizarre, je n'ai jamais vu ça arriver et j'utilise kprintf presque tous les jours - quelle est la version de macOS/OSX et, le cas échéant, est-elle compatible SIP? Avez-vous une sorte de bootloader/menu EFI installé? Sur les versions plus récentes (10.12+ IIRC), vous ne pouvez pas définir d'arguments de démarrage à partir d'une session normale, uniquement à partir du système d'exploitation de récupération ou d'une installation antérieure d'OS X sur le même Mac. Mais si c'était le problème, il devrait erreur, ne pas rendre la NVRAM transitoire. Des kexts qui accèdent NVRAM en interne? Aussi, je suppose que la batterie NVRAM pourrait être mort? (Plus probable sur le matériel plus ancien ...) – pmdj

Répondre

1

Certaines personnes de la liste de diffusion darwin-drivers m'ont fait remarquer que la commande nvram conserve ses paramètres dans la RAM jusqu'à ce qu'un arrêt propre soit effectué. J'ai pris l'habitude d'éteindre de force mon Mac Pro, car parfois le pilote panique quand il vient d'être installé.

Il a travaillé pour démarrer en mode de récupération, définir les arguments de démarrage, puis arrêter à partir du menu Apple.

Cela a permis à mon Firewire de se reconnecter.