Ho un dispositivo PCIe che funziona correttamente solo quando il computer è completamente spento e poi riacceso. Emissione di un semplice reboot
o reboot -p
il comando non sembra spegnere e riaccendere la scheda PCIe, il che fa sì che non funzioni dopo il riavvio.
C'è un modo per, dal sistema operativo, spegnere e riaccendere un dispositivo in uno slot PCIe? Lo posso trovare in /sys/bus/pci/devices/0000*/
, ma non riesco a capire come ripristinare correttamente la scheda. L'attivazione/disattivazione dell'alimentazione sembra essere l'unico modo.
A parte ciò, posso modificare un'impostazione da qualche parte che provocherà un ciclo di spegnimento completo su un reboot
comando?
A proposito, sto utilizzando Ubuntu 12.10.
Risposta accettata:
Potenziale metodo n. 1
Penso che tu possa farlo con questi comandi:
disabilita
echo 0 > /sys/bus/pci/slots/$NUMBER/power
abilita
echo 1 > /sys/bus/pci/slots/$NUMBER/power
Dove $NUMBER
è il numero dello slot PCI.
lspci -vv
può aiutare a identificare il dispositivo. Questo non è molto ben documentato...
Potenziale metodo n. 2
Mi sono imbattuto in questo thread su U&L, problema simile:ci sono alcune risposte a questa domanda che dicono che puoi ripristinare con questo comando:
echo "1" > /sys/bus/pci/devices/$NUMBER/reset
Tuttavia, leggerei le risposte lì! Ci sono condizioni intorno a farlo in questo modo! In particolare leggerei questa risposta!
Potenziale metodo n. 3
C'è un comando Unix, setpci
, che potrebbe darti un metodo per ripristinare un dispositivo nel bus PCI.
Non ho visto alcun esempio specifico con questo comando, quindi dovrai cercare esempi su Google e guardare la pagina man. Camminerei leggermente con questo comando finché non sei sicuro del suo utilizzo. Da quello che ho letto a riguardo, si tratta di manipolare direttamente l'hardware e quindi ci sono sempre dei rischi nel farlo da soli rispetto all'utilizzo di uno strumento che espone questo tipo di funzionalità!