J'ai un périphérique PCIe qui ne fonctionne correctement que lorsque l'ordinateur est complètement éteint puis rallumé. Lancer un simple reboot
ou reboot -p
La commande ne semble pas remettre sous tension la carte PCIe, ce qui l'empêche de fonctionner après le redémarrage.
Existe-t-il un moyen, à partir du système d'exploitation, de mettre sous tension un périphérique dans un emplacement PCIe ? Je peux le trouver dans /sys/bus/pci/devices/0000*/
, mais je n'arrive pas à comprendre comment réinitialiser correctement la carte. Basculer le pouvoir semble être le seul moyen.
À défaut, puis-je modifier quelque part un paramètre qui entraînera un cycle d'alimentation complet lors d'un reboot
commande ?
J'utilise Ubuntu 12.10 au fait.
Réponse acceptée :
Méthode potentielle #1
Je pense que vous pouvez le faire avec ces commandes :
désactiver
echo 0 > /sys/bus/pci/slots/$NUMBER/power
activer
echo 1 > /sys/bus/pci/slots/$NUMBER/power
Où $NUMBER
est le numéro de l'emplacement PCI.
lspci -vv
peut aider à identifier l'appareil. Ce n'est pas très bien documenté…
Méthode potentielle #2
Je suis tombé sur ce fil sur U&L, problème similaire :certaines réponses à cette question indiquent que vous pouvez réinitialiser avec cette commande :
echo "1" > /sys/bus/pci/devices/$NUMBER/reset
Cependant, je lirais les réponses là-bas! Il y a des conditions pour le faire de cette façon ! Plus précisément, je lirais cette réponse !
Méthode potentielle #3
Il existe une commande Unix, setpci
, cela peut vous donner une méthode pour réinitialiser un périphérique dans le bus PCI.
Je n'ai pas vu d'exemples spécifiques avec cette commande, vous devrez donc rechercher des exemples sur Google et consulter la page de manuel. Je marcherais légèrement avec cette commande jusqu'à ce que vous soyez sûr de son utilisation. D'après ce que j'ai lu à ce sujet, il s'agit de manipuler directement le matériel et il y a donc toujours des risques à le faire soi-même plutôt qu'à utiliser un outil qui expose ce type de fonctionnalité !